问题标签 [smartcontracts]
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.
blockchain - 如何在以太坊上运行投票代码并获得结果?
我在 MIST 以太坊钱包上执行了此处发布的代码,问题是我找不到如何“停止”投票并获得最终结果。你能启发我吗?
blockchain - 如何使用 Solidity(以太坊)访问哈希表的内容?
我创建了一个公共哈希表,我想知道如何访问它的内容,因为它是 public 。
java - 如何将智能合约与 Java 应用程序集成?
我想向客户证明媒体是否在他预定的时间播放。将java与智能合约和区块链一起使用,有可能吗?
node.js - 如何使用 eris 的 javascript 编译一段 Solidity 代码?
我正在查看 https://github.com/eris-ltd/eris-contracts.js中所示的代码示例
但我不知道如何进行编译。我知道 eris-contracts.js 是基于 web3.js 构建的,但我不确定在实例化 web3 对象时我必须输入什么提供程序。
events - 有没有办法查看 Eris Blockchain 的所有区块上的所有事件?
有没有办法查看 Eris Blockchain 的所有区块上的所有事件?目前我已经设法订阅了一个特定的事件
合同
节点.js
我在 node.js 中的当前代码只是在创建事件时打印出一个事件。我正在尝试获取此合同 IdisContractFTW 创建的一系列事件。感谢您对此的建议。
这里的管理器对象是使用创建的
node.js - 使用修饰函数实现智能合约层次结构的 ACL
我有 3 份合同要执行。合同是master
和。所以主合约是由一个人发起的,即私有链的所有者(基于geth)。管理合约提供对某些地址的访问。这些管理实例由主创建。我正在使用修饰符来确保这一点。客户合同只能由管理员和主合同进行交互。admin
customer
我已将这些地址映射到存储在本地 Redis 数据库中的帐户(使用用户名和密码)。我的合同结构截图如下:
主合同
管理合同
客户合同
现在我需要进一步了解如何组合这些合约,并参考客户合约中的 master 和 admin 地址来使用修饰符checkMasterAndAdminAccess
。理想情况下,当编译成 ABI 并在我的 Nodejs 应用程序中使用它时,我希望将这些合约放入单独的文件中,因为它们会变得很大。
这是推荐的做法吗?
只有一个人控制一个主合约实例(因此只有一个地址可以访问它)。其他合约可能被多次实例化
我可以就如何实现上述目标获得一些指导。
blockchain - 如何在 Eris (Monax) 中将智能合约部署到不同的链
我对 Eris (Monax) 有疑问。我遵循 Eris 的教程 https://monax.io/docs/tutorials/getting-started/
一切都很好。我成功地创建、实例化了一个名为 simplechain 的区块链,并部署了一个名为 idi 的智能合约(完全在教程中)
现在我想创建另一个链,称为 simplechain3,以便 2 个链可以同时运行,然后,我想部署这个合约 idi 或另一个合约(如果我想创建新的)这个新链 simplechain3。我可以创建新的 simplechain3,但我无法将这个合约或另一个合约部署到这个新的链 simplechain3。它始终针对旧链 simplechain。
这是我输入的命令: erischains make --account-types=Root:3,Full:2 simplechain3
eris 链启动 simplechain3 --init-dir simplechain3_full_000 --ports=1428,47000,47001
(我必须为这个链创建新的端口。如果没有,则会出现错误,因为端口 46657 已经被旧的简单链占用)
一切都很好,我通过这个命令检查了它 erischains ls 输出:*CHAIN ON CONTAINER ID DATA CONTAINER simplechain3 * b4cecde58c 965309c59f simplechain * e3868c82b0 38dd9d37fa*
使用这个命令: docker ps
输出 容器 ID 图像命令创建的状态端口名称 b4cecde58cfb quay.io/eris/db:0.12.0 "eris-db serve" 35 秒前 Up 33 seconds 0.0.0.0:1428->1337/tcp, 0.0.0.0:47000-> 46656/tcp, 0.0.0.0:47001->46657/tcp simplechain3-422e5ebf-6149-46d7-963d-ddbb33104ac4 e3868c82b07d quay.io/eris/db:0.12.0 "eris-db serve" 19 小时前 25 分钟 0.0 .0.0:1337->1337/tcp, 0.0.0.0:46656-46657->46656-46657/tcp simplechain-7f87110d-1323-4c97-bc70-a0ae971c4960 18f16072cb1f quay.io/eris/keys:0.12.0"密钥服务器--h"19 小时前 44 分钟 4767/tcp keys-b46408a1-fe29-4205-ac51-878b487d8f78
然后,其他命令 *chain_dir_3=$HOME/.eris/chains/simplechain3 chain_dir_this_3=$chain_dir_3/simplechain3_full_000 addr3=$(cat $chain_dir_3/addresses.csv | grep simplechain3_full_000 | cut -d ',' -f 1) eris pkgs --chain simplechain3 --address $addr3 --file ./epm.yaml *
输出错误:
执行动作。这有时会在执行作业时需要一点时间 defaultAddr 执行作业 setStorageBase 执行作业 deployStorageK 响应 abi=[{"constant":false,"inputs":[{"name":"x","type":"uint256"}] ,"name":"set","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"get","outputs" :[{"name":"retVal","type":"uint256"}],"type":"function" 等待事件时遇到错误:超时等待事件 addr=796AA808A90DFA52D2502CFCA7803BFBBDC030CD 执行作业 setStorage 弃用警告:使用“数据”字段来指定合约函数的名称已被弃用。请更新您的 epm 作业文件以改用“功能”和“数据”字段的组合。有关更多详细信息,请参阅文档。 等待事件时遇到错误:等待事件超时 执行作业查询存储弃用警告:使用“数据”字段来指定合约函数的名称已被弃用。请更新您的 epm 作业文件以改用“功能”和“数据”字段的组合。有关更多详细信息,请参阅文档。 连接到节点 (tcp://chain:46657) 以在 (796AA808A90DFA52D2502CFCA7803BFBBDC030CD) 查询合约时出错,数据 (6D4CE63C)%!(EXTRA string=Account 796aa808a90dfa52d2502cfca7803bfbbdc030cd 不存在) 无法执行 pkg 操作服务:无法执行 pkg 操作服务:无法执行容器 interactive-808a8aa8-09cb-4b9f-ae3a-b77158681c21 以状态 1 退出
你能帮我解决这个问题吗?如何将合约部署到另一条链上?我已经用另一个合同测试过它,它是一样的。
文件 epm.yaml 的内容在教程中 https://monax.io/docs/tutorials/getting-started/#step-3-2-fixup-your-epm-yaml
而且合约的内容也在教程里 https://monax.io/docs/tutorials/getting-started/#step-3-1-make-a-contract-for-idi
对于另一份合同,也出现了同样的问题。
我在 Linux Ubuntu 16.04、Eris 0.12.0、docker 1.12.3 中工作
非常感谢
blockchain - 向以太坊智能合约发送价值时出错
我有 geth 1.5.2 并使用 Mist-linux64-0-8-7 在 testnet 上工作。当我尝试通过调用任何函数向我的合约发送一些以太(值)时,我遇到了一个简单的问题。例如,即使这个虚拟函数也不能使用非零值,但可以正常使用零值:
令人惊讶的是,我可以在 Mist 中看到一条警告消息“似乎此交易将失败。如果您提交它,它可能会消耗您发送的所有气体。” 这不取决于我提供的气体量。即使我投入了 500,000 的 gas,交易似乎也没有完成。
你可以在这里看到它的结果: https ://testnet.etherscan.io/tx/0x3206118530079d1b416dc649c6f0a89283f9457e9189f259b3429cf0c6a998d0
有消息
警告!合约执行过程中遇到错误【错误跳转目的地】
我试图在不同的合约中运行不同的功能。我什至使用 sendTransaction 功能直接从 geth 控制台执行相同操作,但我仍然无法使其工作。没查到有没有人有类似的问题。如果您有任何想法,请帮助我。
smartcontracts - 无法使用 Eris / Monax 部署智能合约
我正在关注入门教程,使用 eris 版本 0.12.0
我停留在部署智能合约的地方 ~/.eris/apps/idi/idi.sol
随机我得到以下两个错误之一:
或者:
当我安装 eris 版本 0.11.4 时,错误如下所示:
我多次重新启动 Docker Quickstart Terminal 并删除了 VirtualBox 中的默认 VM。
我做错了什么?感谢帮助!
token - Solidity 合约中代币的自动转移
我是 Solidity 的新手,我完成了一个教程来创建我自己的令牌。
有没有办法在某个时间间隔自动将我的代币转移到指定地址?换句话说...
我应该在合约中添加什么代码,将 100 个代币转移到钱包地址 0x... 每天一次,直到未来?
我使用了以太坊基金会网站上的代码:https ://www.ethereum.org/greeter