Some helpers on top of the Radix Babylon Gateway TypeScript SDK.
All devs in Radix, whether frontend or backend, surely have written helpers that make it easier to fetch data from the Radix Gateway. While Radix some great SDKs, sometimes you just want a very simple thing like get an account's balances. I would love it if we could collaborate as a community to share these helpers as a common repository of abstractions. Feel free to contribute!
npm install @rippy/gateway-ez-mode
Find it on NPM
const gateway = new GatewayEzMode();
const fungibleBalances =
await gateway.getFungibleBalancesForComponent(SOME_RANDOM_ACCOUNT);
console.log(fungibleBalances);
/*
output:
[
{
token: {
resourceAddress: 'resource_rdx1tknxxxxxxxxxradxrdxxxxxxxxx009923554798xxxxxxxxxradxrd',
name: 'Radix',
iconUrl: 'https://assets.radixdlt.com/icons/icon-xrd.png',
symbol: 'XRD',
description: "The Radix Public Network's native token, used to pay the network's required transaction fees and to secure the network through staking to its validator nodes."
},
balance: '22367268.028076063653370021'
},
...
]
*/
const nftBalances =
await gateway.getComponentNonFungibleBalances(SOME_RANDOM_ACCOUNT);
console.log(nftBalances);
/*
{
resourceInfo: {
resourceAddress: 'resource_rdx1n2dd0w53zpdlqdz65vpymygj8a60vqnggyuxfpfdldjmy2224x020q',
name: 'Domain',
description: 'NFT that represents the domain name you own.',
symbol: null,
iconUrl: 'https://rns.foundation/assets/icons/domain-component.png',
infoUrl: null,
tags: [ 'domain', 'Radix Name Service' ]
},
nftBalance: [
{
id: '[43564ecf740b11ea807aa013fa0b5230]',
keyImageUrl: 'https://qr.rns.foundation/pegging.xrd',
name: 'pegging.xrd',
description: null
}
]
},
...
*/
const gateway = new GatewayEzMode();
const stream = await gateway.getTransactionStream({
startStateVersion: FROM_STATE_VERSION,
batchSize: 100,
});
let transactions = await stream.next();
let moreTransactions = await stream.next();
This package exposes sbor-ez-mode
which is a library for defining schemas for Scrypto SBOR Programmatic JSON and parsing them into nice JavaScript objects. No more tedious parsing of Scrypto SBOR JSON!
// s (for sbor) is the main object you'll have to import to create schemas and parse
import { s } from '@rippy/gateway-ez-mode';
const swapEventSchema = s.struct({
input_address: s.address(),
input_amount: s.decimal(),
output_address: s.address(),
output_amount: s.decimal(),
is_success: s.bool(),
});
For more information and examples, see sbor-ez-mode
.