Search code examples
javascriptnode.jsxrp

TrustSet - Error: Invalid type to construct an Amount


I would like to set up a trust line to buy XRPL3DAPES, but I get the error "Error: Invalid type to construct an Amount".

I don't understand why this error is displayed.

I looked at the doc many times, but each time I have a different error.

This is my code:

const xrpl = require("xrpl")
const SERVER = "wss://xrplcluster.com/"

const WebSocket = require("ws")
const ws = new WebSocket(SERVER)


ws.on("close", (code, reason) => {
    console.log("Disconnected. \nCode :", code, "\nReason: ", reason)
})


async function main() {

    const xrpl3dapes = {
        addressIssuerWallet: "rLBW9d9cfEY4ZFPbgqKzEpoEHjKeLrotWZ",
        currency: "5852504C33444150455300000000000000000000"
    }

    let response;

    const client = new xrpl.Client(SERVER)
    await client.connect()

    seed = "sXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    const wallet = xrpl.Wallet.fromSeed(seed)

    try{
        response = await client.submitAndWait(wallet.sign(
                    {
                            "TransactionType": "TrustSet",
                            "Account": wallet.address,
                            "Fee": base_fee,
                            "LimitAmount":
                            {
                              "currency": xrpl3dapes.currency,
                              "issuer": xrpl3dapes.addressIssuerWallet,
                              "value": "10000"
                            },
                            "sequence": 1
                    }).tx_blob)
    }
    catch (error){
        console.log(error)
    }

    client.disconnect()
    process.exit(1)
}

main()

Thanks for your help !

EDIT: Base_fee must be a string. Else, we get this error.

tx_json = await client.autofill({
            "TransactionType": "OfferCreate",
            "Account": wallet.address,
            "Fee": base_fee,
            "Flags": 262144,
            "TakerGets": takerGets,
            "TakerPays": takerPays
        })

    response = await client.submitAndWait(wallet.sign(tx_json).tx_blob)

Solution

  • Your payload seems correct. Can you post couple of other error messages you are getting?

    The variable/constant seed isn't declared in above code. But I'm sure it's not the issue, as you might have already fixed it after seeing the error message in the console. If you can post other error messages you are getting, maybe it can help me understand more.