def create_mint_transaction(self, recipient: Union[AssetAddress, str]): if self.network_id is None: raise ValueError("networkId is undefined") if self.shard_id is None: raise ValueError("shardId is undefined") return MintAsset( self.network_id, self.shard_id, self.metadata, AssetMintOutput(self.supply, AssetAddress.ensure(recipient)), self.approver, self.registrar, self.allowd_script_hashes, [], )
def create_mint_asset_transaction( self, recipient: AssetAddress, scheme: AssetScheme = None, approvals: List[str] = None, network_id: str = None, shard_id: int = None, metadata=None, approver: PlatformAddress = None, registrar: PlatformAddress = None, allowed_script_hashes: List[H160] = None, supply: U64 = None, ): if approvals is None: approvals = [] if scheme is None and (shard_id is None or metadata is None): raise ValueError( f"Either scheme params or proper arguments should be provided {scheme}" ) network_id = self.network_id if network_id is None else network_id shard_id = shard_id supply = U64(U64.MAX_VALUE) if supply is None else supply check_metadata(metadata) metadata = metadata if isinstance(metadata, str) else str(metadata) check_asset_address_recipient(recipient) check_network_id(network_id) if shard_id is None: raise ValueError("shard_id is None") check_shard_id(shard_id) check_approver(approver) check_registrar(registrar) check_amount(supply) return MintAsset( network_id, shard_id, metadata, AssetMintOutput(U64(supply), None, None, AssetAddress.ensure(recipient)), None if approver is None else PlatformAddress.ensure(approver), None if registrar is None else PlatformAddress.ensure(registrar), [] if allowed_script_hashes is None else allowed_script_hashes, approvals, )
def create_transfer_transaction( self, network_id: str, recipient: List = None, timelock: Union[Timelock, None] = None, metadata="", approvals: List[str] = None, expiration: int = None, ): if recipient is None: recipient = [] if approvals is None: approvals = [] from .assettransferoutput import AssetTransferOutput from .transferasset import TransferAsset return TransferAsset( [], [AssetTransferInput(self.out_point, timelock, bytes(), bytes())], list( map( lambda x: AssetTransferOutput( self.asset_type, self.shard_id, x.quantity, AssetAddress.ensure(x.address), ), recipient, )), [], network_id, metadata, approvals, expiration, )
def test_ensure(): assert AssetAddress.ensure(validAddressString) == validAddress assert AssetAddress.ensure(validAddress) == validAddress