Sha256: f4560f92ba64073f4ee6af08844bc3e8fb8394087bf31d6937f0bdb76f22488c

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

import {TRANSACTION_TYPE} from '@waves/ts-types'
import {
    defaultValue,
    getError,
    gte,
    ifElse,
    isArray,
    isAttachment,
    isEq,
    isNaturalNumberOrZeroLike,
    isNumber,
    isPublicKey,
    isRecipient,
    isRequired,
    isWavesOrAssetId, lte,
    orEq,
    pipe,
    prop,
    validateByShema,
    validatePipe
} from './validators'


const massTransferScheme = {
  type: isEq(TRANSACTION_TYPE.MASS_TRANSFER),
  senderPublicKey: isPublicKey,
  version: orEq([undefined, 1, 2]),
  transfers: validatePipe(
      isArray,
      pipe(prop('length'), gte(0)),
      pipe(prop('length'), lte(100)),
      (data: Array<unknown>) => data.every(
          validatePipe(
              isRequired(true),
              pipe(prop('recipient'), isRecipient),
              pipe(prop('amount'), isNaturalNumberOrZeroLike)
          )
      )
  ),
  assetId: isWavesOrAssetId,
  attachment: isAttachment,
  fee: isNaturalNumberOrZeroLike,
  timestamp: isNumber,
  proofs: ifElse(isArray, defaultValue(true), orEq([ undefined ])),
}

export const massTransferValidator = validateByShema(massTransferScheme, getError);

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
waves_lib-0.1.0 js/node_modules/@waves/waves-transactions/src/validators/mass-transfer.ts