0.0.19 • Published 3 years ago

@waves/ts-contract v0.0.19

Weekly downloads
8
License
MIT
Repository
github
Last release
3 years ago

ts-contract

Create strongly typed invokes for your ride contracts

Installation

npm i @waves/ts-contract

Contract definitions and Invoke script transaction

Lest take a look on a simple contract definition:

interface myContract {
  foo(value: String)
}

Every interface method should correspond to @Callable(i) function in your .ride smart contract. In this case the contract is pretty simple:

{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}

@Callable(i)
func foo(value: String) = {
    WriteSet([
        DataEntry("data", value.size())
    ])
}

You can use it to get invoke transaction builder:

import { contract } from '@waves/ts-contract'
const { foo } = contract<myContract>()('3MwGdE779Vhf4bkn8UbqQqEQwos38KtWhsn')
foo('hello').invoke('seed') // => IInvokeScriptTransaction

In case your application use multiple contracts with the same code you can specify dApp address and when calling invoke itself

import { contract } from '@waves/ts-contract'
const { foo } = contract<myContract>()()
foo('hello')
  .invoke('seed', { dApp: '3MwGdE779Vhf4bkn8UbqQqEQwos38KtWhsn' })
  // => IInvokeScriptTransaction

Generate code

To auto generate definitions run the following command in project folder terminal:

npx @waves/ts-contract 3MwGdE779Vhf4bkn8UbqQqEQwos38KtWhsn ./myContract.ts

Where 3MwGdE779Vhf4bkn8UbqQqEQwos38KtWhsn is deployed dApp address.

Or if you want to generate code from .ride file call:

npx @waves/ts-contract ./src/myContract.ride ./myContract.ts

The generated myContract.ts file will look like this:

import { ByteVector, contract } from '@waves/ts-contract'

export interface myContract {
  foo(value: String | Number | Boolean | ByteVector)
}
export const { foo } = contract<myContract>()('3MwGdE779Vhf4bkn8UbqQqEQwos38KtWhsn')
0.0.18

3 years ago

0.0.19

3 years ago

0.0.17

4 years ago

0.0.15

4 years ago

0.0.16

4 years ago

0.0.14

4 years ago

0.0.13

4 years ago

0.0.12

4 years ago

0.0.11

4 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago