Standalone client to the Everscale blockchain to use with everscale-inpage-provider
.
npm install --save everscale-inpage-provider everscale-standalone-client
import { Address, ProviderRpcClient, TvmException } from 'everscale-inpage-provider';
// For browser environment:
import { EverscaleStandaloneClient } from 'everscale-standalone-client';
// Or for nodejs environment:
// import { EverscaleStandaloneClient } from 'everscale-standalone-client/nodejs';
const ever = new ProviderRpcClient({
fallback: () =>
EverscaleStandaloneClient.create({
connection: {
id: 2, // network id
type: 'graphql',
data: {
// create your own project at https://dashboard.evercloud.dev
endpoints: ['https://devnet-sandbox.evercloud.dev/graphql'],
},
},
}),
});
async function myApp() {
await ever.ensureInitialized();
await ever.requestPermissions({
permissions: ['basic'],
});
const dePoolAddress = new Address('0:2e0ea1716eb93db16077d30e51d092b075ce7f0eb1c08ca5bea67ef48a79368e');
const dePool = new ever.Contract(DePoolAbi, dePoolAddress);
try {
const output = await dePool.methods.getDePoolInfo({}).call();
console.log(output);
} catch (e) {
if (e instanceof TvmException) {
console.error(e.code);
}
}
}
const DePoolAbi = {
'ABI version': 2,
header: ['time', 'expire'],
functions: [
{
name: 'getDePoolInfo',
inputs: [],
outputs: [
{ name: 'poolClosed', type: 'bool' },
{ name: 'minStake', type: 'uint64' },
{ name: 'validatorAssurance', type: 'uint64' },
{ name: 'participantRewardFraction', type: 'uint8' },
{ name: 'validatorRewardFraction', type: 'uint8' },
{ name: 'balanceThreshold', type: 'uint64' },
{ name: 'validatorWallet', type: 'address' },
{ name: 'proxies', type: 'address[]' },
{ name: 'stakeFee', type: 'uint64' },
{ name: 'retOrReinvFee', type: 'uint64' },
{ name: 'proxyFee', type: 'uint64' },
],
},
],
data: [],
events: [],
} as const; // NOTE: `as const` is very important here
myApp().catch(console.error);
Using Vite you might stuck with this issue. As a workaround, you can try this:
Install the dev-server plugin:
npm install --save-dev nekoton-wasm-vite
And add it to the vite.config.ts
:
import { defineConfig } from 'vite'
import { nekotonWasmVite } from 'nekoton-wasm-vite'
export default defineConfig({
plugins: [
nekotonWasmVite(), // <-- add to plugins section
// ...
],
// ...
});
We welcome contributions to the project! If you notice any issues or errors, feel free to open an issue or submit a pull request.
Licensed under GPL-3.0 license (LICENSE or https://opensource.org/license/gpl-3-0/).