И ещё один #вопрос:
Как скопировать любой смарт контракт в другом смарт контракте? Например нужно получить копию UniswapV2Pair средствами solidity.
Ответ:
bytes memory bytecode = type(UniswapV2Pair).creationCode;
bytes32 salt = keccak256(abi.encodePacked(token0, token1));
assembly {
pair := create2(0, add(bytecode, 32), mload(bytecode), salt)
}
Ключевая строчка первая, получающая код любого смарт контракта, а потом идёт код создания дубликата
@web3_school
Post #195
539
- ❤ 2
- 👍 1
- 🔥 1