1.2.1 • Published 11 months ago

@andex/client v1.2.1

Weekly downloads
-
License
GPL-3.0
Repository
github
Last release
11 months ago

Venom standalone client Latest Version Docs badge

About

Standalone client for the Venom blockchain to use with andex-provider.

Usage

Install

yarn add @andex/provider @andex/client

Example

import { Address, ProviderRpcClient, TvmException } from '@andex/provider';

// For browser environment:
import { VenomStandaloneClient } from '@andex/client';
// Or for nodejs environment:
// import { VenomStandaloneClient } from '@andex/client/nodejs';

const venom = new ProviderRpcClient({
  fallback: () =>
    VenomStandaloneClient.create({
      connection: {
        id: 1002, // network id
        type: 'jrpc',
        data: {
          endpoints: ['https://jrpc-devnet.venom.foundation/'],
        },
      },
    }),
});

async function myApp() {
  await venom.ensureInitialized();

  await venom.requestPermissions({
    permissions: ['basic'],
  });

  const dePoolAddress = new Address('0:2e0ea1716eb93db16077d30e51d092b075ce7f0eb1c08ca5bea67ef48a79368e');

  const dePool = new venom.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);

Build with Vite

Using Vite you will stuck with issue. As workaround you may initialize provider like in the example below.

import { Address, ProviderRpcClient } from '@andex/provider';
import { VenomStandaloneClient } from '@andex/client';

const client = new ProviderRpcClient({
  forceUseFallback: true,
  fallback: () =>
    VenomStandaloneClient.create({
      connection: {
        /*...*/
      },
      initInput: '../../node_modules/nekoton-wasm/nekoton_wasm_bg.wasm',
    }),
});

Contributing

We welcome contributions to the project! If you notice any issues or errors, feel free to open an issue or submit a pull request.

License

Licensed under GPL-3.0 license (LICENSE or https://opensource.org/license/gpl-3-0/).

1.2.1

11 months ago

1.2.0

11 months ago

1.0.6

11 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago