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,
            [],
        )
Example #2
0
    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,
        )
Example #3
0
    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,
        )
Example #4
0
def test_ensure():
    assert AssetAddress.ensure(validAddressString) == validAddress
    assert AssetAddress.ensure(validAddress) == validAddress