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

0 投票
1 回答
28 浏览

ethereum - makeLog 指令功能在以太坊虚拟机中是如何工作的

以下代码片段是geth中的instructions.go文件的组成部分。

问题是,log0、log1、Log2 等操作码是如何工作的,它们在以太坊虚拟机中的用途是什么?

0 投票
1 回答
12 浏览

ethereum - 用于证明 EVM 完成的数字证书的最佳攻击计划

我希望探索在某人完成部分培训后创建数字证书(如证明)的选项,并使用 Solidity 在与 EVM 兼容的区块链上发布该证书。

我已经使用 ERC721 NFT 对“证书”进行编码进行了原型设计,但是,我想防止收件人能够转移这些证书。为了防止转移,我尝试使用 OpenZeppelin 中的 Pause.sol 功能,但是,这将导致整个合约被暂停,而不是特定的 tokenId。

有人对方法有任何建议吗?如果我不希望收件人能够交易证书(即让他们保持静态),我是否过于复杂?任何指针将不胜感激!

0 投票
0 回答
50 浏览

ethereum - 使用delegateCall(具有Solidity的代理合约)和使用代理合约中的变量的问题

我已经编写了一个简单的可靠代理合同,但委托合同中的变量存在问题。当我委托调用时,我所有的变量都等于 0,除非有常量。有什么原因还是我错过了什么?

我的代理合同:

代表合同:

使用 HardHat 进行的测试:

最后的输出是:

0 投票
0 回答
20 浏览

blockchain - 获取现有程序的程序参数/类型

我想寻求帮助。

我刚刚开始与 Solana 合同交互(我有 EVM 经验),现在我正在努力解决如何调用自定义外国程序。有没有办法以类似于 EVM 和 ABI 的方式获取现有程序方法/类型?

例如,当我想直接使用 web3.TransactionInstruction() 而不是 splToken.Token.createTransferInstruction() 传输令牌时,有没有办法直接从区块链上的程序获取参数/类型而无需外部文档?

我想自动化一些合同,但我没有他们的文档。

我尝试使用 connection.getTransaction() 来获取现有事务,但没有类型和 BufferLayout 信息。我还尝试了所有 SolScanners 等,但也没有找到有关参数名称和类型的任何信息。

有什么办法可以在 Solana 中做到这一点?谢谢

0 投票
1 回答
15 浏览

solana - Solana 上的 evm 中“批准”的替代方案是什么?

我在 evm 中有几个钱包。我通过调用 Contract(x).approve() 函数让他们的 X 代币访问我的主钱包。因此我可以使用这些钱包进行操作。现在我想用 solana web3 库在 solana 上做同样的事情。但是,我找不到任何可以为我的主钱包提供津贴的功能。Solana 上的 X 通证使用 solana 通证程序。

0 投票
0 回答
33 浏览

python - 带有 solcx 的 Python 找不到 evm(vs 代码)

我在 ytb 上学习了这门课程,在编写了与他相同的代码后,我遇到了 solcx 的问题。提前很多坦克。这是错误消息(我是法国人,所以第一行是法语,但我想你会明白的):

这是我的代码(与课程中的完全相同):

如果您需要,请使用solidity代码,但我认为问题不在这里:

0 投票
2 回答
60 浏览

ethereum - 通过接口创建的合约实例是否与原始部署的合约具有相同的地址?

我一直在关注 Solidity、区块链和智能合约课程 - 从初学者到专家 Python 教程 ( https://www.youtube.com/watch?v=M576WGiDBdQ&t=28658s )。我没有复制大量代码,而是尝试将我的问题概括如下:

考虑以下代码片段:

我知道这告诉以太坊虚拟机使用接口的功能在SomeAddress(我将称之为SomeContractinterface.IWeth(SomeAddress)创建合同实例。

我想确认以下几点:

wethSomeContract共享同一个地址吗?

以下状态更改是否会产生相同的结果?

0 投票
0 回答
103 浏览

python - 如何从 av,r,s 签名开始在 python 中获取以太坊地址?

我正在尝试在 Moonbeam EVM(兼容 Polkadot EVM 的平行链)中获取签署以下交易的地址。通过加载合同 ABI,我可以通过以下方式获取调用参数:

但是,我还没有找到从 v,r,s 值中获取签名地址的方法。签名地址是0xb01744745fbBebE6A0Da674F8f45fD1e14D5B488并且 Subscan 可以解码(不知道如何),外部可以在这里看到https://moonbeam.subscan.io/extrinsic/333456-3

这是外挂的内容:

那么如何从上述数据中获取地址呢?我已经尝试了很多方法,但没有找到任何能带来这种结果的东西。

PS我知道在这种特定情况下,我可以从调用触发的事件之一中获取该地址,但我不想使用该方法,而是想解码签署交易的地址

0 投票
0 回答
3 浏览

evm - EVM按钮的功能是什么

我正在制作一台 EVM 机器,但我不明白如何使 EVM 按钮的功能然后单击投票数(值)增加,最初为 0,然后单击值增加等等..

全局 c c=0 def a(): 全局 c c+=1 返回 c
c=a() print(c)

0 投票
0 回答
30 浏览

solidity - Hardhat 和 Truffle 产生相同的字节码但不同的 swarm hash

我有一个 truffle 项目,想将编译过程迁移到安全帽(主要是这样我可以获得validations.json并获得升级以正常工作)。我在两个项目中使用相同的编译器设置,似乎除了最后 43 个字节(86 个十六进制字符)之外,它们都生成相同的字节码。

据我了解,这是对 swarm 散列的一些编码。我看到它们都有字符串"solcC",而且它们也恰好有相同的最后 11 个字节(22 个十六进制字符)"64736f6c634300050a0032"

我不明白为什么最后 43 个字节在项目之间是不同的,但每个项目似乎在产生相同的 43 个字节方面是一致的。

此外,我可能正在查看错误的字段,但安全帽build-info/<hex>.json显示的"metadata"值与该build/contracts/<Contract>.json "metadata"值相同。