{
    "anyOf": [
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IAliasTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IIssueTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/ITransferTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IReissueTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IBurnTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/ILeaseTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IExchangeTransaction<string|number>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/ICancelLeaseTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IMassTransferTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/ISetScriptTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/ISponsorshipTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IDataTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/ISetAssetScriptTransaction<LONG>"
        },
        {
            "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IInvokeScriptTransaction<LONG>"
        }
    ],
    "definitions": {
        "IAliasTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.ALIAS"
                },
                "alias": {
                    "type": "string"
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                },
                "chainId": {
                    "description": "Network byte.\nE.g.,\n65 is used for Acryl mainnet, 75 for Acryl testnet",
                    "type": "number"
                }
            },
            "required": [
                "alias",
                "chainId",
                "fee",
                "proofs",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.ALIAS": {
            "type": "number",
            "enum": [
                10
            ]
        },
        "LONG": {
            "type": [
                "number"
            ]
        },
        "IIssueTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.ISSUE"
                },
                "name": {
                    "minLength": 4,
                    "maxLength": 16,
                    "type": "string"
                },
                "description": {
                    "maxLength": 1000,
                    "type": "string"
                },
                "decimals": {
                    "type": "number"
                },
                "quantity": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "reissuable": {
                    "type": "boolean"
                },
                "script": {
                    "type": "string"
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                },
                "chainId": {
                    "description": "Network byte.\nE.g.,\n65 is used for Acryl mainnet, 75 for Acryl testnet",
                    "type": "number"
                }
            },
            "required": [
                "chainId",
                "decimals",
                "description",
                "fee",
                "name",
                "proofs",
                "quantity",
                "reissuable",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.ISSUE": {
            "type": "number",
            "enum": [
                3
            ]
        },
        "ITransferTransaction<LONG>": {
            "description": "Used to transfer assets from one account to another.",
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.TRANSFER"
                },
                "recipient": {
                    "type": "string"
                },
                "amount": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "attachment": {
                    "type": "string"
                },
                "feeAssetId": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "assetId": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                }
            },
            "required": [
                "amount",
                "attachment",
                "fee",
                "proofs",
                "recipient",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.TRANSFER": {
            "type": "number",
            "enum": [
                4
            ]
        },
        "IReissueTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.REISSUE"
                },
                "assetId": {
                    "type": "string"
                },
                "quantity": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "reissuable": {
                    "type": "boolean"
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                },
                "chainId": {
                    "description": "Network byte.\nE.g.,\n65 is used for Acryl mainnet, 75 for Acryl testnet",
                    "type": "number"
                }
            },
            "required": [
                "assetId",
                "chainId",
                "fee",
                "proofs",
                "quantity",
                "reissuable",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.REISSUE": {
            "type": "number",
            "enum": [
                5
            ]
        },
        "IBurnTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.BURN"
                },
                "assetId": {
                    "type": "string"
                },
                "quantity": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                },
                "chainId": {
                    "description": "Network byte.\nE.g.,\n65 is used for Acryl mainnet, 75 for Acryl testnet",
                    "type": "number"
                }
            },
            "required": [
                "assetId",
                "chainId",
                "fee",
                "proofs",
                "quantity",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.BURN": {
            "type": "number",
            "enum": [
                6
            ]
        },
        "ILeaseTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.LEASE"
                },
                "amount": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "recipient": {
                    "type": "string"
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                }
            },
            "required": [
                "amount",
                "fee",
                "proofs",
                "recipient",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.LEASE": {
            "type": "number",
            "enum": [
                8
            ]
        },
        "IExchangeTransaction<string|number>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.EXCHANGE"
                },
                "order1": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IOrder<string|number>"
                },
                "order2": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IOrder<string|number>"
                },
                "price": {
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "amount": {
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "buyMatcherFee": {
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "sellMatcherFee": {
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                }
            },
            "required": [
                "amount",
                "buyMatcherFee",
                "fee",
                "order1",
                "order2",
                "price",
                "proofs",
                "sellMatcherFee",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.EXCHANGE": {
            "type": "number",
            "enum": [
                7
            ]
        },
        "IOrder<string|number>": {
            "type": "object",
            "properties": {
                "version": {
                    "type": "number"
                },
                "orderType": {
                    "enum": [
                        "buy",
                        "sell"
                    ],
                    "type": "string"
                },
                "assetPair": {
                    "type": "object",
                    "properties": {
                        "amountAsset": {
                            "type": [
                                "null",
                                "string"
                            ]
                        },
                        "priceAsset": {
                            "type": [
                                "null",
                                "string"
                            ]
                        }
                    },
                    "required": [
                        "amountAsset",
                        "priceAsset"
                    ]
                },
                "price": {
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "amount": {
                    "type": [
                        "string",
                        "number"
                    ]
                },
                "timestamp": {
                    "type": "number"
                },
                "expiration": {
                    "type": "number"
                },
                "matcherFee": {
                    "type": "number"
                },
                "matcherPublicKey": {
                    "type": "string"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                }
            },
            "required": [
                "amount",
                "assetPair",
                "expiration",
                "matcherFee",
                "matcherPublicKey",
                "orderType",
                "price",
                "proofs",
                "senderPublicKey",
                "timestamp"
            ]
        },
        "ICancelLeaseTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.CANCEL_LEASE"
                },
                "leaseId": {
                    "type": "string"
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                },
                "chainId": {
                    "description": "Network byte.\nE.g.,\n65 is used for Acryl mainnet, 75 for Acryl testnet",
                    "type": "number"
                }
            },
            "required": [
                "chainId",
                "fee",
                "leaseId",
                "proofs",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.CANCEL_LEASE": {
            "type": "number",
            "enum": [
                9
            ]
        },
        "IMassTransferTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.MASS_TRANSFER"
                },
                "transfers": {
                    "type": "array",
                    "items": {
                        "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IMassTransferItem<LONG>"
                    }
                },
                "attachment": {
                    "type": "string"
                },
                "assetId": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                }
            },
            "required": [
                "attachment",
                "fee",
                "proofs",
                "senderPublicKey",
                "timestamp",
                "transfers",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.MASS_TRANSFER": {
            "type": "number",
            "enum": [
                11
            ]
        },
        "IMassTransferItem<LONG>": {
            "type": "object",
            "properties": {
                "recipient": {
                    "type": "string"
                },
                "amount": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                }
            },
            "required": [
                "amount",
                "recipient"
            ]
        },
        "ISetScriptTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.SET_SCRIPT"
                },
                "script": {
                    "description": "Compiled script encoded as base64 string",
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                },
                "chainId": {
                    "description": "Network byte.\nE.g.,\n65 is used for Acryl mainnet, 75 for Acryl testnet",
                    "type": "number"
                }
            },
            "required": [
                "chainId",
                "fee",
                "proofs",
                "script",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.SET_SCRIPT": {
            "type": "number",
            "enum": [
                13
            ]
        },
        "ISponsorshipTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.SPONSORSHIP"
                },
                "minSponsoredAssetFee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG",
                    "description": "Minimal fee amount in sponsored asset. To disable sponsorship set it to 0"
                },
                "assetId": {
                    "description": "AssetID of sponsored token",
                    "type": "string"
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                }
            },
            "required": [
                "assetId",
                "fee",
                "minSponsoredAssetFee",
                "proofs",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.SPONSORSHIP": {
            "type": "number",
            "enum": [
                14
            ]
        },
        "IDataTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.DATA"
                },
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IDataEntry"
                    }
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                }
            },
            "required": [
                "data",
                "fee",
                "proofs",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.DATA": {
            "type": "number",
            "enum": [
                12
            ]
        },
        "IDataEntry": {
            "type": "object",
            "properties": {
                "key": {
                    "type": "string"
                },
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/DATA_FIELD_TYPE"
                },
                "value": {
                    "type": [
                        "string",
                        "number",
                        "boolean"
                    ]
                }
            },
            "required": [
                "key",
                "type",
                "value"
            ]
        },
        "DATA_FIELD_TYPE": {
            "enum": [
                "binary",
                "boolean",
                "integer",
                "string"
            ],
            "type": "string"
        },
        "ISetAssetScriptTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.SET_ASSET_SCRIPT"
                },
                "assetId": {
                    "type": "string"
                },
                "script": {
                    "description": "Compiled script encoded as base64 string",
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                },
                "chainId": {
                    "description": "Network byte.\nE.g.,\n65 is used for Acryl mainnet, 75 for Acryl testnet",
                    "type": "number"
                }
            },
            "required": [
                "assetId",
                "chainId",
                "fee",
                "proofs",
                "script",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.SET_ASSET_SCRIPT": {
            "type": "number",
            "enum": [
                15
            ]
        },
        "IInvokeScriptTransaction<LONG>": {
            "type": "object",
            "properties": {
                "type": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/TRANSACTION_TYPE.INVOKE_SCRIPT"
                },
                "dApp": {
                    "type": "string"
                },
                "feeAssetId": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "call": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IInvokeScriptCall"
                },
                "payment": {
                    "type": "array",
                    "items": {
                        "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/IInvokeScriptPayment<string|number>"
                    }
                },
                "timestamp": {
                    "type": "number"
                },
                "fee": {
                    "$ref": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json#/definitions/LONG"
                },
                "version": {
                    "type": "number"
                },
                "proofs": {
                    "description": "ITransaction signatures",
                    "minItems": 0,
                    "maxItems": 8,
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "senderPublicKey": {
                    "description": "Account public key. This account will pay fee and this account's script will be executed if exists",
                    "type": "string"
                },
                "chainId": {
                    "description": "Network byte.\nE.g.,\n65 is used for Acryl mainnet, 75 for Acryl testnet",
                    "type": "number"
                }
            },
            "required": [
                "chainId",
                "dApp",
                "fee",
                "proofs",
                "senderPublicKey",
                "timestamp",
                "type",
                "version"
            ]
        },
        "TRANSACTION_TYPE.INVOKE_SCRIPT": {
            "type": "number",
            "enum": [
                16
            ]
        },
        "IInvokeScriptCall": {
            "type": "object",
            "properties": {
                "function": {
                    "description": "Function name",
                    "type": "string"
                },
                "args": {
                    "description": "Array of function arguments. E.g.:\n{type: 'integer', value: 200} or\n{ type: 'binary', value: 'base64:AQa3b8tH'}",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "type": {
                                "enum": [
                                    "binary",
                                    "boolean",
                                    "integer",
                                    "string"
                                ],
                                "type": "string"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "number",
                                    "boolean"
                                ]
                            }
                        },
                        "required": [
                            "type",
                            "value"
                        ]
                    }
                }
            },
            "required": [
                "args",
                "function"
            ]
        },
        "IInvokeScriptPayment<string|number>": {
            "type": "object",
            "properties": {
                "assetId": {
                    "type": [
                        "null",
                        "string"
                    ]
                },
                "amount": {
                    "type": [
                        "string",
                        "number"
                    ]
                }
            },
            "required": [
                "amount",
                "assetId"
            ]
        }
    },
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "https://raw.githubusercontent.com/acrylplatform/acryl-transactions/master/src/schemas/TTx.json"
}
