我正在创建一个签发合同的合同.我想要一个持有令牌的帐户,以便能够检查他们拥有的所有令牌的百分比.我知道以太坊还没有实现浮点数.我该怎么办?
我正在构建一个为用户创建钱包的应用程序.一个选项是web3.py中的web3.personal API,它有一个newAccount('passphrase')方法.该方法仅返回已创建帐户的地址.
我正在寻找的是一个类似于web3.js中的eth.accounts API的函数,它有一个create([entropy])方法.它返回一个带有"地址"," 私钥 "和其他详细信息的帐户对象.
我对以太坊和这种开发实践的想法很新,所以很乐意从你那里得到一些帮助.先感谢您.
我无法迁移松露编译带来的标准合同.这是我做的:
truffle init
truffle compile
open other terminal and run testrpc
truffle migrate
Run Code Online (Sandbox Code Playgroud)
并且前三步是平稳操作,但是当我运行松露迁移时,它会出现
Error: No network specified. Cannot determine current network.
at Object.detect (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:43157:23)
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:200497:19
at finished (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:43085:9)
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:198408:14
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:68162:7
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:163793:9
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:160353:16
at replenish (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:160873:25)
at iterateeCallback (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:160863:17)
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:160838:16
Run Code Online (Sandbox Code Playgroud)
我的版本列表:
node 9.1.0
truffle 4.0.1
testrpc 6.0.3
Run Code Online (Sandbox Code Playgroud)
谢谢!
在javascript中我运行契约的方法
contract[methodName](...params, { from: myAccount }, (err, response) => {
console.log('get transaction', methodName, err, response);
if (err) return reject(err);
resolve(response);
});
Run Code Online (Sandbox Code Playgroud)
然后通过MetaMask拒绝交易.在控制台中出错
MetaMask - RPC Error: Error: MetaMask Tx Signature: User denied transaction signature.
Run Code Online (Sandbox Code Playgroud)
但我无法在我的代码中发现此错误.回调不起作用.
我怎样才能在JS中发现这个错误?
我正在尝试使用 Solidity 0.4.4 创建智能合约。
我想知道是否有一种方法可以将已经输入的某些值的映射设置为空值?
例如:
这初始化了一个新的映射
mapping (uint => uint) map;
在这里我添加一些值
map[0] = 1;
map[1] = 2;
如何在不遍历所有键的情况下将地图设置回空?
我试过删除,但我的合同没有编译
我刚刚开始学习 Solidity,这是一项个人挑战。我不是开发人员,所以我还有很长的路要走。
我正在关注 Ethereum.org 教程,这是我有疑问的地方:“[msg.sender]”代表什么?我想这是触发合同的钱包地址,但我不确定。
提前,谢谢,祝你有美好的一天,苏马克
我正在为进行投标的以太坊智能合约设计解决方案。用例包括保留一个名称,例如。“myName”并分配给一个地址。然后,人们可以竞标该名称(在本例中为 myName)。对于多个名称,可能会发生多个这样的出价。
struct Bid {
address bidOwner;
uint bidAmount;
bytes32 nameEntity;
}
mapping(bytes32 => Bid[]) highestBidder;
Run Code Online (Sandbox Code Playgroud)
因此,正如您在上面看到的,Bid 结构保存一个投标人的数据,类似地,映射最高投标人中的键(例如 myName)指向一组此类投标人。
现在,当我尝试返回诸如 highBidder[myName] 之类的内容时,我遇到了问题。
显然,solidity 不支持返回结构数组(动态数据)。我要么需要重新构建我的解决方案,要么找到一些解决方法来使其工作。
如果你们对这个问题有任何疑问,请告诉我,我会尽量说清楚。
我被困在这里任何帮助将不胜感激。
我正在尝试使用本地私钥在带有 web3.py 的 python 中发送 ERC20 令牌。
使用此代码,我可以发送以太:
w3 = Web3(HTTPProvider('https://api.myetherapi.com/eth'))
signed_txn = w3.eth.account.signTransaction(dict(
nonce=w3.eth.getTransactionCount(from_address),
gasPrice=w3.eth.gasPrice,
gas=100000,
to=to_address,
value=12345,
data=b'',
),
private_key,
)
w3.eth.sendRawTransaction(signed_txn.rawTransaction)
Run Code Online (Sandbox Code Playgroud)
然后我也发现了这个,但是估计Gas总是出错,在我看来,我无法像这样指定我发送的地址或通过某种签名证明它是我的地址?
contract = w3.eth.contract(address=address, abi=EIP20_ABI, bytecode=bytecode)
contract.functions.transfer(to_address, 121212).transact()
Run Code Online (Sandbox Code Playgroud)
所以我有 JSON abi、字节码、地址和我的私钥,我可以用我找到的代码以某种方式构建一个工作脚本吗?
提前致谢!
我正在学习混音的可靠性。我正在关注 youtube 上的一些教程视频,但在尝试建立 2 个合同时遇到了困难。合约 ERC20Token 具有增加余额的功能。并且 Mycontract 实例化并调用 mint 函数。我和 youtube 上的那个人一样,但我在调用 buyToken 函数时遇到了错误。错误是说
交易到 MyContract.buyToken 出错:VM 错误:恢复。
revert 事务已恢复到初始状态。
注意:如果您发送价值并且您发送的价值应小于您当前的余额,则应支付被调用的函数。调试事务以获取更多信息。
请帮帮我。
这是代码。
pragma solidity 0.5.1;
contract ERC20Token{
string public name;
mapping(address => uint256) public balances;
function mint() public {
balances[tx.origin] ++;
}
}
contract MyContract {
address payable wallet;
address public token;
constructor(address payable _wallet, address _token) public {
wallet = _wallet;
token = _token;
}
function buyToken() public payable {
ERC20Token _token = ERC20Token(address(token));
_token.mint();
wallet.transfer(msg.value);
} …Run Code Online (Sandbox Code Playgroud) 我试图获取映射到 Solidity 合约中特定合约(不完全是)的恒星名称和地址的密钥
mapping(string=>address) nameOfAccounts;
Run Code Online (Sandbox Code Playgroud)
我期待的是像 Javascript 中的方法Object.keys(nameOfAccounts)。有类似的方法吗?或者我应该使用额外的array. 额外的阵列可能会导致额外的气体成本(这不是我喜欢的选项)。请分享一些见解
我想知道如果无法获取钥匙,我是否可以采取另一种方法?