@cityofzion/props
TypeScript icon, indicating that this package has built-in type declarations

0.2.5 • Public • Published

props

Typescript SDK for the props ecosystem on Neo N3
Made with by COZ.IO

To install the package: npm install @cityofzion/props --save

Documentation

For a more complete set of project documentation, visit the project documentation.

For SDK specific documentation, visit our sdk documentation

ScriptHashes:

N3 Privatenet (like neo-express):

Scripthashes are baked into the sdk, but can be referenced within each class (example). We also include a configuration enum at types.NetworkOption to make network configuration easy. In most cases, we recommend using this approach. A complete list of configuration options can be found here

import Collection, types from '@cityofzion/props'

collection: Collection = new Collection({
  'network': types.NetworkOption.LocalNet
})
await collection.init()
console.log(collection.scriptHash)

N3 Testnet/Mainnet:

Refer to the relevant contract in the contracts documentation.

Quickstart:

Setup:

To install the package: npm install @cityofzion/props --save

Each contract interface is represented by a class. To interface with a contract, create an instance of the interface as follows:

import Puppet, helpers from '@cityofzion/props'
import {wallet} from '@cityofzion/neon-core'

const node = //refer to dora.coz.io/monitor for a list of nodes.
const scriptHash = //refer to the scriptHashes section above
puppet = await new Puppet({
  'network': types.NetworkOption.LocalNet
})
await puppet.init()
  • Note: For a local neo-express deployment, the class can be initialized without a configuration object ( e.g. new sdk.Collection())*

Other contract interfaces are initialized using the same pattern. Refer to the SDK documentation for a list of available interfaces.

From here, you can quickly interface with the smart contract deployed on the target network.

const symbol = await puppet.symbol() //returns the token symbol
const totalSupply = await puppet.totalSupply() //returns the total supply
const decimals = await puppet.decimals() //returns the decimals

All props classes use a variable invoke mechanism. This means the that method which are traditionally handled by test invocations (like the ones above), can optionally be relayed to the network by providing a user wallet as an optional parameter. When populating this optional field, the response will be a transaction id.

const myAwesomeCOZWallet = new wallet.Account() //remember that you will need some GAS in the wallet in order to pay the transaction fee
const txid = await puppet.symbol(myAwesomeCOZWallet) //relays the transaction to the network and returns the transaction id

await helpers.sleep(5000) //wait for the transaction to publish to a block.  This time will be dependent on the network you are connected to (try 30000 for testnet and mainnet)

const res = await helpers.txDidComplete(node, txid, true) //read the logs and parse the result
console.log(res)

Readme

Keywords

none

Package Sidebar

Install

npm i @cityofzion/props

Weekly Downloads

48

Version

0.2.5

License

ISC

Unpacked Size

1.18 MB

Total Files

137

Last publish

Collaborators

  • asch89
  • hotequil
  • snowypowers
  • lllwvlvwlll
  • hal0x2328