Signing Transactions
Transactions are a formal action on a blockchain. They can contain a simple sending of Lumen (Payment Operation) or sending tokens creating data on the blockchain network and so on.
In Rabet, use the
rabet.sign
method to send a transaction.This function accepts a transaction envelope XDR and network type(mainnet or testnet), When you put an XDR string and network type inside this method and call it, Rabet decodes it and shows its details to the user, if the user confirms and signs it, you receive the signed XDR.
You should only call the
sign
function after calling the connect
function. Otherwise, it would return the not-connected error.// Connect before signing
const xdr = 'AAAAAL...'; // Only string
const network = 'mainnet'; // mainnet / testnet
rabet.sign(xdr, network)
.then(result => console.log(`Signed xdr: ${result.xdr}`))
.catch(error => console.error(`Error: ${error.message}`));
You can also use
StellarSdk.Networks.PUBLIC
or
StellarSdk.Networks.
TESTNETfor the netowrk parameter.
Example of the message that the user will receive when calling the
sign
function:
You can use StellarSdk to submit the transaction to the network. Like so:
var StellarSdk = require('stellar-sdk');
var server = new StellarSdk.Server('https://horizon-testnet.stellar.org');
const xdr = 'AAAA...';
const envelope = StellarSdk.xdr.TransactionEnvelope.fromXDR(xdr, 'base64');
var transaction = new StellarSdk.Transaction(envelope, StellarSdk.Networks.TESTNET);
server
.submitTransaction(transaction)
.then((result) => {
console.log(result);
})
.catch((e) => {
console.log(e.response.data);
});
Last modified 1yr ago