1.2.11 • Published 2 years ago

@wavesenterprise/contract-core v1.2.11

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

@wavesenterpise/contract-core

Implements JS Contract SDK core functionality, rpc services, tools and utilities.

Getting Started

Run following in command line:

npm i @wavesenterpise/contract-core

Create contract.ts as follows

import {
  Action,
  Contract,
  ContractMapping,
  ContractValue,
  IncomingTx,
  JsonVar,
  logger,
  Param,
  Params,
  Tx,
  Var,
  Block,
  Sender,
  BlockInfo,
} from '@wavesenterprise/contract-core'
import Long from 'long'

@Contract()
export default class #{contractName} {

  log = logger(this)

  @Var()
  counter!: ContractValue<number>

  @JsonVar()
  participants!: ContractMapping<UserData>

  @Action({ onInit: true })
  init(@Params() params: Record<string, unknown>) {
    this.counter.set(0)
    this.log.info('all params', params)
  }

  @Action({ preload: ['counter'] })
  async increment(@Tx() tx: IncomingTx, @Param('by') by: Long) {
    const { senderPublicKey, sender } = tx
    const counter = await this.counter.get()
    let participant = await this.participants.tryGet(senderPublicKey)
    if (!participant) {
      participant = {
        publicKey: senderPublicKey,
        address: sender,
        amount: 0,
      }
    }
    participant.amount += by.toNumber()
    this.counter.set(counter + by.toNumber())
    this.participants.set(senderPublicKey, participant)
  }
  
  async saveInfo(@Sender() sender: string, @Block() currentBlock: BlockInfo) {
    // 
  }
}

To initialize contract use:

import { initContract } from '@wavesenterprise/contract-core'

initContract({
  contractPath: __dirname + '/contract.js', // path to compiled contract
  concurrencyLevel: 1,
})

License

This project is licensed under the MIT License.

1.2.8

2 years ago

1.2.7

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.10

2 years ago

1.2.11

2 years ago

1.2.9

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.1.0-rc.7

3 years ago

1.1.0-rc.6

3 years ago

1.1.0-rc.9

3 years ago

1.1.0-rc.8

3 years ago

1.1.0-rc.3

3 years ago

1.1.0-rc.2

3 years ago

1.1.0-rc.5

3 years ago

1.1.0-rc.4

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.12

2 years ago

1.1.11

2 years ago

1.1.10

2 years ago

1.1.14

2 years ago

1.1.13

2 years ago

1.1.0-rc.15

3 years ago

1.1.0-rc.13

3 years ago

1.1.0-rc.14

3 years ago

1.1.0-rc.11

3 years ago

1.1.0-rc.12

3 years ago

1.1.0-rc.10

3 years ago

1.0.15

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.6-rc.8

3 years ago

1.0.6-rc.4

3 years ago

1.0.6-rc.3

3 years ago

1.0.6-rc.6

3 years ago

1.0.6-rc.5

3 years ago

1.0.6-rc.7

3 years ago

1.0.6-rc.2

3 years ago

1.0.6-rc.1

3 years ago

1.0.5

3 years ago

1.0.2

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago