@bayswap/sdk
Version:
SDK for BaySwap smart contract
95 lines • 4.71 kB
JavaScript
import { Connection, JsonRpcProvider } from '@mysten/sui.js';
import { SwapModule, LiquidityModule, FaucetModule, QueryModule, StakeModule, LimitOrderModule, } from './modules';
import { DEFAULT_GAS_BUDGET } from './constants';
export const GasRegistries = {
TESTNET: {
swap: 10000000,
addLiquidity: 6000000,
removeLiquidity: 20000000,
zap: 20000000,
stake: 20000000,
claim: 20000000,
},
};
export const DefaultAddressRegistries = {
DEVNET: {
swapRegistry: {
packageID: '0xb01f7d11da6c2d04b5225f43770d42d2cbbe52aaf5c27ec29d1188d78090e719',
testPackage: '0x229f4b94633cc25a68666d355a3eee5e2766ca9850349c48eca82387d378cac8',
globalStorage: '0xce06dadf062062d551c86379e37bdef20da55835fa440e011e5beb4a333f1f62',
// normally, this router packageID is the same with packageID
routerPackageID: '0x2cf3f780bab5686988552d1a4300acbeb0bebc52db2a5c750faa10d0282aae3c',
},
stakeRegistry: {
packageID: '0x6c76098e42d9a93506847d2bdcc37adf6db793c89298a34e8877dc4a8d38dd32',
storageID: '0x7ff118a7c50f782ffc7532e4942abbe4c713da5734f6f751eba459a02e5d6d9b',
},
limitOrderRegistry: {
packageID: '0xb01f7d11da6c2d04b5225f43770d42d2cbbe52aaf5c27ec29d1188d78090e719',
storageID: '0xf7365b5eadeba96633214c4315933576b0a26ad657fbac2039189d0192b1af12',
},
},
TESTNET: {
swapRegistry: {
packageID: '0x0303449f10daec35aed66d5b70954bba08dd3a930457ef20aaea018b27676e5d',
testPackage: '0x700de8dea1aac1de7531e9d20fc2568b12d74369f91b7fad3abc1c4f40396e52',
globalStorage: '0x6604e142d39f0ac5d4dbc23628a9ebb4ae0ce1d004160c1105f599365e5c7773',
},
stakeRegistry: {
packageID: '0x6b7ff4f77cd99c563e36f8b3a14c1f0528e85c4020f0516a16173a5836c456f9',
storageID: '0x8d81e8f990a3abd3f220b88bda989bf2eb24a76a1fe4cdaf306c3051c25905bc',
},
limitOrderRegistry: {
packageID: '0x0303449f10daec35aed66d5b70954bba08dd3a930457ef20aaea018b27676e5d',
storageID: '0xb3a7671058bebb9e3645822ff6bc640c4bd27c2417803bbdfb2841f42bef2426',
},
},
MAINNET: {
swapRegistry: {
packageID: '0x227f865230dd4fc947321619f56fee37dc7ac582eb22e3eab29816f717512d9d',
testPackage: '0x700de8dea1aac1de7531e9d20fc2568b12d74369f91b7fad3abc1c4f40396e52',
globalStorage: '0x53568bcc281b720f257e53397b45228186cc3f47e714ab2ab5afea87af7ed903',
},
stakeRegistry: {
packageID: '0xf5dba8346b5084d460f480698ff0305a8e847fdb08090e2e7b56cce738006743',
storageID: '0xebe2d0fbe81fda6c479b9235c563ee62b6203b8b2bbab41687e8594c76b760b5',
},
limitOrderRegistry: {
packageID: '0x227f865230dd4fc947321619f56fee37dc7ac582eb22e3eab29816f717512d9d',
storageID: '0x0efa4ab55a66fcd3b90ceef32d60df915d675c665296bc53a718b9d4b41a568d',
},
},
};
export class SDK {
constructor(options) {
if (options) {
this._provider = new JsonRpcProvider(new Connection({
fullnode: options.url,
}));
this._registry = options.registry;
this._network = options.network;
this._txBuilderConfig = options.txBuilderConfig
? options.txBuilderConfig
: { gasBudget: DEFAULT_GAS_BUDGET };
}
else {
this._provider = new JsonRpcProvider(new Connection({
fullnode: 'https://fullnode.devnet.sui.io:443',
}));
this._registry = DefaultAddressRegistries.DEVNET;
this._network = 'DEVNET';
this._txBuilderConfig = { gasBudget: 30000 };
}
this._swap = new SwapModule(this._provider, this._registry.swapRegistry.globalStorage, this._txBuilderConfig);
// TODO: refactor to use router Package ID for all modules
this._liquidity = new LiquidityModule(this._registry.swapRegistry.routerPackageID
? this._registry.swapRegistry.routerPackageID
: this._registry.swapRegistry.packageID, this._registry.swapRegistry.globalStorage, this._txBuilderConfig);
this._faucet = new FaucetModule(this._txBuilderConfig);
this._query = new QueryModule(this._provider, this._registry.swapRegistry);
this._stake = new StakeModule(this._provider, this._registry.stakeRegistry, this._txBuilderConfig);
this._limitOrder = new LimitOrderModule(this._provider, this._registry.limitOrderRegistry, this._txBuilderConfig);
}
}
export default SDK;
//# sourceMappingURL=sdk.js.map