问题标签 [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.

0 投票
2 回答
84 浏览

ethereum - 观察以太坊合约状态

我希望能够查看以太坊合约的状态/存储,并知道例如何时满足某些条件。例如,一个账户值大于 200,另一张地图有 30 多个键,等等。

我可以为此使用什么?是否有可用于此目的的 SaaS 平台?

编辑:我忘了提到我不是合同的所有者。我只是想看别人的合同。

0 投票
1 回答
54 浏览

blockchain - 有没有办法将智能合约的执行仅限于我的 dapp?

我的 dapp 将从客户端获取一些数据并将其发送给合约。我想避免欺骗它。

0 投票
1 回答
60 浏览

blockchain - 智能合约如何与区块链相关

我对区块链很陌生。我试图弄清楚如何在我的特定场景中使用区块链,同时尝试了解它并提出一些非常基本的问题。

业务场景 B 从 A 购买产品 P。A 对在条件 C1 下交付的每单位 P 收取 $x,对在条件 C2 下交付的每单位 P 收取 $y。B 在计费周期结束时向 A 付款。

问题

  1. “A 向 B 交付 P”——这可以被视为交易吗?
  2. 我的智能合约可能会被定义为“If C1 then rate=$x ”。A 或 B 可以将事件(“A 向 B 交付 P”)传递给智能合约,以检查条件并确定动作。在这种情况下,那个“事件”是否相当于一个块?什么将存储在区块链中?
  3. 如何验证这个“块”?在这种情况下,事件将有参数来检查条件,但是由于事件是由 A 或 B(不受信任的方)提交的,矿工如何验证事件参数没有被篡改?
  4. 如果 A 需要生成结算周期结束发票,A 是否应该从区块链中读取它?(展示数据未被篡改)

提前致谢。

问候, Ritwik

0 投票
1 回答
170 浏览

solidity - 良好的solidity智能合约教程、视频、示例

我正在为solidity 高级智能合约开发免费资源或书籍寻找良好的资源。

场景如 - 众筹 - 保险业 - 银行

我对 Open Zepplin 进行了一些研究,它是智能合约的一个很好的资源,但没有一个很好的解释。

来自社区的任何与资源相关的帮助将不胜感激。

0 投票
1 回答
1018 浏览

solidity - Truffle 控制台将 ETH 发送到 smartContract

我想向智能合约地址发送一些 ETH

但我总是得到

我正在使用最新版本的松露,所以版本 4.x

同样的问题

更新

0 投票
1 回答
297 浏览

ethereum - “=>”在solidity中是什么意思?

例如,这是什么意思?我认为这只是 hashMap 的语法,但不确定。

0 投票
2 回答
455 浏览

blockchain - 如何使用它来确保匿名 ERC20 代币交易?

伙计们。我听说了在以太坊拜占庭硬分叉上发布的 ZK(零知识)证明。你能告诉我:我如何使用它来确保匿名 ERC20 代币交易。我可以在基于 Solidity 的以太坊智能合约中使用它还是需要等待完全实施?

谢谢你的提前!:)

0 投票
2 回答
66 浏览

smartcontracts - 使用智能合约自动处理公司内部系统?

我对区块链和智能合约非常陌生。我已经考虑过智能合约如何帮助内部业务流程。我的考虑如下:让我们假设智能合约中的一个条件没有得到满足,因此启动了一个预定义的公司内部流程。

问:这个运行在区块链上的智能合约现在是否有可能在公司内部系统(例如 SAP)上自动执行流程?例如,投诉的内部流程?

非常感谢您的回答。

对不起我的英语不好

此致

0 投票
2 回答
775 浏览

bytecode - 以太坊字节码 JUMP 和 JUMPDEST 是如何解决的?

我一直在寻找有关以太坊如何处理跳转和跳转目的地的信息。从各种博客和黄皮书我发现如下:

所采用的操作数JUMP和所采用的两个操作数中的第一个是设置为JUMPI的值PC(假设第一个堆栈值!= 0 在的情况下JUMPI)。

但是,查看合约的创建代码(作为操作码),前几个操作码/值是:

PUSH1 0x60 PUSH1 0x40 MSTORE CALLDATASIZE ISZERO PUSH2 0x00f8 JUMPI

据我了解,这意味着如果将值推入堆栈ISZERO!= 0 然后PC将更改为0x00f8asJUMPI从堆栈中获取两个,检查第二个是否为 0,如果不是,则设置PC为其第一个操作数的值。

我遇到的问题是0x00f8十进制是248. 合同中的第 248 位似乎是MSTORE而不是 a JUMPDEST,这将导致合同无法执行,因为JUMP*只能指向有效的JUMPDEST.

大概合同不会故意跳转到无效的目的地?

如果有人能解释如何解决跳转和跳转目的地,我将不胜感激。

0 投票
1 回答
2370 浏览

java - 使用 web3j 检查 ERC20 合约中的余额

我想使用 web3j 检查用户的几个符合 ERC20 的令牌的余额。

是否有一种通用的方法(每个 ERC20 合同通用)或者我应该为每个合同获取 ABI 并从中生成 java 类?