@cityofzion/neon-dappkit-types
v0.4.0
Published
<p align="center"> <img src="/.github/resources/images/coz.png" width="200px;"> </p>
Downloads
556
Keywords
Readme
Neon-DappKit
Neon-DappKit is the easiest way to build a dApp on Neo3. Suitable to connect Web Applications, Off-chain JS Servers and React-Native Apps to the Neo3 Blockchain.
WalletConnectSDK uses Neon-DappKit Types, so you can easily swap between Neon-DappKit implementation and WalletConnectSDK on the fly and reuse code, check the guide.
Installation
npm i @cityofzion/neon-dappkit-types
In the vite.config.ts file you must change the global value like this:
import {defineConfig} from 'vite'
export default defineConfig({
//your config here
define: {
global: 'globalThis',
process: {
version: 'globalThis'
}
//...
},
})
Getting Started
Neon-Dappkit has 4 main components:
- NeonInvoker: SmartContract Invocation Tool.
- NeonParser: Powerful Parser for Neo3 Types.
- NeonSigner: Signs, Verifies, Encrypts and Decrypts data.
- NeonEventListener: Listen to events from the Neo3 Blockchain.
Check out some examples in examples folder
Quick Example
import { NeonInvoker, NeonParser, TypeChecker } from '@CityOfZion/neon-dappkit'
import {ContractInvocationMulti} from '@cityofzion/neon-dappkit-types'
const invoker = await NeonInvoker.init({
rpcAddress: NeonInvoker.TESTNET,
})
const invocation: ContractInvocationMulti = {
invocations: [
{
scriptHash: '0x309b6b2e0538fe4095ecc48e81bb4735388432b5',
operation: 'getMetaData',
args: [
{
type: 'Hash160',
value: '0xef4073a0f2b305a38ec4050e4d3d28bc40ea63f5'
}
]
}
],
}
const testInvokeResult = await invoker.testInvoke(invocation)
console.log(`Invocation state returned: ${testInvokeResult.state}`)
console.log(`Estimated GAS consumed on involke: ${testInvokeResult.gasconsumed} GAS`) // Using testInvoke ensures zero GAS consumption, unlike invokeFunction.
console.log(`Dapp method returned a map: ${TypeChecker.isStackTypeMap(testInvokeResult.stack[0])}`)
console.log(`Dapp method data returned: ${JSON.stringify(NeonParser.parseRpcResponse(testInvokeResult.stack[0]), null, 2)}`)