常见问题

Supported devices & browsers

Q: What browsers will Remix work on?

We support Firefox, Chrome, and Brave. We do not test or look for errors in Safari, Edge or other browsers.

Q: Will Remix work on a tablet or mobile device?

We do not support the use of Remix on tablets or mobile phones.

常规

Q: Are there keyboard shortcuts in Remix?

Yes - here is the list of keyboard shortcuts:

Ctrl+S: 编译选中的 Solidity 文件

Ctrl+Shift+S: Compiles a Solidity file and runs a script when the script is displayed in the editor.
(go here for more info about this functionality)

Ctrl+Shift+F: 打开文件浏览器

CTRL+Alt+F : 对当前文件中的代码进行格式化。

Ctrl+Shift+A : 打开插件管理器

Solidity 编译器

Q: Error: compiler might be in a non-sane state
error: "Uncaught JavaScript exception: RangeError: Maximum call stack size exceeded.
The compiler might be in a non-sane state, please be careful and do not use further compilation data to deploy to mainnet.
It is heavily recommended to use another browser not affected by this issue (Firefox is known to not be affected)."

Old versions of Solidity Compiler had this problem with Chrome. Please change the compiler version in Solidity Plugin to the newer one or use another browser.

Q: I’m getting an issue with Maximum call stack exceed and various other errors, can't compile.

Try a different browser or a newer Solidity Compiler version.

Deploy & run

Q: I am using an Infura endpoint in my app, but when I try to deploy against that endpoint in Remix IDE selecting "External HTTP Provider" and putting my endpoint in, it's telling me that it can't connect

If the endpoint you are using is http, it won't work.

Q: Where is deploy button?

It's in the Deploy & Run Transactions module.

Q: How to pass a tuple to a public function in Remix?

Pass it as an array [].

Q: How to input a struct as input to a parameter of a function in the Deploy & Run module?

For inputting a struct, just like a tuple, pass it in as an array []. Also you need to put in the line:

pragma experimental ABIEncoderV2; 在solidity文件的顶部。

例如,这是一个具有结构体作为输入参数的 Solidity 文件。

pragma solidity >=0.4.22 <0.6.0;
pragma experimental ABIEncoderV2;

contract daPeeps {
    struct Peep {uint a; uint b;} // declaration of Peep type
    Peep peep; //declaration of an object of Peep type

    constructor () public
    {
        peep.a = 0; // definition/initialisation of object
        peep.b = 0; //
    }

    function initPeepToPeep(Peep memory i) public payable {
        peep.a = i.a;
        peep.b = i.b;
    }
    function setPeep(uint a, uint b) public payable {
        peep.a = a;
        peep.b = b;
    }

    function getPeep() public view returns(Peep memory)
    {
        return peep;
    }
}

The input of initPeepToPeeps takes a struct. If you input [1,2] the transaction will go through.

Q: What should I do if the addresses don't load in the VM?

A: Try deleting the state folder to refresh the local VM. Note that this resets the local VM, any deployed contracts and account state in the VM will be lost.

Plugin developers

Q: Where do plugin developers go with their questions?

First, join our Discord server and then go to the development-plugin channel.

数据分析

Q: What information does Remix save when Matomo Analytics is enabled?

We want to know:

  • 哪些插件被激活和停用

  • 如果用户在部署时勾选框来发布合约的元数据

  • 哪个主题被使用/使用最多/根本不使用

  • 文档链接的使用

  • 在主页上使用了哪个文件导入按钮

Q: Is it opt-in or opt-out?

We use Matomo as an opt-in analytics platform.

Q: Where is the info stored? Is the info shared with 3rd parties?

All data collected through Matomo is stored on our server. No data is given to third parties.

我们尊重您的隐私,不收集或储存任何可识别个人身份的信息。

Q: What does Remix do with this info?

Our goal is to understand how many users we have, what plugins people are using, what is not getting used, what is not being used to its full potential.

基于这种理解,我们可以调整用户界面,并提供更多的建议和文档。 这是从我们的用户获得匿名反馈的一种方式。

Q: After I agree opt-in, can I change my mind?

You can turn off or on Matomo in the Settings panel. There are no consequences for not opting-in or opting-out.