Files
xrpl-dev-portal/_code-samples/delegate-permissions/js/delegate-permissions.js
2025-08-05 11:31:51 -07:00

56 lines
1.7 KiB
JavaScript

const xrpl = require('xrpl')
async function main() {
const client = new xrpl.Client("wss://s.devnet.rippletest.net:51233")
await client.connect()
console.log("Funding new wallets from faucet...")
const delegator_wallet = (await client.fundWallet()).wallet
console.log("Delegator account:")
console.log(" Address:", delegator_wallet.address)
const delegate_wallet = (await client.fundWallet()).wallet
console.log("Delegate account:")
console.log(" Address:", delegate_wallet.address)
console.log(" Seed:", delegate_wallet.seed)
console.log("Please note these values for later.")
// Define the transaction
const delegateset = {
"TransactionType": "DelegateSet",
"Account": delegator_wallet.address,
"Authorize": delegate_wallet.address,
"Permissions": [
{
"Permission": {
"PermissionValue": "AccountDomainSet"
}
}
]
}
// Prepare, sign, and submit the transaction
const result = await client.submitAndWait(delegateset, {
wallet: delegator_wallet,
autofill: true
})
// Check transaction results
console.log(result)
if (result.result.meta.TransactionResult === "tesSUCCESS") {
console.log("Delegate successfully set.")
}
// Confirm presence of Delegate ledger entry using account_objects
response = await client.request({
"command": "account_objects",
"account": delegator_wallet.address,
"type": "delegate",
"ledger_index": "validated"
})
console.log(JSON.stringify(response, null, 2))
client.disconnect()
}
main()