Skip to main content

Credit Token

About Crediting Token

You can use the credit functionality if you change your opinion about a trade you made. For example, if you want to buy Token XY with 100 SMR, but later in the cooldown phase, if you decide you want to buy less, then you can credit yourself 30 SMR, and after the cooldown phase, you will get 70 SMR worth of XY token.

Example

To credit a token, you must call credit on dataset(Dataset.TOKEN). credit takes an object of type Build5Request<CreditTokenRequest> as parameter.

    const response = await https(origin)
.project(SoonaverseApiKey[origin])
.dataset(Dataset.TOKEN)
.credit({
address: address.bech32,
signature: signature.signature,
publicKey: {
hex: signature.publicKey,
network: Network.RMS,
},
body: {
amount: 1000000,
token: 'tokenId',
},
});

credit returns an oject of type Transaction.

Full How-To Code

import { Dataset, Network } from '@build-5/interfaces';
import { Build5, SoonaverseApiKey, https } from '@build-5/sdk';
import { address } from '../../utils/secret';
import { walletSign } from '../../utils/utils';

async function main() {
const origin = Build5.TEST;

try {
const member = await https(origin)
.project(SoonaverseApiKey[Build5.TEST])
.dataset(Dataset.MEMBER)
.id(address.bech32)
.get();

const signature = await walletSign(member.uid, address);
const response = await https(origin)
.project(SoonaverseApiKey[origin])
.dataset(Dataset.TOKEN)
.credit({
address: address.bech32,
signature: signature.signature,
publicKey: {
hex: signature.publicKey,
network: Network.RMS,
},
body: {
amount: 1000000,
token: 'tokenId',
},
});

console.log(response);
} catch (e) {
console.log(e);
return;
}
}

main().then(() => process.exit());