In order to use the sdk please visit https://testnet.salt.space. Once you're on Salt please create or join an Organisation and create an account. To get started with the SDK, check out the Salt class.
import { Salt } from 'salt-sdk';
import { ethers } from 'ethers';
// ARBITRUM SEPOLIA RPC in TESTNET or ARBITRUM ONE RPC in mainnet
const orchestration_network_provider =
new ethers.providers.StaticJsonRpcProvider({
url: '',
skipFetchSetup: true,
});
// EVM NETWORK RPC WHERE YOU WISH TO BROADCAST
const broadcasting_network_provider =
new ethers.providers.StaticJsonRpcProvider({
url: '',
skipFetchSetup: true,
});
const wallet = new ethers.Wallet('');
const signer = wallet.connect(orchestration_network_provider);
const sdk = new Salt({ environment: 'TESTNET' });
await sdk.authenticate(signer);
const orgs = await sdk.getOrganisations();
const accounts = await sdk.getAccounts(orgs[0]._id);
const transactionObj = await sdk.transfer({
accountId: accounts[0].id,
to: '0xaD94c511350Cced6DcffCcC34D36558Db86a42A8',
value: '0.0001',
chainId: broadcasting_network_provider.network.chainId,
decimals: 18,
type: TransferType.Native,
signer: signer,
sendingProvider: broadcasting_network_provider,
});
//subscribe to state transition events
transactionObj.onPropose((data) => console.log(data));
transactionObj.onSign((data) => console.log(data));
transactionObj.onCombine((data) => console.log(data));
transactionObj.onBroadcast((data) => console.log(data));
transactionObj.onEnd((data) => console.log(data));
transactionObj.onTransition(4, 5, (data) =>
console.log('BROADCAST->END:', data)
);
See ARCHITECTURE.md for more details.