Create a Script
To execute code in the blockchain, you need to create a Script, using ScriptBuilder.
First, let's instantiate the ScriptBuilder
const { ScriptBuilder } = require('phantasma-ts');
let scriptBuilder = new ScriptBuilder();
Allow Gas
This method is used to allow a dApp or a wallet to make use some GAS ( KCAL to execute a function that will change something in the blockchain. )
Parameters
From: Address or String
Target: Address or String, Normally used a Address.Null or a SmartContract Address.
GasPrice: Number, Normally used the default Gas Price: 100000
GasLimit: Number, This is the max Gas that can be used to execute this transaction.
let fromAddress = "";
let targetAddress = Address.Null;
let gasPrice = 100000;
let gasLimit = 210000;
let tokenSymbol = "SOUL";
// This method belong to the ScriptBuilder.
AllowGas(fromAddress, targetAddress, gasPrice, gasLimit)
It can be used like this.
let script = scriptBuilder
.AllowGas(fromAddress.Text, Address.Null, gasPrice, gasLimit)
.CallInterop("Runtime.TransferTokens", [fromAddress.Text, toAddress, tokenSymbol, amount])
.SpendGas(fromAddress.Text)
.EndScript();
Spend Gas
This method is used to Spend the Gas a dApp or a wallet to used for the transaction.
Parameters
From: Address or String, the Address that will pay for the transaction.
let fromAddress = "";
let targetAddress = Address.Null;
let gasPrice = 100000;
let gasLimit = 210000;
let tokenSymbol = "SOUL";
// This method belong to the ScriptBuilder.
SpendGas(fromAddress);
An example on how it could be used.
let script = scriptBuilder
.AllowGas(fromAddress.Text, Address.Null, gasPrice, gasLimit)
.CallInterop("Runtime.TransferTokens", [fromAddress.Text, toAddress, tokenSymbol, amount])
.SpendGas(fromAddress.Text)
.EndScript();
Call Interop
This method is used to Call an Internal Operation in the blockchain, you can check the list of possible Internal Operations that you can call here.
Parameters
Method Name: String, Check the list for more details.
An array with the arguments needed.
In this example we'll be checking the Runtime.TransferTokens
let script = scriptBuilder
.AllowGas(fromAddress.Text, Address.Null, gasPrice, gasLimit)
.CallInterop("Runtime.TransferTokens", [fromAddress.Text, toAddress, tokenSymbol, amount])
.SpendGas(fromAddress.Text)
.EndScript();
Call Contract
This method is used to Call a Contract Method that is deployed in the blockchain.
Parameters
Contract Name: String
Method Name: String, the name of the method inside of the contract.
An array with the arguments needed to call that method.
In this example we will be calling the Stake contract the stake Method.
let script = scriptBuilder
.AllowGas(fromAddress.Text, Address.Null, gasPrice, gasLimit)
.CallContract("stake", "Stake", [fromAddress.Text, amount])
.SpendGas(fromAddress.Text)
.EndScript();
Last updated