Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/broxus/everscale-standalone-client
Standalone fallback client for the Everscale blockchain
https://github.com/broxus/everscale-standalone-client
blockchain everscale venom-blockchain venom-developer-program venom-sdk web3
Last synced: 3 months ago
JSON representation
Standalone fallback client for the Everscale blockchain
- Host: GitHub
- URL: https://github.com/broxus/everscale-standalone-client
- Owner: broxus
- License: gpl-3.0
- Created: 2021-11-09T16:48:35.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-04-29T15:27:21.000Z (7 months ago)
- Last Synced: 2024-07-31T20:54:50.485Z (3 months ago)
- Topics: blockchain, everscale, venom-blockchain, venom-developer-program, venom-sdk, web3
- Language: TypeScript
- Homepage: https://broxus.github.io/everscale-standalone-client/
- Size: 783 KB
- Stars: 7
- Watchers: 14
- Forks: 12
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Everscale standalone client [![Latest Version]][npmjs.com] [![Docs badge]][docs]
## About
Standalone client to the Everscale blockchain to use with [`everscale-inpage-provider`](https://github.com/broxus/everscale-inpage-provider).
## Usage
### Install
```shell
npm install --save everscale-inpage-provider everscale-standalone-client
```### Example
```typescript
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 heremyApp().catch(console.error);
```### Build with Vite
Using [Vite](https://vitejs.dev) you will stuck with [issue](https://github.com/vitejs/vite/issues/8427). As workaround you may initialize provider like in the example below.
```js
import { Address, ProviderRpcClient } from 'everscale-inpage-provider';
import { EverscaleStandaloneClient } from 'everscale-standalone-client';const client = new ProviderRpcClient({
forceUseFallback: true,
fallback: () =>
EverscaleStandaloneClient.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](/LICENSE) or https://opensource.org/license/gpl-3-0/).
[latest version]: https://img.shields.io/npm/v/everscale-standalone-client
[npmjs.com]: https://www.npmjs.com/package/everscale-standalone-client
[docs badge]: https://img.shields.io/badge/docs-latest-brightgreen
[docs]: https://broxus.github.io/everscale-standalone-client/index.html