阿萍的博客

阿萍的博客

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...