Install starknet with npm
$ npm install starknet
Import starknet
and use the API
The following code is used to build a simple AMM example from the cairo docs
import { defaultProvider, stark } from 'starknet';
const { getSelectorFromName } = stark;
const CONTRACT_ADDRESS =
"0x03e19baa6cb2078631bcdb34844f3f7879449a544c9ce722681a54af08cff4b9";
/**
* addTransaction() example
**/
/** Reset the liquidity pool **/
const addTokenResponse = await provider.addTransaction({
type: "INVOKE_FUNCTION",
contract_address: CONTRACT_ADDRESS,
entry_point_selector: getSelectorFromName("init_pool"),
calldata: ["1000000", "1000000"],
});
console.log(addTokenResponse);
/**
* callContract() example
**/
/** Get the balance of the liquidity pool of token A **/
const poolBalanceTokenA = await callContract({
contract_address: CONTRACT_ADDRESS,
entry_point_selector: getSelectorFromName("get_pool_token_balance"),
calldata: ["1"],
});
const balanceA = poolBalanceTokenA.result[0];
console.log('token a liquidity pool balance: ', parseInt(balanceA, 16));
/** Get the balance of the liquidity pool of token B **/
const poolBalanceTokenB = await callContract({
contract_address: CONTRACT_ADDRESS,
entry_point_selector: getSelectorFromName("get_pool_token_balance"),
calldata: ["2"],
});
const balanceB = poolBalanceTokenB.result[0];
console.log('token b liquidity pool balance: ', parseInt(balanceB, 16));
For more information about signing transactions, please take a look at this pull request
If you consider to contribute to this project please read CONTRIBUTING.md first.
Special thanks to all the contributors, and especially Janek (@janek26) from Argent for driving the development of Starknet.js.
This library would not be possible without these rockstars.
Copyright (c) 2021 Sean James Han
Licensed under the MIT license.