问题标签 [solidity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1227 浏览

arrays - 在 Solidity 中设置数组的长度属性

设置length数组的属性有什么作用。在大多数其他语言length中,是一个返回 arra 长度的函数,但在此代码中,该length属性被设置。

0 投票
1 回答
418 浏览

operator-precedence - Solidity 操作顺序 - 逻辑非

我对 Solidity 中的操作顺序有疑问。在文档中,它说逻辑 NOT 操作优先于逻辑 AND 操作。问题是,当我有这样的if语句时,if(false && !function())我认为由于操作顺序而首先调用该函数,但实际上首先完成了运算符的短路&&。所以我的问题是:为什么?

0 投票
1 回答
282 浏览

ethereum - 如何创建和部署带有以太坊的合约?

如何使用附加在 web3.js 中的以太创建和部署合约?在solidity中,我知道它可以这样写:

但是如何在 web3.js 中编写它来测试合约。衷心感谢

0 投票
2 回答
2122 浏览

ethereum - 使用和不使用`new`关键字创建新的solidity合约有什么区别?

new创建新智能合约的关键字有什么用?为什么不直接省略这个关键字?

0 投票
2 回答
1720 浏览

blockchain - Truffle Solidity - 从不同的合约调用函数

我正在尝试实现一个函数,该函数在另一个合同上调用不同的函数并返回该值。我怀疑这可能是在接收到先前的值之前调用承诺和函数的问题。但是,我不知道您如何在合同中实际实施这一点以及是否可能。我正在使用 Truffle、TestRPC 和 Solidity 编写合约,并从 truffle 终端调用函数。合约看起来像这样(仅显示最低限度的功能):

主合同:

公司合同

股东合同:

编辑:在 Rob 的回复和更多测试之后,我意识到这与承诺无关,而是与 Creator 合同对 Company 合同的实例化有关。当直接从 truffle 部署时,Company.sol 的功能可以工作,但是当从 Creator 部署时,只有某些功能可以工作,不包括我提到的那些。我在我的构造函数 createCompany() 函数中看不到任何错误,如果有,请告诉我。

0 投票
1 回答
920 浏览

ethereum - 以太坊和 Fabric 中的智能合约限制

我正在尝试制定智能合约以自动实现以下目标。但我坚持实施。如何在没有 B 签署 Tx 的情况下运行 (2) Tx,即:我希望它在 (1) 被激活并且条件 (2) 准备好后自动运行。

伪代码(一):

上面的代码涉及多个所有者,即。A、B 和 C。首先,A 通过运行/签署 Tx (1) 来激活合约。然后合约检查条件(2)。现在,但是如何在不必强制 B 签名的情况下自动运行(3)呢?

最终,合同是否能够在 B 的行为上签字(或代理签字)?


编辑

任何链码中的下面呢?它可以自动运行吗,即没有 D 必须使用 (3) 中 D 的私钥签名?

伪代码(二):

0 投票
1 回答
5038 浏览

ethereum - 获取公共数组变量的长度(getter)

我正在尝试从另一个联系人那里获取数组的长度。如何?

0 投票
2 回答
3525 浏览

blockchain - 从 web3js 中的solidity函数访问多个返回值(a,b,c)

我有一个返回多个值的函数。我希望从 Web3js 访问这些。

0 投票
1 回答
1857 浏览

blockchain - Solidity - 如何从外部合约调用智能合约实例?

我创建了一个 AccountManager 智能合约和它的两个实例(PARTYA 和 PARTYB)。当调用 TransferAgent.transfer(AccountManager.address, AccountManager.address) 我可以看到 accounts[msg.sender].balance 更新如预期。但是,当调用实例(PARTYA 和 PARTYB)时,例如 TransferAgent.transfer(PARTYA.address, PARTYB.address),余额中没有任何变化。

我花了一些时间研究如何使用地址从 TransferAgent (外部合同)调用 AccountManager (实例),但找不到任何具体的东西。我无法平衡以反映变化。有什么建议么?

环境 - 以太坊 - 启动框架 - Solidity

我的设置如下

合同.json

代理.sol

0 投票
3 回答
3508 浏览

python - 如何创建以太钱包?

我想通过代码创建用户以太钱包。是否有任何 API 或其他东西可以创建他们可以用来转移和接收以太币的以太钱包?