问题标签 [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.
ethereum - Solidity中的字符串连接?
我如何在solidity中连接字符串?
好像不行。。
我查阅了文档(https://github.com/ethereum/wiki/wiki/Solidity-Tutorial#elementary-types-value-types),没有太多关于字符串连接的提及。但据说它与点 ('.') 一起使用?
对我也没有用..:/
arrays - 将整数数组向左移动 n 位
似乎按n
位移动/旋转数组应该很简单。
但是,我正在使用的编程语言(Solidity)没有任何这样的运算符(即没有移位或旋转运算符)......
我有一个无符号的 256 位整数(它是 Solidity 类型uint256
)。
我想知道我是否可以以某种方式“手动”进行移位或旋转操作?
我的意思是,执行一些乘法 ( *
)、mod ( %
) 或类似操作来提供所需的移位和旋转?我知道这可能效率很低,但我只需要每小时执行一次或两次此操作,因此在我的用例中并不重要。
ethereum - 登船气体限制有什么问题?
我在使用 Embark 部署合同时遇到问题。
我之前已经成功地使用过较小的合同。
这是问题提示:
合同部署在 0xc9f10a4696f4102d0ef3ec4ce5eb5426828a1b06 但似乎没有工作尝试调整你的气体值
合约部署了,里面的所有函数都不能调用?
如何解决这个问题呢?
javascript - 如何从不同节点访问合约功能?
我有两个合同说 A 和 B,两个节点在不同的机器 Machine1 和 Machine 2 上运行,具有相同的网络 ID,我使用节点 url 添加了对等点。合约A由机器1部署在区块链上,合约B由机器2部署。现在我想从机器2和机器1访问合约A的功能,并从机器2和机器1访问合约B的功能。我如何访问这些功能
memory - 在 Ethereum Solidity 中,“memory”关键字的作用是什么?
在查看示例合同时,有时数组是在具有“内存”的方法中声明的,有时则不是。有什么不同?
bitcoin - 在不删除换行符的情况下编译智能合约
我是与以太坊编写智能合约的新手。
根据官方文档,编译智能合约需要删除合约源代码中的所有换行符:
https://ethereum.gitbooks.io/frontier-guide/content/contract_greeter.html
由于我认为删除过程并不聪明,我想编译代码本身,如:
迎宾员.txt
有人该怎么做吗?
我使用的编译器是 Solidity。
ethereum - Solidity - “未捕获的类型错误:无法读取未定义的属性‘合同’”
我对 Mix IDE 和以太坊(特别是solidity)有点陌生,我有一个幼稚的问题。我网页中的 javascript 代码如何与合同代码“绑定”?我写了一个接受值的简单网页,但 javascript 似乎无法将值传递给实际合同。确切的错误行是:
Mix 给我的确切错误是:
“未捕获的类型错误:无法读取未定义的属性‘合同’。”
所以它显然认为contracts["MyFirstContract"]为零
但是,MyFirstContract.sol 文件存在!javascript 如何知道我在说什么合同文件?它似乎没有出现在文档中,尽管我可能遗漏了一些东西。
ethereum - Solidity 中的事件触发
我目前正在开发以太坊平台(node.js 和solidity)。我的问题是如何使用 node.js 在solidity(contract) 中触发事件?
blockchain - 向 Solidity 结构添加一个新字段会使以太坊合约停止工作
在以太坊专用网络(geth)中,我确实有非常简单的合约(在 Solidity 中)。
版本 1:
我确实部署了合同,然后像这样调用它(来自web3.js):
- 合同.getLog()
- contract.setBalance(valid_address, 55)
- 合同.getLog()
- contract.getBalance(地址)
- contract.get42(地址)
我得到输出结果:
- [通话结束]:T()
- [通话结束]:setBalance()
- 55
- 42
现在我只需在 TData 结构中添加一个新字段:
版本 2:
我执行与上述相同的调用:
- 合同.getLog()
- contract.setBalance(valid_address, 55)
- 合同.getLog()
- contract.getBalance(地址)
- contract.get42(地址)
但现在我得到:
- [通话结束]:T()
- [通话结束]:T()
- 0
- 0
似乎“ setBalance() ”函数未执行(或在某处退出)并且存储中的状态未更改。
请帮忙!
谢谢。
arrays - 如何初始化结构中的数组
我有一个结构购买,我在其中放置了一系列付款。但是,当我尝试在我的makePayment
方法中添加新的支付数组时,我从solidity 编译器返回一个错误:“内部编译器错误:将类型struct Payment memory[] memory 复制到尚不支持的存储。” 当我将 mayment 数组更改为storage
ormemory
时,我得到了同样的错误。我在下面添加了相关代码。
有可能做我想做的事情吗?我在文档中没有看到任何明确说明这是不可能的内容,但我也没有看到任何示例在做我想做的事情。:|