问题标签 [evm]
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 - EVM 参数来源
我是基材和托盘的新手。我已经安装了前沿节点(Frontier),我需要使用 Pallet_evm 在区块链上上传智能合约。函数 create 有 6 个参数(Source、Init、Value、Gas_limit、Gas_price 和 Nonce)。我应该在 Source 参数中添加什么?
blockchain - onERC721Received 中的意外 msg.sender
我与如下构造函数签订了拍卖合同:
我已启用合约以使用以下方式接收代币safeTransferFrom
:
以下是我铸造代币的方式:
这个想法是,部署拍卖合约的人应该是唯一可以将代币转移到拍卖合约中的人。
Only the beneficiary can transfer the token into the auction.
问题是,即使我使用与部署拍卖合约的帐户相同的帐户来铸造新代币,onERC721Received
当我尝试使用构造函数铸造并将代币转移到拍卖合同。
我不确定是否msg.sender
成为MyMintingContract
,因为它是调用该方法的直接onERC721Received
方法,但是当我检查 Remix 时,它显示了调用该方法的帐户mintToken
(from
这是我用来部署拍卖合同的同一个帐户),哪个意味着它应该与beneficiary
变量一致。
如果我查询beneficiary
变量,我会得到与上图中0x5B38Da6a701c568545dCfcB03FcB875f56beddC4
的地址相同的变量。from
我是否正确假设msg.sender
与 相同from
?
smartcontracts - Substrate Frontier 使用什么类型的底层 EVM(与 EVM 兼容的客户端)?
通过基本上遵循Substrate Dev Frontier Workshop教程(根据 Frontier Evm 文档,它使用 SputnikVM 作为底层 EVM 引擎),我能够成功地构建我自己的与以太坊兼容的 Substrate 。
我知道以太坊在每次分叉后的行为或多或少都不同,例如,在一些分叉之后,各种 EVM OPCODE 的 Gas 成本会降低或增加。
话虽如此,这个基于 Sputnik 的客户端到底是哪种以太坊?该客户是类似于柏林、伊斯坦布尔还是类似于Homestead或Byzantium之类的老客户?我应该使用最新的 solc 编译器,还是应该使用像or0.8.6+commit.11564f7e
这样的旧版本?0.6.0+commit.26b70077
0.4.0+commit.acd334c9
我想知道,因为我需要准确记录每个合约部署或方法调用的 gas 成本,或者防止不兼容。
python - 以太坊合约恢复
我已经成功地在 MEW 上部署了一个用 vyper 编写的智能合约(来源如下)。当我尝试向合约发送资金时,交易被撤销。我已经尝试尽可能简化代码,但它仍然被挂断。我在想我的 assert 调用把它绊倒了,所以我也删除了它们,但仍然遇到了问题。最后,我尝试了一个超级简单的“Hello World”合约,并且在部署后也恢复了。我在这一点上不知所措。任何人都知道为什么我会收到还原错误?
arrays - 可以将 uint256[100] 内存转换为 uint256[10] 内存吗?
是否可以使 getFirst10() 工作?将 uint256[100] 内存转换为 uint256[10] 内存似乎是不可能的。
我得到的最接近的是上面的尝试,但它失败并出现错误:Error: Explicit type conversion not allowed from "uint256[100] storage ref" to "uint256[10] storage pointer"
我想要做的是有一个函数返回一个大的 uint256[] 存储数组的子切片。有没有办法做到这一点?我是否必须返回 calldata 并复制每个元素?
solidity - 将solidity余额迁移为从合约A到B的映射
我有一个合同 A, mapping(address => mapping(address => uint256)) private balances;
我想用与 A 的值相同的映射来初始化/水合另一个合同 B(A 的克隆),所以 B 余额变得像 A,然后我冻结 A。你会怎么做?我可以修改 A / 添加功能等。
此迁移在 A 的生命周期结束时完成一次。(质押池)。B 接力 X 个月。
blockchain - 实现子图来查询不同的区块链
我正在编写一个子图来查询部署到 Binance 智能链、以太坊、Fantom 和多边形的智能合约。
我的问题是;我是否需要为这些区块链编写单独的查询,我计划使用反应前端图表中的数据和下拉菜单来切换活动区块链。
我的要求是更改活动区块链更改时获取的数据。也将不胜感激向我指出正确的资源来研究或与我的案例场景匹配的示例项目。
assembly - Solidity 组装错误:必须调用内置函数“gas”
我正在用 Solidity 编写代理合同。为了在我的后备函数中转发来电,我使用了内联汇编代码。我是一名学生,下面的代码是我的导师在教程中编写的代码。
我的代码收到以下错误:
必须调用内置函数“gas”。
我假设 Solidity 自教程制作以来已经发展,但我在网上找不到任何东西(谷歌或文档)。
这是代码:
错误是指第 2 行中用红色下划线标出的单词“gas”。
有什么改变吗?
c# - 获取处理选项 获取数据银行卡 (pscs-sharp)
就我而言,我正在使用pcsc-sharp项目。
我要揭露我在做什么
- 选择 AID(在本例中为 Visa 卡)
请求:00 A4 04 00 A0000000031010 00
结果:
我检查了响应中的标签“9F38”(PDOL):
03-9F-1A-02
如果我是对的,这个 PDOL 会转化为:
- 03 -> 字节长
- 9F-1A -> 标签终端国家代码
- 02 -> 要返回的字段值的长度
我正在尝试这样做:
- 获取处理选项
请求:80 A8 00 00 8302 00
结果:
我测试了不同的 Data(8302, 8300, 83020000) 但我总是得到 6D 00 响应。我还测试了一个 apdu 工具pyResMan来执行此操作,但结果相同。
我提到了这个链接获取处理选项,但我仍然怀疑。
我不确定我在 APDU 命令中做错了什么,或者我缺少一些东西,但我需要执行 GPO 来获取 AFL 并读取我需要的所有卡数据(PAN、到期日期等)。 ..)。
提前致谢。问候。
ethereum - 如何检查智能合约调用中发送了多少 ERC20 代币
我有这段代码:
它用另一个 ERC20 代币支付了一个 ERC721 代币,我需要知道发送了多少 ERC20。有没有办法做到这一点?