阿萍的博客
Move 语言
Move 还有其它变种,如 Aptos Move。本文中介绍的某些 Move 概念(即对象和相关功能)只适用于 Move 的 Sui 变体,而不适用于其他变体。1 Move 编程模型所有的智能合...
CS143 编译器笔记
视频链接:CS143 编译器1 词法分析识别 token,例如关键字、标识符、数字、操作符等。正则文法有限自动机确定性有限自动机 DFA,每个输入只对应一个状态,转换过程中没有 epsilon。...
Rust 中 [u8], Vec<u8>, H256 转换
[u8] -> H256let input: [u8]; let tx_hash = H256::from_slice(&input[0..32]);[u8; n] -> [...
truffle-config.js 示例
在根目录下添加 truffle-config.js/** * Use this file to configure your truffle project. It's seeded with...
Biconomy Forward 调研
用 ERC20 token 支付 gas1 Biconomy Relayer是支付 gas 的第三方。meta tx 不直接发送到区块链,而是发送元交易到第三方 Relayer,该第三方支付 g...
ERC-20 token 支付手续费源码解析
1 ERC-20 token 支付手续费流程流程:1)client 向 relay service 发送签名后的请求,不需要用 ETH 支付手续费。2)relay service 将请求放到 t...
EVM 源码解析
1 EVM以太坊虚拟机 (Ethereum Virtual Machine, EVM) 负责执行交易和更新区块链状态。EVM 是一个状态执行的机器,输入是 solidity 编译后的二进制指令和...
git fork 后与原仓库同步
git remote add upstream https://github.com/selfteaching/the-craft-of-selfteaching.git git fetch u...
jest 忽略某些目录
在 jest.config.js 中添加 testPathIgnorePatterns: ['目录1', '目录2']/** @type {import('ts-jest').JestConfi...
OpenZeppelin 如何升级合约
Zeppeline 使用几种代理模式进行实现合约升级。1 Inherited Storageproxy 和 contract 都需要继承相同的存储结构 UpgradeabilityStorage...