@pezkuwi/api-contract 16.5.8 → 16.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base/util.d.ts +1 -1
- package/bundle-pezkuwi-api-contract.js +1 -1
- package/cjs/base/util.d.ts +1 -1
- package/cjs/packageInfo.js +1 -1
- package/package.json +12 -10
- package/packageInfo.js +1 -1
- package/build/Abi/index.d.ts +0 -31
- package/build/Abi/index.js +0 -359
- package/build/Abi/toLatestCompatible.d.ts +0 -15
- package/build/Abi/toLatestCompatible.js +0 -30
- package/build/Abi/toV1.d.ts +0 -3
- package/build/Abi/toV1.js +0 -21
- package/build/Abi/toV2.d.ts +0 -3
- package/build/Abi/toV2.js +0 -27
- package/build/Abi/toV3.d.ts +0 -3
- package/build/Abi/toV3.js +0 -10
- package/build/Abi/toV4.d.ts +0 -3
- package/build/Abi/toV4.js +0 -10
- package/build/LICENSE +0 -201
- package/build/README.md +0 -3
- package/build/augment.d.ts +0 -1
- package/build/augment.js +0 -1
- package/build/base/Base.d.ts +0 -13
- package/build/base/Base.js +0 -40
- package/build/base/Blueprint.d.ts +0 -24
- package/build/base/Blueprint.js +0 -51
- package/build/base/Code.d.ts +0 -22
- package/build/base/Code.js +0 -74
- package/build/base/Contract.d.ts +0 -25
- package/build/base/Contract.js +0 -127
- package/build/base/index.d.ts +0 -3
- package/build/base/index.js +0 -3
- package/build/base/mock.d.ts +0 -3
- package/build/base/mock.js +0 -38
- package/build/base/types.d.ts +0 -25
- package/build/base/types.js +0 -1
- package/build/base/util.d.ts +0 -16
- package/build/base/util.js +0 -33
- package/build/bundle-pezkuwi-api-contract.js +0 -1238
- package/build/bundle.d.ts +0 -4
- package/build/bundle.js +0 -4
- package/build/cjs/Abi/index.d.ts +0 -31
- package/build/cjs/Abi/index.js +0 -363
- package/build/cjs/Abi/toLatestCompatible.d.ts +0 -15
- package/build/cjs/Abi/toLatestCompatible.js +0 -36
- package/build/cjs/Abi/toV1.d.ts +0 -3
- package/build/cjs/Abi/toV1.js +0 -24
- package/build/cjs/Abi/toV2.d.ts +0 -3
- package/build/cjs/Abi/toV2.js +0 -30
- package/build/cjs/Abi/toV3.d.ts +0 -3
- package/build/cjs/Abi/toV3.js +0 -13
- package/build/cjs/Abi/toV4.d.ts +0 -3
- package/build/cjs/Abi/toV4.js +0 -13
- package/build/cjs/augment.d.ts +0 -1
- package/build/cjs/augment.js +0 -3
- package/build/cjs/base/Base.d.ts +0 -13
- package/build/cjs/base/Base.js +0 -44
- package/build/cjs/base/Blueprint.d.ts +0 -24
- package/build/cjs/base/Blueprint.js +0 -57
- package/build/cjs/base/Code.d.ts +0 -22
- package/build/cjs/base/Code.js +0 -80
- package/build/cjs/base/Contract.d.ts +0 -25
- package/build/cjs/base/Contract.js +0 -133
- package/build/cjs/base/index.d.ts +0 -3
- package/build/cjs/base/index.js +0 -14
- package/build/cjs/base/mock.d.ts +0 -3
- package/build/cjs/base/mock.js +0 -41
- package/build/cjs/base/types.d.ts +0 -25
- package/build/cjs/base/types.js +0 -2
- package/build/cjs/base/util.d.ts +0 -16
- package/build/cjs/base/util.js +0 -42
- package/build/cjs/bundle.d.ts +0 -4
- package/build/cjs/bundle.js +0 -10
- package/build/cjs/index.d.ts +0 -2
- package/build/cjs/index.js +0 -5
- package/build/cjs/package.json +0 -3
- package/build/cjs/packageDetect.d.ts +0 -1
- package/build/cjs/packageDetect.js +0 -7
- package/build/cjs/packageInfo.d.ts +0 -6
- package/build/cjs/packageInfo.js +0 -4
- package/build/cjs/promise/index.d.ts +0 -13
- package/build/cjs/promise/index.js +0 -23
- package/build/cjs/promise/types.d.ts +0 -3
- package/build/cjs/promise/types.js +0 -2
- package/build/cjs/rx/index.d.ts +0 -13
- package/build/cjs/rx/index.js +0 -23
- package/build/cjs/rx/types.d.ts +0 -3
- package/build/cjs/rx/types.js +0 -2
- package/build/cjs/types.d.ts +0 -79
- package/build/cjs/types.js +0 -2
- package/build/cjs/util.d.ts +0 -5
- package/build/cjs/util.js +0 -13
- package/build/index.d.ts +0 -2
- package/build/index.js +0 -2
- package/build/package.json +0 -408
- package/build/packageDetect.d.ts +0 -1
- package/build/packageDetect.js +0 -5
- package/build/packageInfo.d.ts +0 -6
- package/build/packageInfo.js +0 -1
- package/build/promise/index.d.ts +0 -13
- package/build/promise/index.js +0 -17
- package/build/promise/types.d.ts +0 -3
- package/build/promise/types.js +0 -1
- package/build/rx/index.d.ts +0 -13
- package/build/rx/index.js +0 -17
- package/build/rx/types.d.ts +0 -3
- package/build/rx/types.js +0 -1
- package/build/types.d.ts +0 -79
- package/build/types.js +0 -1
- package/build/util.d.ts +0 -5
- package/build/util.js +0 -10
- package/build-deno/Abi/index.ts +0 -475
- package/build-deno/Abi/toLatestCompatible.ts +0 -47
- package/build-deno/Abi/toV1.ts +0 -33
- package/build-deno/Abi/toV2.ts +0 -56
- package/build-deno/Abi/toV3.ts +0 -16
- package/build-deno/Abi/toV4.ts +0 -19
- package/build-deno/README.md +0 -3
- package/build-deno/augment.ts +0 -2
- package/build-deno/base/Base.ts +0 -50
- package/build-deno/base/Blueprint.ts +0 -88
- package/build-deno/base/Code.ts +0 -140
- package/build-deno/base/Contract.ts +0 -194
- package/build-deno/base/index.ts +0 -4
- package/build-deno/base/mock.ts +0 -46
- package/build-deno/base/types.ts +0 -38
- package/build-deno/base/util.ts +0 -54
- package/build-deno/bundle.ts +0 -6
- package/build-deno/checkTypes.manual.ts +0 -42
- package/build-deno/index.ts +0 -4
- package/build-deno/mod.ts +0 -2
- package/build-deno/packageDetect.ts +0 -9
- package/build-deno/packageInfo.ts +0 -3
- package/build-deno/promise/index.ts +0 -28
- package/build-deno/promise/types.ts +0 -5
- package/build-deno/rx/index.ts +0 -28
- package/build-deno/rx/types.ts +0 -5
- package/build-deno/test/contracts/index.ts +0 -18
- package/build-deno/test/contracts/ink/index.ts +0 -11
- package/build-deno/test/contracts/ink/v0/accumulator.wasm +0 -0
- package/build-deno/test/contracts/ink/v0/adder.wasm +0 -0
- package/build-deno/test/contracts/ink/v0/delegator.wasm +0 -0
- package/build-deno/test/contracts/ink/v0/dns.wasm +0 -0
- package/build-deno/test/contracts/ink/v0/erc20.wasm +0 -0
- package/build-deno/test/contracts/ink/v0/erc721.wasm +0 -0
- package/build-deno/test/contracts/ink/v0/flipper.wasm +0 -0
- package/build-deno/test/contracts/ink/v0/incrementer.wasm +0 -0
- package/build-deno/test/contracts/ink/v0/index.ts +0 -9
- package/build-deno/test/contracts/ink/v0/multisig_plain.wasm +0 -0
- package/build-deno/test/contracts/ink/v0/subber.wasm +0 -0
- package/build-deno/test/contracts/ink/v0/trait-flipper.wasm +0 -0
- package/build-deno/test/contracts/ink/v1/index.ts +0 -3
- package/build-deno/test/contracts/ink/v2/index.ts +0 -3
- package/build-deno/test/contracts/ink/v3/index.ts +0 -3
- package/build-deno/test/contracts/ink/v4/erc20.wasm +0 -0
- package/build-deno/test/contracts/ink/v4/flipper.wasm +0 -0
- package/build-deno/test/contracts/ink/v4/index.ts +0 -5
- package/build-deno/test/contracts/ink/v5/erc20.wasm +0 -0
- package/build-deno/test/contracts/ink/v5/flipper.wasm +0 -0
- package/build-deno/test/contracts/ink/v5/index.ts +0 -6
- package/build-deno/test/contracts/ink/v6/erc20.polkavm +0 -0
- package/build-deno/test/contracts/ink/v6/index.ts +0 -3
- package/build-deno/test/contracts/solang/index.ts +0 -5
- package/build-deno/test/contracts/solang/v0/index.ts +0 -2
- package/build-deno/test/contracts/solang/v0/ints256.sol +0 -13
- package/build-deno/test/contracts/solang/v0/ints256.wasm +0 -0
- package/build-deno/test/contracts/user/index.ts +0 -7
- package/build-deno/test/contracts/user/v0/assetTransfer.wasm +0 -0
- package/build-deno/test/contracts/user/v0/enumExample.wasm +0 -0
- package/build-deno/test/contracts/user/v0/index.ts +0 -5
- package/build-deno/test/contracts/user/v3/index.ts +0 -2
- package/build-deno/test/contracts/user/v4/index.ts +0 -2
- package/build-deno/test/contracts/util.ts +0 -12
- package/build-deno/types.ts +0 -95
- package/build-deno/util.ts +0 -18
- package/build-tsc/Abi/index.d.ts +0 -31
- package/build-tsc/Abi/toLatestCompatible.d.ts +0 -15
- package/build-tsc/Abi/toV1.d.ts +0 -3
- package/build-tsc/Abi/toV2.d.ts +0 -3
- package/build-tsc/Abi/toV3.d.ts +0 -3
- package/build-tsc/Abi/toV4.d.ts +0 -3
- package/build-tsc/augment.d.ts +0 -1
- package/build-tsc/base/Base.d.ts +0 -13
- package/build-tsc/base/Blueprint.d.ts +0 -24
- package/build-tsc/base/Code.d.ts +0 -22
- package/build-tsc/base/Contract.d.ts +0 -25
- package/build-tsc/base/index.d.ts +0 -3
- package/build-tsc/base/mock.d.ts +0 -3
- package/build-tsc/base/types.d.ts +0 -25
- package/build-tsc/base/util.d.ts +0 -16
- package/build-tsc/bundle.d.ts +0 -4
- package/build-tsc/index.d.ts +0 -2
- package/build-tsc/packageDetect.d.ts +0 -1
- package/build-tsc/packageInfo.d.ts +0 -6
- package/build-tsc/promise/index.d.ts +0 -13
- package/build-tsc/promise/types.d.ts +0 -3
- package/build-tsc/rx/index.d.ts +0 -13
- package/build-tsc/rx/types.d.ts +0 -3
- package/build-tsc/types.d.ts +0 -79
- package/build-tsc/util.d.ts +0 -5
- package/build-tsc-cjs/Abi/index.js +0 -363
- package/build-tsc-cjs/Abi/toLatestCompatible.js +0 -36
- package/build-tsc-cjs/Abi/toV1.js +0 -24
- package/build-tsc-cjs/Abi/toV2.js +0 -30
- package/build-tsc-cjs/Abi/toV3.js +0 -13
- package/build-tsc-cjs/Abi/toV4.js +0 -13
- package/build-tsc-cjs/augment.js +0 -3
- package/build-tsc-cjs/base/Base.js +0 -44
- package/build-tsc-cjs/base/Blueprint.js +0 -57
- package/build-tsc-cjs/base/Code.js +0 -80
- package/build-tsc-cjs/base/Contract.js +0 -133
- package/build-tsc-cjs/base/index.js +0 -14
- package/build-tsc-cjs/base/mock.js +0 -41
- package/build-tsc-cjs/base/types.js +0 -2
- package/build-tsc-cjs/base/util.js +0 -42
- package/build-tsc-cjs/bundle.js +0 -10
- package/build-tsc-cjs/index.js +0 -5
- package/build-tsc-cjs/packageDetect.js +0 -7
- package/build-tsc-cjs/packageInfo.js +0 -4
- package/build-tsc-cjs/promise/index.js +0 -23
- package/build-tsc-cjs/promise/types.js +0 -2
- package/build-tsc-cjs/rx/index.js +0 -23
- package/build-tsc-cjs/rx/types.js +0 -2
- package/build-tsc-cjs/types.js +0 -2
- package/build-tsc-cjs/util.js +0 -13
- package/build-tsc-esm/Abi/index.js +0 -359
- package/build-tsc-esm/Abi/toLatestCompatible.js +0 -30
- package/build-tsc-esm/Abi/toV1.js +0 -21
- package/build-tsc-esm/Abi/toV2.js +0 -27
- package/build-tsc-esm/Abi/toV3.js +0 -10
- package/build-tsc-esm/Abi/toV4.js +0 -10
- package/build-tsc-esm/augment.js +0 -1
- package/build-tsc-esm/base/Base.js +0 -40
- package/build-tsc-esm/base/Blueprint.js +0 -51
- package/build-tsc-esm/base/Code.js +0 -74
- package/build-tsc-esm/base/Contract.js +0 -127
- package/build-tsc-esm/base/index.js +0 -3
- package/build-tsc-esm/base/mock.js +0 -38
- package/build-tsc-esm/base/types.js +0 -1
- package/build-tsc-esm/base/util.js +0 -33
- package/build-tsc-esm/bundle.js +0 -4
- package/build-tsc-esm/index.js +0 -2
- package/build-tsc-esm/packageDetect.js +0 -5
- package/build-tsc-esm/packageInfo.js +0 -1
- package/build-tsc-esm/promise/index.js +0 -17
- package/build-tsc-esm/promise/types.js +0 -1
- package/build-tsc-esm/rx/index.js +0 -17
- package/build-tsc-esm/rx/types.js +0 -1
- package/build-tsc-esm/types.js +0 -1
- package/build-tsc-esm/util.js +0 -10
- package/src/Abi/Abi.spec.ts +0 -235
- package/src/Abi/index.ts +0 -477
- package/src/Abi/toLatestCompatible.spec.ts +0 -219
- package/src/Abi/toLatestCompatible.ts +0 -52
- package/src/Abi/toV1.ts +0 -35
- package/src/Abi/toV2.ts +0 -58
- package/src/Abi/toV3.ts +0 -18
- package/src/Abi/toV4.ts +0 -21
- package/src/augment.ts +0 -4
- package/src/base/Base.ts +0 -52
- package/src/base/Blueprint.ts +0 -90
- package/src/base/Code.spec.ts +0 -47
- package/src/base/Code.ts +0 -142
- package/src/base/Contract.ts +0 -197
- package/src/base/index.ts +0 -6
- package/src/base/mock.ts +0 -48
- package/src/base/types.ts +0 -40
- package/src/base/util.ts +0 -56
- package/src/bundle.ts +0 -10
- package/src/checkTypes.manual.ts +0 -45
- package/src/index.ts +0 -6
- package/src/mod.ts +0 -4
- package/src/packageDetect.ts +0 -13
- package/src/packageInfo.ts +0 -6
- package/src/promise/index.ts +0 -28
- package/src/promise/types.ts +0 -7
- package/src/rx/index.ts +0 -28
- package/src/rx/types.ts +0 -7
- package/src/test/compare/ink_v0_delegator.test.json +0 -47
- package/src/test/compare/ink_v0_dns.test.json +0 -232
- package/src/test/compare/ink_v0_erc20.test.json +0 -253
- package/src/test/compare/ink_v0_erc721.test.json +0 -415
- package/src/test/compare/ink_v0_flipper.test.json +0 -9
- package/src/test/compare/ink_v0_flipperBundle.test.json +0 -9
- package/src/test/compare/ink_v0_incrementer.test.json +0 -9
- package/src/test/compare/ink_v0_multisigPlain.test.json +0 -562
- package/src/test/compare/ink_v1_flipper.test.json +0 -9
- package/src/test/compare/ink_v1_psp22.test.json +0 -531
- package/src/test/compare/ink_v2_erc20.test.json +0 -205
- package/src/test/compare/ink_v2_flipper.test.json +0 -9
- package/src/test/compare/ink_v3_flipper.test.json +0 -9
- package/src/test/compare/ink_v3_traitErc20.test.json +0 -205
- package/src/test/compare/ink_v4_erc20Contract.test.json +0 -253
- package/src/test/compare/ink_v4_erc20Metadata.test.json +0 -253
- package/src/test/compare/ink_v4_flipperContract.test.json +0 -155
- package/src/test/compare/ink_v4_flipperMetadata.test.json +0 -155
- package/src/test/compare/ink_v5_erc20.test.json +0 -370
- package/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json +0 -370
- package/src/test/compare/ink_v5_erc20Contract.test.json +0 -370
- package/src/test/compare/ink_v5_erc20Metadata.test.json +0 -370
- package/src/test/compare/ink_v5_flipperContract.test.json +0 -174
- package/src/test/compare/ink_v5_flipperMetadata.test.json +0 -174
- package/src/test/compare/ink_v6_erc20Contract.test.json +0 -418
- package/src/test/compare/ink_v6_erc20Metadata.test.json +0 -418
- package/src/test/compare/solang_v0_ints256.test.json +0 -9
- package/src/test/compare/user_v0_assetTransfer.test.json +0 -54
- package/src/test/compare/user_v0_enumExample.test.json +0 -303
- package/src/test/compare/user_v0_recursive.test.json +0 -27
- package/src/test/compare/user_v0_withString.test.json +0 -260
- package/src/test/compare/user_v3_ask.test.json +0 -71
- package/src/test/compare/user_v4_events.test.json +0 -1328
- package/src/test/contracts/index.ts +0 -20
- package/src/test/contracts/ink/index.ts +0 -13
- package/src/test/contracts/ink/v0/accumulator.wasm +0 -0
- package/src/test/contracts/ink/v0/adder.wasm +0 -0
- package/src/test/contracts/ink/v0/delegator.json +0 -252
- package/src/test/contracts/ink/v0/delegator.wasm +0 -0
- package/src/test/contracts/ink/v0/dns.json +0 -713
- package/src/test/contracts/ink/v0/dns.wasm +0 -0
- package/src/test/contracts/ink/v0/erc20.json +0 -704
- package/src/test/contracts/ink/v0/erc20.wasm +0 -0
- package/src/test/contracts/ink/v0/erc721.json +0 -1197
- package/src/test/contracts/ink/v0/erc721.wasm +0 -0
- package/src/test/contracts/ink/v0/flipper.contract.json +0 -107
- package/src/test/contracts/ink/v0/flipper.json +0 -106
- package/src/test/contracts/ink/v0/flipper.wasm +0 -0
- package/src/test/contracts/ink/v0/incrementer.json +0 -108
- package/src/test/contracts/ink/v0/incrementer.wasm +0 -0
- package/src/test/contracts/ink/v0/index.ts +0 -11
- package/src/test/contracts/ink/v0/multisig_plain.json +0 -1466
- package/src/test/contracts/ink/v0/multisig_plain.wasm +0 -0
- package/src/test/contracts/ink/v0/subber.wasm +0 -0
- package/src/test/contracts/ink/v0/trait-flipper.json +0 -103
- package/src/test/contracts/ink/v0/trait-flipper.wasm +0 -0
- package/src/test/contracts/ink/v1/flipper.contract.json +0 -111
- package/src/test/contracts/ink/v1/index.ts +0 -6
- package/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json +0 -1722
- package/src/test/contracts/ink/v2/erc20.contract.json +0 -630
- package/src/test/contracts/ink/v2/flipper.contract.json +0 -103
- package/src/test/contracts/ink/v2/index.ts +0 -5
- package/src/test/contracts/ink/v3/flipper.contract.json +0 -105
- package/src/test/contracts/ink/v3/index.ts +0 -6
- package/src/test/contracts/ink/v3/trait_erc20.contract.json +0 -631
- package/src/test/contracts/ink/v4/erc20.contract.json +0 -1
- package/src/test/contracts/ink/v4/erc20.json +0 -821
- package/src/test/contracts/ink/v4/erc20.wasm +0 -0
- package/src/test/contracts/ink/v4/flipper.contract.json +0 -1
- package/src/test/contracts/ink/v4/flipper.json +0 -396
- package/src/test/contracts/ink/v4/flipper.wasm +0 -0
- package/src/test/contracts/ink/v4/index.ts +0 -7
- package/src/test/contracts/ink/v5/erc20.contract.json +0 -1
- package/src/test/contracts/ink/v5/erc20.json +0 -1025
- package/src/test/contracts/ink/v5/erc20.wasm +0 -0
- package/src/test/contracts/ink/v5/erc20_anonymous_transfer.json +0 -1025
- package/src/test/contracts/ink/v5/flipper.contract.json +0 -1
- package/src/test/contracts/ink/v5/flipper.json +0 -420
- package/src/test/contracts/ink/v5/flipper.wasm +0 -0
- package/src/test/contracts/ink/v5/index.ts +0 -8
- package/src/test/contracts/ink/v6/erc20.contract.json +0 -1
- package/src/test/contracts/ink/v6/erc20.json +0 -1081
- package/src/test/contracts/ink/v6/erc20.polkavm +0 -0
- package/src/test/contracts/ink/v6/index.ts +0 -5
- package/src/test/contracts/solang/index.ts +0 -7
- package/src/test/contracts/solang/v0/index.ts +0 -4
- package/src/test/contracts/solang/v0/ints256.json +0 -113
- package/src/test/contracts/solang/v0/ints256.sol +0 -13
- package/src/test/contracts/solang/v0/ints256.wasm +0 -0
- package/src/test/contracts/user/index.ts +0 -9
- package/src/test/contracts/user/v0/assetTransfer.json +0 -299
- package/src/test/contracts/user/v0/assetTransfer.wasm +0 -0
- package/src/test/contracts/user/v0/enumExample.json +0 -528
- package/src/test/contracts/user/v0/enumExample.wasm +0 -0
- package/src/test/contracts/user/v0/index.ts +0 -7
- package/src/test/contracts/user/v0/recursive.contract.json +0 -1
- package/src/test/contracts/user/v0/withString.json +0 -777
- package/src/test/contracts/user/v3/ask.json +0 -550
- package/src/test/contracts/user/v3/index.ts +0 -4
- package/src/test/contracts/user/v4/events.contract.json +0 -2990
- package/src/test/contracts/user/v4/index.ts +0 -4
- package/src/test/contracts/util.ts +0 -14
- package/src/types.ts +0 -98
- package/src/util.ts +0 -20
- package/tsconfig.build.json +0 -22
- package/tsconfig.build.tsbuildinfo +0 -1
- package/tsconfig.spec.json +0 -26
- package/tsconfig.spec.tsbuildinfo +0 -1
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { map } from 'rxjs';
|
|
2
|
-
import { SubmittableResult } from '@pezkuwi/api';
|
|
3
|
-
import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@pezkuwi/util';
|
|
4
|
-
import { applyOnEvent } from '../util.js';
|
|
5
|
-
import { Base } from './Base.js';
|
|
6
|
-
import { convertWeight, withMeta } from './util.js';
|
|
7
|
-
const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE);
|
|
8
|
-
const l = logger('Contract');
|
|
9
|
-
function createQuery(meta, fn) {
|
|
10
|
-
return withMeta(meta, (origin, options, ...params) => fn(origin, options, params));
|
|
11
|
-
}
|
|
12
|
-
function createTx(meta, fn) {
|
|
13
|
-
return withMeta(meta, (options, ...params) => fn(options, params));
|
|
14
|
-
}
|
|
15
|
-
export class ContractSubmittableResult extends SubmittableResult {
|
|
16
|
-
contractEvents;
|
|
17
|
-
constructor(result, contractEvents) {
|
|
18
|
-
super(result);
|
|
19
|
-
this.contractEvents = contractEvents;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
export class Contract extends Base {
|
|
23
|
-
/**
|
|
24
|
-
* @description The on-chain address for this contract
|
|
25
|
-
*/
|
|
26
|
-
address;
|
|
27
|
-
#query = {};
|
|
28
|
-
#tx = {};
|
|
29
|
-
constructor(api, abi, address, decorateMethod) {
|
|
30
|
-
super(api, abi, decorateMethod);
|
|
31
|
-
this.address = this.registry.createType(this._isRevive ? 'AccountId20' : 'AccountId', address);
|
|
32
|
-
this.abi.messages.forEach((m) => {
|
|
33
|
-
if (isUndefined(this.#tx[m.method])) {
|
|
34
|
-
this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p));
|
|
35
|
-
}
|
|
36
|
-
if (isUndefined(this.#query[m.method])) {
|
|
37
|
-
this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f));
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
get query() {
|
|
42
|
-
return this.#query;
|
|
43
|
-
}
|
|
44
|
-
get tx() {
|
|
45
|
-
return this.#tx;
|
|
46
|
-
}
|
|
47
|
-
#getGas = (_gasLimit, isCall = false) => {
|
|
48
|
-
const weight = convertWeight(_gasLimit);
|
|
49
|
-
if (weight.v1Weight.gt(BN_ZERO)) {
|
|
50
|
-
return weight;
|
|
51
|
-
}
|
|
52
|
-
return convertWeight(isCall
|
|
53
|
-
? MAX_CALL_GAS
|
|
54
|
-
: convertWeight(this.api.consts.system.blockWeights
|
|
55
|
-
? this.api.consts.system.blockWeights.maxBlock
|
|
56
|
-
: this.api.consts.system['maximumBlockWeight']).v1Weight.muln(64).div(BN_HUNDRED));
|
|
57
|
-
};
|
|
58
|
-
#exec = (messageOrId, { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, params) => {
|
|
59
|
-
const palletTx = this._isRevive ? this.api.tx.revive : this.api.tx.contracts;
|
|
60
|
-
return palletTx.call(this.address, value,
|
|
61
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
62
|
-
// @ts-ignore jiggle v1 weights, metadata points to latest
|
|
63
|
-
this._isWeightV1
|
|
64
|
-
? convertWeight(gasLimit).v1Weight
|
|
65
|
-
: convertWeight(gasLimit).v2Weight, storageDepositLimit, this.abi.findMessage(messageOrId).toU8a(params)).withResultTransform((result) =>
|
|
66
|
-
// ContractEmitted is the current generation, ContractExecution is the previous generation
|
|
67
|
-
new ContractSubmittableResult(result, applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], (records) => records
|
|
68
|
-
// Filter to only decode events emitted by this specific contract instance.
|
|
69
|
-
.filter((record) => {
|
|
70
|
-
try {
|
|
71
|
-
const contractAddress = record.event.data[0];
|
|
72
|
-
if (this.address.eq(contractAddress)) {
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
l.debug(`Skipping event from different contract ${contractAddress.toString()} (this contract: ${this.address.toString()})`);
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
l.warn(`Unable to extract contract address from event: ${error.message}`);
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
})
|
|
83
|
-
.map((record) => {
|
|
84
|
-
try {
|
|
85
|
-
return this.abi.decodeEvent(record);
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
l.error(`Unable to decode contract event: ${error.message}`);
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
})
|
|
92
|
-
.filter((decoded) => !!decoded), this._isRevive)));
|
|
93
|
-
};
|
|
94
|
-
#read = (messageOrId, { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, params) => {
|
|
95
|
-
const message = this.abi.findMessage(messageOrId);
|
|
96
|
-
return {
|
|
97
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
98
|
-
send: this._decorateMethod((origin) => (this._isRevive
|
|
99
|
-
? this.api.rx.call.reviveApi.call
|
|
100
|
-
: this.api.rx.call.contractsApi.call)(origin, this.address, value,
|
|
101
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
102
|
-
// @ts-ignore jiggle v1 weights, metadata points to latest
|
|
103
|
-
this._isWeightV1
|
|
104
|
-
? this.#getGas(gasLimit, true).v1Weight
|
|
105
|
-
: this.#getGas(gasLimit, true).v2Weight, storageDepositLimit, message.toU8a(params)).pipe(map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({
|
|
106
|
-
debugMessage,
|
|
107
|
-
gasConsumed,
|
|
108
|
-
gasRequired: gasRequired && !convertWeight(gasRequired).v1Weight.isZero()
|
|
109
|
-
? gasRequired
|
|
110
|
-
: gasConsumed,
|
|
111
|
-
output: result.isOk && message.returnType
|
|
112
|
-
? this.abi.registry.createTypeUnsafe(message.returnType.lookupName || message.returnType.type, [result.asOk.data.toU8a(true)], { isPedantic: true })
|
|
113
|
-
: null,
|
|
114
|
-
result,
|
|
115
|
-
storageDeposit
|
|
116
|
-
}))))
|
|
117
|
-
};
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
export function extendContract(type, decorateMethod) {
|
|
121
|
-
return class extends Contract {
|
|
122
|
-
static __ContractType = type;
|
|
123
|
-
constructor(api, abi, address) {
|
|
124
|
-
super(api, abi, address, decorateMethod);
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { TypeRegistry } from '@pezkuwi/types';
|
|
2
|
-
const registry = new TypeRegistry();
|
|
3
|
-
const instantiateWithCode = () => {
|
|
4
|
-
throw new Error('mock');
|
|
5
|
-
};
|
|
6
|
-
instantiateWithCode.meta = { args: new Array(6) };
|
|
7
|
-
export const mockApi = {
|
|
8
|
-
call: {
|
|
9
|
-
contractsApi: {
|
|
10
|
-
call: () => {
|
|
11
|
-
throw new Error('mock');
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
isConnected: true,
|
|
16
|
-
registry,
|
|
17
|
-
tx: {
|
|
18
|
-
contracts: {
|
|
19
|
-
instantiateWithCode
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
export const mockReviveApi = {
|
|
24
|
-
call: {
|
|
25
|
-
reviveApi: {
|
|
26
|
-
call: () => {
|
|
27
|
-
throw new Error('mock');
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
isConnected: true,
|
|
32
|
-
registry,
|
|
33
|
-
tx: {
|
|
34
|
-
revive: {
|
|
35
|
-
instantiateWithCode
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Bytes } from '@pezkuwi/types';
|
|
2
|
-
import { bnToBn, compactAddLength, u8aToU8a } from '@pezkuwi/util';
|
|
3
|
-
import { randomAsU8a } from '@pezkuwi/util-crypto';
|
|
4
|
-
export const EMPTY_SALT = new Uint8Array();
|
|
5
|
-
export function withMeta(meta, creator) {
|
|
6
|
-
creator.meta = meta;
|
|
7
|
-
return creator;
|
|
8
|
-
}
|
|
9
|
-
export function createBluePrintTx(meta, fn) {
|
|
10
|
-
return withMeta(meta, (options, ...params) => fn(options, params));
|
|
11
|
-
}
|
|
12
|
-
export function createBluePrintWithId(fn) {
|
|
13
|
-
return (constructorOrId, options, ...params) => fn(constructorOrId, options, params);
|
|
14
|
-
}
|
|
15
|
-
export function encodeSalt(salt = randomAsU8a()) {
|
|
16
|
-
return salt instanceof Bytes
|
|
17
|
-
? salt
|
|
18
|
-
: salt?.length
|
|
19
|
-
? compactAddLength(u8aToU8a(salt))
|
|
20
|
-
: EMPTY_SALT;
|
|
21
|
-
}
|
|
22
|
-
export function convertWeight(weight) {
|
|
23
|
-
const [refTime, proofSize] = isWeightV2(weight)
|
|
24
|
-
? [weight.refTime.toBn(), weight.proofSize.toBn()]
|
|
25
|
-
: [bnToBn(weight), undefined];
|
|
26
|
-
return {
|
|
27
|
-
v1Weight: refTime,
|
|
28
|
-
v2Weight: { proofSize, refTime }
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
export function isWeightV2(weight) {
|
|
32
|
-
return !!weight.proofSize;
|
|
33
|
-
}
|
package/build-tsc-esm/bundle.js
DELETED
package/build-tsc-esm/index.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { packageInfo as apiInfo } from '@pezkuwi/api/packageInfo';
|
|
2
|
-
import { packageInfo as typesInfo } from '@pezkuwi/types/packageInfo';
|
|
3
|
-
import { detectPackage } from '@pezkuwi/util';
|
|
4
|
-
import { packageInfo } from './packageInfo.js';
|
|
5
|
-
detectPackage(packageInfo, null, [apiInfo, typesInfo]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const packageInfo = { name: '@pezkuwi/api-contract', path: (import.meta && import.meta.url) ? new URL(import.meta.url).pathname.substring(0, new URL(import.meta.url).pathname.lastIndexOf('/') + 1) : 'auto', type: 'esm', version: '16.5.8' };
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { toPromiseMethod } from '@pezkuwi/api';
|
|
2
|
-
import { Blueprint, Code, Contract } from '../base/index.js';
|
|
3
|
-
export class BlueprintPromise extends Blueprint {
|
|
4
|
-
constructor(api, abi, codeHash) {
|
|
5
|
-
super(api, abi, codeHash, toPromiseMethod);
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
export class CodePromise extends Code {
|
|
9
|
-
constructor(api, abi, wasm) {
|
|
10
|
-
super(api, abi, wasm, toPromiseMethod);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export class ContractPromise extends Contract {
|
|
14
|
-
constructor(api, abi, address) {
|
|
15
|
-
super(api, abi, address, toPromiseMethod);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { toRxMethod } from '@pezkuwi/api';
|
|
2
|
-
import { Blueprint, Code, Contract } from '../base/index.js';
|
|
3
|
-
export class BlueprintRx extends Blueprint {
|
|
4
|
-
constructor(api, abi, codeHash) {
|
|
5
|
-
super(api, abi, codeHash, toRxMethod);
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
export class CodeRx extends Code {
|
|
9
|
-
constructor(api, abi, wasm) {
|
|
10
|
-
super(api, abi, wasm, toRxMethod);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export class ContractRx extends Contract {
|
|
14
|
-
constructor(api, abi, address) {
|
|
15
|
-
super(api, abi, address, toRxMethod);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/build-tsc-esm/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/build-tsc-esm/util.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export function applyOnEvent(result, types, fn, isRevive) {
|
|
2
|
-
if (result.isInBlock || result.isFinalized) {
|
|
3
|
-
const section = isRevive ? 'revive' : 'contracts';
|
|
4
|
-
const records = result.filterRecords(section, types);
|
|
5
|
-
if (records.length) {
|
|
6
|
-
return fn(records);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
return undefined;
|
|
10
|
-
}
|
package/src/Abi/Abi.spec.ts
DELETED
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
/// <reference types="@pezkuwi/dev-test/globals.d.ts" />
|
|
5
|
-
|
|
6
|
-
import type { Registry } from '@pezkuwi/types/types';
|
|
7
|
-
|
|
8
|
-
import fs from 'node:fs';
|
|
9
|
-
import process from 'node:process';
|
|
10
|
-
|
|
11
|
-
import { TypeDefInfo } from '@pezkuwi/types/types';
|
|
12
|
-
import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi-contracts-node';
|
|
13
|
-
import { blake2AsHex } from '@pezkuwi/util-crypto';
|
|
14
|
-
|
|
15
|
-
import { Metadata, TypeRegistry } from '../../../types/src/bundle.js';
|
|
16
|
-
import abis from '../test/contracts/index.js';
|
|
17
|
-
import { Abi } from './index.js';
|
|
18
|
-
|
|
19
|
-
interface SpecDef {
|
|
20
|
-
messages: {
|
|
21
|
-
label: string;
|
|
22
|
-
name: string[] | string
|
|
23
|
-
}[]
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
interface JSONAbi {
|
|
27
|
-
source: {
|
|
28
|
-
compiler: string,
|
|
29
|
-
hash: string,
|
|
30
|
-
language: string,
|
|
31
|
-
wasm: string
|
|
32
|
-
},
|
|
33
|
-
spec: SpecDef;
|
|
34
|
-
V1: {
|
|
35
|
-
spec: SpecDef;
|
|
36
|
-
},
|
|
37
|
-
V2: {
|
|
38
|
-
spec: SpecDef;
|
|
39
|
-
},
|
|
40
|
-
V3: {
|
|
41
|
-
spec: SpecDef;
|
|
42
|
-
},
|
|
43
|
-
V4: {
|
|
44
|
-
spec: SpecDef;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function stringifyInfo (key: string, value: unknown): unknown {
|
|
49
|
-
return key === 'info' && typeof value === 'number'
|
|
50
|
-
? TypeDefInfo[value]
|
|
51
|
-
: value;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function stringifyJson (registry: Registry): string {
|
|
55
|
-
const defs = registry.lookup.types.map(({ id }) =>
|
|
56
|
-
registry.lookup.getTypeDef(id)
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
return JSON.stringify(defs, stringifyInfo, 2);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
describe('Abi', (): void => {
|
|
63
|
-
describe('ABI', (): void => {
|
|
64
|
-
Object.entries(abis).forEach(([abiName, _abi]) => {
|
|
65
|
-
const abi = _abi as unknown as JSONAbi;
|
|
66
|
-
|
|
67
|
-
it(`initializes from a contract ABI (${abiName})`, (): void => {
|
|
68
|
-
try {
|
|
69
|
-
const messageIds = (abi.V4 || abi.V3 || abi.V2 || abi.V1 || abi).spec.messages.map(({ label, name }) =>
|
|
70
|
-
label || (
|
|
71
|
-
Array.isArray(name)
|
|
72
|
-
? name.join('::')
|
|
73
|
-
: name
|
|
74
|
-
)
|
|
75
|
-
);
|
|
76
|
-
const inkAbi = new Abi(abis[abiName]);
|
|
77
|
-
|
|
78
|
-
expect(inkAbi.messages.map(({ identifier }) => identifier)).toEqual(messageIds);
|
|
79
|
-
} catch (error) {
|
|
80
|
-
console.error(error);
|
|
81
|
-
|
|
82
|
-
throw error;
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
describe('TypeDef', (): void => {
|
|
89
|
-
for (const [abiName, abiJson] of Object.entries(abis)) {
|
|
90
|
-
it(`initializes from a contract ABI: ${abiName}`, (): void => {
|
|
91
|
-
const abi = new Abi(abiJson);
|
|
92
|
-
const registryJson = stringifyJson(abi.registry);
|
|
93
|
-
const cmpFile = new URL(`../test/compare/${abiName}.test.json`, import.meta.url);
|
|
94
|
-
|
|
95
|
-
try {
|
|
96
|
-
expect(
|
|
97
|
-
JSON.parse(registryJson)
|
|
98
|
-
).toEqual(
|
|
99
|
-
JSON.parse(fs.readFileSync(cmpFile, 'utf-8'))
|
|
100
|
-
);
|
|
101
|
-
} catch (error) {
|
|
102
|
-
if (process.env['GITHUB_REPOSITORY']) {
|
|
103
|
-
console.error(registryJson);
|
|
104
|
-
|
|
105
|
-
throw error;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
fs.writeFileSync(cmpFile, registryJson, { flag: 'w' });
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
it('has the correct hash for the source', (): void => {
|
|
115
|
-
const abi = new Abi(abis['ink_v0_flipperBundle']);
|
|
116
|
-
const bundle = abis['ink_v0_flipperBundle'] as unknown as JSONAbi;
|
|
117
|
-
|
|
118
|
-
// manual
|
|
119
|
-
expect(bundle.source.hash).toEqual(blake2AsHex(bundle.source.wasm));
|
|
120
|
-
|
|
121
|
-
// the Codec hash
|
|
122
|
-
expect(bundle.source.hash).toEqual(abi.info.source.wasm.hash.toHex());
|
|
123
|
-
|
|
124
|
-
// the hash as per the actual Abi
|
|
125
|
-
expect(bundle.source.hash).toEqual(abi.info.source.wasmHash.toHex());
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
describe('Events', (): void => {
|
|
129
|
-
const registry = new TypeRegistry();
|
|
130
|
-
|
|
131
|
-
beforeAll((): void => {
|
|
132
|
-
const metadata = new Metadata(registry, rpcMetadata);
|
|
133
|
-
|
|
134
|
-
registry.setMetadata(metadata);
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
it('decoding <=ink!v4 event', (): void => {
|
|
138
|
-
const abiJson = abis['ink_v4_erc20Metadata'];
|
|
139
|
-
|
|
140
|
-
expect(abiJson).toBeDefined();
|
|
141
|
-
const abi = new Abi(abiJson);
|
|
142
|
-
|
|
143
|
-
const eventRecordHex =
|
|
144
|
-
'0x0001000000080360951b8baf569bca905a279c12d6ce17db7cdce23a42563870ef585129ce5dc64d010001d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000c0045726332303a3a5472616e7366657200000000000000000000000000000000da2d695d3b5a304e0039e7fc4419c34fa0c1f239189c99bb72a6484f1634782b2b00c7d40fe6d84d660f3e6bed90f218e022a0909f7e1a7ea35ada8b6e003564';
|
|
145
|
-
const record = registry.createType('EventRecord', eventRecordHex);
|
|
146
|
-
|
|
147
|
-
const decodedEvent = abi.decodeEvent(record);
|
|
148
|
-
|
|
149
|
-
expect(decodedEvent.event.args.length).toEqual(3);
|
|
150
|
-
expect(decodedEvent.args.length).toEqual(3);
|
|
151
|
-
expect(decodedEvent.event.identifier).toEqual('Transfer');
|
|
152
|
-
|
|
153
|
-
const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => {
|
|
154
|
-
return {
|
|
155
|
-
...prev,
|
|
156
|
-
[cur.name]: decodedEvent.args[index].toHuman()
|
|
157
|
-
};
|
|
158
|
-
}, {});
|
|
159
|
-
|
|
160
|
-
const expectedEvent = {
|
|
161
|
-
from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY',
|
|
162
|
-
to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty',
|
|
163
|
-
value: '123.4567 MUnit'
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
expect(decodedEventHuman).toEqual(expectedEvent);
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
it('decoding >=ink!v5 event', (): void => {
|
|
170
|
-
const abiJson = abis['ink_v5_erc20Metadata'];
|
|
171
|
-
|
|
172
|
-
expect(abiJson).toBeDefined();
|
|
173
|
-
const abi = new Abi(abiJson);
|
|
174
|
-
|
|
175
|
-
const eventRecordHex =
|
|
176
|
-
'0x00010000000803da17150e96b3955a4db6ad35ddeb495f722f9c1d84683113bfb096bf3faa30f2490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000cb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cbd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48';
|
|
177
|
-
const record = registry.createType('EventRecord', eventRecordHex);
|
|
178
|
-
|
|
179
|
-
const decodedEvent = abi.decodeEvent(record);
|
|
180
|
-
|
|
181
|
-
expect(decodedEvent.event.args.length).toEqual(3);
|
|
182
|
-
expect(decodedEvent.args.length).toEqual(3);
|
|
183
|
-
expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer');
|
|
184
|
-
|
|
185
|
-
const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => {
|
|
186
|
-
return {
|
|
187
|
-
...prev,
|
|
188
|
-
[cur.name]: decodedEvent.args[index].toHuman()
|
|
189
|
-
};
|
|
190
|
-
}, {});
|
|
191
|
-
|
|
192
|
-
const expectedEvent = {
|
|
193
|
-
from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY',
|
|
194
|
-
to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty',
|
|
195
|
-
value: '123.4567 MUnit'
|
|
196
|
-
};
|
|
197
|
-
|
|
198
|
-
expect(decodedEventHuman).toEqual(expectedEvent);
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
it('decoding >=ink!v5 anonymous event', (): void => {
|
|
202
|
-
const abiJson = abis['ink_v5_erc20AnonymousTransferMetadata'];
|
|
203
|
-
|
|
204
|
-
expect(abiJson).toBeDefined();
|
|
205
|
-
const abi = new Abi(abiJson);
|
|
206
|
-
|
|
207
|
-
expect(abi.events[0].identifier).toEqual('erc20::erc20::Transfer');
|
|
208
|
-
expect(abi.events[0].signatureTopic).toEqual(null);
|
|
209
|
-
|
|
210
|
-
const eventRecordWithAnonymousEventHex = '0x00010000000803538e726248a9c155911e7d99f4f474c3408630a2f6275dd501d4471c7067ad2c490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb1060000000000000008d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48';
|
|
211
|
-
const record = registry.createType('EventRecord', eventRecordWithAnonymousEventHex);
|
|
212
|
-
|
|
213
|
-
const decodedEvent = abi.decodeEvent(record);
|
|
214
|
-
|
|
215
|
-
expect(decodedEvent.event.args.length).toEqual(3);
|
|
216
|
-
expect(decodedEvent.args.length).toEqual(3);
|
|
217
|
-
expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer');
|
|
218
|
-
|
|
219
|
-
const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => {
|
|
220
|
-
return {
|
|
221
|
-
...prev,
|
|
222
|
-
[cur.name]: decodedEvent.args[index].toHuman()
|
|
223
|
-
};
|
|
224
|
-
}, {});
|
|
225
|
-
|
|
226
|
-
const expectedEvent = {
|
|
227
|
-
from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY',
|
|
228
|
-
to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty',
|
|
229
|
-
value: '123.4567 MUnit'
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
expect(decodedEventHuman).toEqual(expectedEvent);
|
|
233
|
-
});
|
|
234
|
-
});
|
|
235
|
-
});
|