-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathtoken_approve_builder.py
More file actions
27 lines (23 loc) · 952 Bytes
/
token_approve_builder.py
File metadata and controls
27 lines (23 loc) · 952 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from crypto.enums.abi_function import AbiFunction
from crypto.enums.contract_abi_type import ContractAbiType
from crypto.transactions.builder.abstract_transaction_builder import (
AbstractTransactionBuilder,
)
from crypto.transactions.types.evm_call import EvmCall
from crypto.utils.abi_encoder import AbiEncoder
from crypto.utils.transaction_utils import TransactionUtils
class TokenApproveBuilder(AbstractTransactionBuilder):
def contract_address(self, address):
self.transaction.data['to'] = address
return self
def spender(self, address, amount):
encoder = AbiEncoder(ContractAbiType.TOKEN)
payload = encoder.encode_function_call(
AbiFunction.APPROVE.value, [address, amount]
)
self.transaction.data['data'] = TransactionUtils.parse_hex_from_str(
payload
)
return self
def get_transaction_instance(self, data):
return EvmCall(data)