0.5.0 • Published 6 months ago
@cityofzion/neon-dappkit-types v0.5.0
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-typesIn 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)}`)