找到约 12 条结果

视频 Gas 优化:使用 mapping 实现链表

...在 Gas 消耗和功实现上的优劣。核心思想是在链下进行计算,链上进行验证,以降低 Gas 成本。 关键信息: 1. 优化变量顺序、使用 unchecked、常量用 immutable 替代变量等小技巧可以减少 Gas 消耗。 2. 大的数据(如图片、JSON)...

视频 通过面试题深入理解 EVM 存储布局

.... **Mapping存储:** Mapping的value存储位置是通过key的哈希值计算出来的,每个元素的存储位置是离散的。 3. **升级合约添加变量:** 在结构体中添加变量时,只在结构体的末尾添加,避免覆盖原有数据。 4. **数组存储:** 数组...

文章 以太坊真实测试网络合约交互实战

... netIp) web3.setProvider(provider) //整体封装成函数 //web3和区块链交互的返回值都是promise,可以直接使用async let test = async () => { try { //获取当前区块链的对应助记词的账户地址 let accounts = await web3.eth.getAccounts() ...

问题 生成签名——贴出来的代码是solidity进行签名的验证方法,如何用java生成通过此验证方法的签名

``` struct TokenPair { address token; // token contract address uint256 tokenId; // token id (if applicable) uint256 amount; // token amount (if applicable) uint8 kind; // token kind (721/1151/mint) bytes mintData; // mint data (if applicable) } ...

文章 bip-anyprevout 项目中的 bips/bip-0017.mediawiki 文件

...码重新分配应仅在验证时间戳在 2012 年 2 月 23 日之后的区块中的交易时应用 (有关详细信息,请参见“向后兼容性”部分)。 定义一种新的标准交易类型,该类型被中继并包含在已挖掘的区块中: ``` [20-byte-hash-value] OP_CHECKHA...

文章 更安全的签名 - EIP712 结构化签名

... address spender; uint256 value; } ``` 需要经过 `keccak()` 计算后存放 ```js keccak256("Permit(address owner,address spender,uint256 value)") ``` 3. `Messages`: 消息,这里对应的是这次我们要签署的信息的具体值。这些值每次签名都是不固定...

文章 比特币开发系列 - #2 序列化

...我们想要在平均情况下节省内存呢?对于数百万笔交易,区块链很可会注意到整数序列化的保守努力,因此有*varint* 类型。 varint可以是上述任何长度,只要指定这样的长度 - 除int8之外 - 还需要额外的1字节前缀: ``...

文章 Magician-Web3 1.0.3 发布啦,可以根据 inputData 里的数据 进行监控

Magician-Web3 是一个区块链开发工具包。它由两个功组成。一个是扫描区块链,根据开发者的需要监控交易。另一个是对 web3j 的一些二次打包,可以减少开发者在一些常见场景下的工作量。它计划支持三种链,ETH(BSC、POLYGAN 等...

文章 如何使用 Metaplex 的 DAS API 入门

...place.quicknode.com/add-on/metaplex-digital-asset-standard-api) 从 Solana 区块链获取 NFT 数据。 #### 你将要做的 编写几个脚本,从 Solana 区块链使用 DAS API 获取 NFT 数据。 #### 你将需要的 - 有关 Solana NFT 的经验 ( [指南:Solana NFT 元数据深入分...

文章 如何迁移到新的代币和NFT RPC API V2包

...样出色、简化的 API,具有: - 更准确的数据, - 对更多链的支持,以及 - 更快的索引 在本指南中,我们将向你展示如何从默认的 Token API 和 NFT Fetch Tool 附加组件迁移到 [Token 和 NFT API v2 包](https://marketplace.quicknode.com/add-on/token-an...

文章 如何验证传入的流Webhook消息

... h := hmac.New(sha256.New, []byte(secretKey)) h.Write([]byte(data)) // 计算预期的 HMAC expectedHMAC = hex.EncodeToString(h.Sum(nil)) // 比较接收到的 HMAC 和预期的 HMAC if !hmac.Equal([]byte(expectedHMAC), []byte(receivedHMAC)) { return errors.New("invalid HMAC: message integ...

文章 比特币 - bips/bip-0017.mediawiki,来自 jl2012/bips

...哈希)不会从堆栈中弹出。 这是为向后兼容。 只有在区块中验证时间戳在 2012 年 2 月 23 日之后的交易时,才应应用此操作码重新分配(有关详细信息,请参阅向后兼容性部分)。 定义一种新的标准交易类型,该类型已中...