"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("../../types");
exports.apiConfigWNTx = {
    txTransferAsset: {
        apiType: types_1.ApiType.WN,
        method: types_1.HttpMethod.POST,
        path: 'tx/transferAsset',
        params: {
            amount: 'number',
            classId: 'string',
            fromAddress: 'string',
            fromPublicKey: 'string?',
            metadata: 'string?',
            namespace: 'string',
            protocol: 'string?',
            toAddress: 'string',
        },
    },
    txEncumber: {
        apiType: types_1.ApiType.WN,
        method: types_1.HttpMethod.POST,
        path: 'tx/encumber',
        params: {
            updated: 'boolean',
            noncePublicKey: 'string',
            chainId: 'number',
            hash: 'string',
            height: 'number',
            noCheck: 'boolean',
            nonce: 'number',
            poa: 'string',
            signature: 'string',
            timestamp: 'number',
            txType: 'string',
            address: 'string',
            administrators: [
                {
                    address: 'string',
                    endTime: 0,
                    startTime: 0,
                },
            ],
            amount: 'number',
            beneficiaries: [
                {
                    address: 'string',
                    endTime: 0,
                    startTime: 0,
                },
            ],
            classId: 'string',
            isCumulative: 'boolean',
            metadata: 'string',
            namespace: 'string',
            protocol: 'string',
            publicKey: 'string',
            reference: 'string',
            subjectAddress: 'string',
        },
    },
    txExerciseEncumbrance: {
        apiType: types_1.ApiType.WN,
        method: types_1.HttpMethod.POST,
        path: 'tx/exerciseEncumbrance',
        params: {
            amount: 'number',
            classId: 'string',
            address: 'string',
            publicKey: 'string?',
            metadata: 'string?',
            namespace: 'string',
            protocol: 'string?',
            reference: 'string?',
            subjectAddress: 'string?',
            paymentAddress: 'string?',
            tochainid: 'number?',
        },
    },
    txIssueAsset: {
        apiType: types_1.ApiType.WN,
        method: types_1.HttpMethod.POST,
        path: 'tx/issueAsset',
        params: {
            amount: 'number',
            classId: 'string',
            fromAddress: 'string',
            fromPublicKey: 'string?',
            metadata: 'string?',
            namespace: 'string',
            protocol: 'string?',
            toAddress: 'string',
        },
    },
    txIssuerTransfer: {
        apiType: types_1.ApiType.WN,
        method: types_1.HttpMethod.POST,
        path: 'tx/issuerTransfer',
        params: {
            amount: 'number',
            classId: 'string',
            fromAddress: 'string',
            fromPublicKey: 'string?',
            metadata: 'string?',
            namespace: 'string',
            protocol: 'string?',
            address: 'string?',
            toAddress: 'string',
            tochainid: 'number?',
        },
    },
    txNull: {
        apiType: types_1.ApiType.WN,
        method: types_1.HttpMethod.POST,
        path: 'tx/null',
        params: {
            address: 'string',
            publicKey: 'string?',
        },
    },
    txRegisterAsset: {
        apiType: types_1.ApiType.WN,
        method: types_1.HttpMethod.POST,
        path: 'tx/registerAsset',
        params: {
            address: 'string',
            classId: 'string',
            metadata: 'string?',
            namespace: 'string',
            publicKey: 'string?',
        },
    },
    txRegisterNamespace: {
        apiType: types_1.ApiType.WN,
        method: types_1.HttpMethod.POST,
        path: 'tx/registerNamespace',
        params: {
            address: 'string',
            metadata: 'string?',
            namespace: 'string',
            publicKey: 'string?',
        },
    },
    txTransferFromMany: {
        apiType: types_1.ApiType.WN,
        method: types_1.HttpMethod.POST,
        path: 'tx/transferFromMany',
        params: {
            address: 'string',
            amount: 'number',
            classId: 'string',
            metadata: 'string?',
            namespace: 'string',
            protocol: 'string?',
            publicKey: 'string?',
            transfers: [
                {
                    address: 'string',
                    amount: 'number',
                },
            ],
        },
    },
    txCreate: {
        apiType: types_1.ApiType.WN,
        method: types_1.HttpMethod.POST,
        path: 'tx/create',
        params: {
            updated: 'boolean',
            noncePublicKey: 'string',
            chainId: 'number',
            hash: 'string',
            height: 'number',
            noCheck: 'boolean',
            nonce: 'number',
            poa: 'string',
            signature: 'string',
            timestamp: 'number',
            txType: 'string',
        },
    },
    txUnencumber: {
        apiType: types_1.ApiType.WN,
        method: types_1.HttpMethod.POST,
        path: 'tx/unencumber',
        params: {
            updated: 'boolean',
            noncePublicKey: 'string',
            chainId: 'number',
            hash: 'string',
            height: 'number',
            noCheck: 'boolean',
            nonce: 'number',
            poa: 'string',
            signature: 'string',
            timestamp: 'number',
            address: 'string',
            amount: 'number',
            classId: 'string',
            metadata: 'string',
            namespace: 'string',
            protocol: 'string',
            publicKey: 'string',
            reference: 'string',
            subjectAddress: 'string',
            txType: 'string',
        },
    },
};
