moonworm/centipede/manage.py

94 wiersze
2.1 KiB
Python
Czysty Zwykły widok Historia

2021-10-31 17:47:14 +00:00
from typing import Tuple
2021-09-10 15:27:00 +00:00
from eth_typing.evm import ChecksumAddress
2021-10-29 18:19:15 +00:00
from hexbytes.main import HexBytes
2021-09-09 14:47:03 +00:00
from web3 import Web3
2021-10-29 18:19:15 +00:00
2021-10-31 17:47:14 +00:00
from centipede.contracts import ERC1155, ERC20, ERC721, CentipedeContract
2021-10-27 11:39:05 +00:00
from .web3_util import deploy_contract
2021-09-09 14:47:03 +00:00
2021-10-29 18:19:15 +00:00
def _deploy_centipede_token_contract(
2021-10-27 11:39:05 +00:00
web3: Web3,
2021-10-29 18:19:15 +00:00
contract_class: CentipedeContract,
2021-10-27 11:39:05 +00:00
token_name: str,
token_symbol: str,
token_uri: str,
token_owner: ChecksumAddress,
deployer: ChecksumAddress,
deployer_private_key: str,
2021-10-29 18:19:15 +00:00
):
contract_abi = contract_class.abi()
contract_bytecode = contract_class.bytecode()
return deploy_contract(
2021-10-27 11:39:05 +00:00
web3,
contract_bytecode,
contract_abi,
deployer,
deployer_private_key,
[token_name, token_symbol, token_uri, token_owner],
)
2021-10-29 18:19:15 +00:00
def deploy_ERC1155(
web3: Web3,
token_name: str,
token_symbol: str,
token_uri: str,
token_owner: ChecksumAddress,
deployer: ChecksumAddress,
deployer_private_key: str,
) -> Tuple[HexBytes, ChecksumAddress]:
return _deploy_centipede_token_contract(
web3,
ERC1155,
token_name,
token_symbol,
token_uri,
token_owner,
deployer,
deployer_private_key,
)
2021-10-29 18:58:30 +00:00
def deploy_ERC20(
web3: Web3,
token_name: str,
token_symbol: str,
token_owner: ChecksumAddress,
deployer: ChecksumAddress,
deployer_private_key: str,
) -> Tuple[HexBytes, ChecksumAddress]:
2021-10-31 17:40:21 +00:00
contract_abi = ERC20.abi()
contract_bytecode = ERC20.bytecode()
return deploy_contract(
2021-10-29 18:58:30 +00:00
web3,
2021-10-31 17:40:21 +00:00
contract_bytecode,
contract_abi,
2021-10-29 18:58:30 +00:00
deployer,
deployer_private_key,
2021-10-31 17:40:21 +00:00
[token_name, token_symbol, token_owner],
2021-10-29 18:58:30 +00:00
)
def deploy_ERC721(
web3: Web3,
token_name: str,
token_symbol: str,
token_uri: str,
token_owner: ChecksumAddress,
deployer: ChecksumAddress,
deployer_private_key: str,
) -> Tuple[HexBytes, ChecksumAddress]:
return _deploy_centipede_token_contract(
web3,
ERC721,
token_name,
token_symbol,
token_uri,
token_owner,
deployer,
deployer_private_key,
)