构建双通道应用
双通道应用的分步演示——同一个 Solidity 合约同时供 MetaMask 用户和 Phantom(Solana)用户使用,并详细说明每一步具体发生了什么。
你要编写的是——一个标准的 ERC-20 金库
interface IERC20 {
function transfer(address to, uint256 amount) external returns (bool);
function transferFrom(address from, address to, uint256 amount) external returns (bool);
}
contract Vault {
IERC20 public immutable token; // wUSDC 包装代币
mapping(address => uint256) public balanceOf;
constructor(IERC20 _token) { token = _token; }
function deposit(uint256 amount) external {
require(token.transferFrom(msg.sender, address(this), amount));
balanceOf[msg.sender] += amount;
}
function withdraw(uint256 amount) external {
balanceOf[msg.sender] -= amount;
require(token.transfer(msg.sender, amount));
}
}两条通道
通道
钱包
应用如何调用它
核心思想:synthetic 只是一个中转通道
一次性操作:激活(为 synthetic 提供账户)
双方各自需要什么
需要
原因
价值流入——存款(逐步说明)
价值流出——提取(逐步说明)
注意事项——全部由 SDK 处理
来自 MetaMask 的同一应用
下一步
最后更新于
这有帮助吗?