@alephium/web3 2.0.8 → 3.0.0-test.0
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/LICENSE +165 -0
- package/README.md +11 -1
- package/dist/{src → _cjs}/address/address.js +60 -77
- package/dist/_cjs/address/address.js.map +1 -0
- package/dist/{src → _cjs}/address/index.js +1 -17
- package/dist/_cjs/address/index.js.map +1 -0
- package/dist/_cjs/api/api-alephium.d.ts +1152 -0
- package/dist/{src → _cjs}/api/api-alephium.js +5 -756
- package/dist/_cjs/api/api-alephium.js.map +1 -0
- package/dist/_cjs/api/api-explorer.d.ts +586 -0
- package/dist/{src → _cjs}/api/api-explorer.js +14 -454
- package/dist/_cjs/api/api-explorer.js.map +1 -0
- package/dist/{src → _cjs}/api/explorer-provider.js +1 -18
- package/dist/_cjs/api/explorer-provider.js.map +1 -0
- package/dist/{src → _cjs}/api/index.js +18 -24
- package/dist/_cjs/api/index.js.map +1 -0
- package/dist/{src → _cjs}/api/node-provider.d.ts +1 -1
- package/dist/{src → _cjs}/api/node-provider.js +4 -26
- package/dist/_cjs/api/node-provider.js.map +1 -0
- package/dist/{src → _cjs}/api/types.js +25 -43
- package/dist/_cjs/api/types.js.map +1 -0
- package/dist/{src → _cjs}/api/utils.d.ts +1 -1
- package/dist/{src → _cjs}/api/utils.js +9 -21
- package/dist/_cjs/api/utils.js.map +1 -0
- package/dist/{src → _cjs}/block/block.js +20 -26
- package/dist/_cjs/block/block.js.map +1 -0
- package/dist/_cjs/block/index.d.ts +2 -0
- package/dist/_cjs/block/index.js +6 -0
- package/dist/_cjs/block/index.js.map +1 -0
- package/dist/{src → _cjs}/codec/array-codec.js +1 -17
- package/dist/_cjs/codec/array-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/asset-output-codec.js +1 -17
- package/dist/_cjs/codec/asset-output-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/bigint-codec.js +2 -33
- package/dist/_cjs/codec/bigint-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/bytestring-codec.d.ts +1 -1
- package/dist/{src → _cjs}/codec/bytestring-codec.js +1 -17
- package/dist/_cjs/codec/bytestring-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/checksum-codec.js +1 -17
- package/dist/_cjs/codec/checksum-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/codec.js +3 -19
- package/dist/_cjs/codec/codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/compact-int-codec.js +2 -18
- package/dist/_cjs/codec/compact-int-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/contract-codec.js +1 -17
- package/dist/_cjs/codec/contract-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/contract-output-codec.js +1 -17
- package/dist/_cjs/codec/contract-output-codec.js.map +1 -0
- package/dist/_cjs/codec/contract-output-ref-codec.js +12 -0
- package/dist/_cjs/codec/contract-output-ref-codec.js.map +1 -0
- package/dist/_cjs/codec/either-codec.js +8 -0
- package/dist/_cjs/codec/either-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/hash.d.ts +1 -1
- package/dist/_cjs/codec/hash.js +20 -0
- package/dist/_cjs/codec/hash.js.map +1 -0
- package/dist/{src → _cjs}/codec/index.js +18 -24
- package/dist/_cjs/codec/index.js.map +1 -0
- package/dist/{src → _cjs}/codec/input-codec.js +1 -0
- package/dist/_cjs/codec/input-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/instr-codec.js +4 -21
- package/dist/_cjs/codec/instr-codec.js.map +1 -0
- package/dist/_cjs/codec/int-as-4bytes-codec.js +16 -0
- package/dist/_cjs/codec/int-as-4bytes-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/lockup-script-codec.d.ts +1 -1
- package/dist/{src → _cjs}/codec/lockup-script-codec.js +1 -17
- package/dist/_cjs/codec/lockup-script-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/method-codec.js +1 -17
- package/dist/_cjs/codec/method-codec.js.map +1 -0
- package/dist/_cjs/codec/option-codec.js +19 -0
- package/dist/_cjs/codec/option-codec.js.map +1 -0
- package/dist/_cjs/codec/output-codec.js +10 -0
- package/dist/_cjs/codec/output-codec.js.map +1 -0
- package/dist/_cjs/codec/public-key-like-codec.js +14 -0
- package/dist/_cjs/codec/public-key-like-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/reader.js +1 -17
- package/dist/_cjs/codec/reader.js.map +1 -0
- package/dist/_cjs/codec/script-codec.js +18 -0
- package/dist/_cjs/codec/script-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/signature-codec.d.ts +1 -1
- package/dist/_cjs/codec/signature-codec.js +8 -0
- package/dist/_cjs/codec/signature-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/timestamp-codec.js +1 -17
- package/dist/_cjs/codec/timestamp-codec.js.map +1 -0
- package/dist/_cjs/codec/token-codec.js +12 -0
- package/dist/_cjs/codec/token-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/transaction-codec.js +1 -17
- package/dist/_cjs/codec/transaction-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/unlock-script-codec.d.ts +1 -1
- package/dist/{src → _cjs}/codec/unlock-script-codec.js +1 -17
- package/dist/_cjs/codec/unlock-script-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/unsigned-tx-codec.js +1 -0
- package/dist/_cjs/codec/unsigned-tx-codec.js.map +1 -0
- package/dist/{src → _cjs}/codec/val.js +1 -17
- package/dist/_cjs/codec/val.js.map +1 -0
- package/dist/{src → _cjs}/constants.d.ts +0 -3
- package/dist/{src → _cjs}/constants.js +1 -20
- package/dist/_cjs/constants.js.map +1 -0
- package/dist/{src → _cjs}/contract/contract.js +89 -80
- package/dist/_cjs/contract/contract.js.map +1 -0
- package/dist/{src → _cjs}/contract/dapp-tx-builder.js +3 -19
- package/dist/_cjs/contract/dapp-tx-builder.js.map +1 -0
- package/dist/_cjs/contract/deployment.js +3 -0
- package/dist/_cjs/contract/deployment.js.map +1 -0
- package/dist/{src → _cjs}/contract/events.js +20 -26
- package/dist/_cjs/contract/events.js.map +1 -0
- package/dist/{src → _cjs}/contract/index.js +1 -17
- package/dist/_cjs/contract/index.js.map +1 -0
- package/dist/{src → _cjs}/contract/ralph.js +35 -69
- package/dist/_cjs/contract/ralph.js.map +1 -0
- package/dist/{src → _cjs}/contract/script-simulator.d.ts +0 -12
- package/dist/{src → _cjs}/contract/script-simulator.js +23 -64
- package/dist/_cjs/contract/script-simulator.js.map +1 -0
- package/dist/_cjs/debug.js +29 -0
- package/dist/_cjs/debug.js.map +1 -0
- package/dist/{src → _cjs}/error.js +1 -17
- package/dist/_cjs/error.js.map +1 -0
- package/dist/{src → _cjs}/exchange/exchange.js +8 -26
- package/dist/_cjs/exchange/exchange.js.map +1 -0
- package/dist/_cjs/exchange/index.d.ts +2 -0
- package/dist/{src → _cjs}/exchange/index.js +1 -17
- package/dist/_cjs/exchange/index.js.map +1 -0
- package/dist/{src → _cjs}/global.js +7 -26
- package/dist/_cjs/global.js.map +1 -0
- package/dist/{src → _cjs}/index.js +18 -27
- package/dist/_cjs/index.js.map +1 -0
- package/dist/_cjs/package.json +1 -0
- package/dist/{src → _cjs}/signer/index.js +1 -17
- package/dist/_cjs/signer/index.js.map +1 -0
- package/dist/{src → _cjs}/signer/signer.js +16 -63
- package/dist/_cjs/signer/signer.js.map +1 -0
- package/dist/{src → _cjs}/signer/tx-builder.js +4 -21
- package/dist/_cjs/signer/tx-builder.js.map +1 -0
- package/dist/{src → _cjs}/signer/types.js +6 -22
- package/dist/_cjs/signer/types.js.map +1 -0
- package/dist/{src → _cjs}/token/index.js +1 -17
- package/dist/_cjs/token/index.js.map +1 -0
- package/dist/{src → _cjs}/token/nft.d.ts +0 -1
- package/dist/{src → _cjs}/token/nft.js +5 -24
- package/dist/_cjs/token/nft.js.map +1 -0
- package/dist/{src → _cjs}/transaction/index.js +1 -17
- package/dist/_cjs/transaction/index.js.map +1 -0
- package/dist/{src → _cjs}/transaction/sign-verify.js +20 -27
- package/dist/_cjs/transaction/sign-verify.js.map +1 -0
- package/dist/{src → _cjs}/transaction/status.js +20 -26
- package/dist/_cjs/transaction/status.js.map +1 -0
- package/dist/{src → _cjs}/transaction/utils.js +3 -20
- package/dist/_cjs/transaction/utils.js.map +1 -0
- package/dist/{src → _cjs}/utils/bs58.d.ts +0 -1
- package/dist/{src → _cjs}/utils/bs58.js +4 -21
- package/dist/_cjs/utils/bs58.js.map +1 -0
- package/dist/_cjs/utils/djb2.js +11 -0
- package/dist/_cjs/utils/djb2.js.map +1 -0
- package/dist/{src → _cjs}/utils/index.js +1 -17
- package/dist/_cjs/utils/index.js.map +1 -0
- package/dist/{src → _cjs}/utils/number.d.ts +0 -2
- package/dist/{src → _cjs}/utils/number.fixture.js +1 -17
- package/dist/_cjs/utils/number.fixture.js.map +1 -0
- package/dist/{src → _cjs}/utils/number.js +10 -44
- package/dist/_cjs/utils/number.js.map +1 -0
- package/dist/_cjs/utils/sign.js +89 -0
- package/dist/_cjs/utils/sign.js.map +1 -0
- package/dist/{src → _cjs}/utils/subscription.js +1 -17
- package/dist/_cjs/utils/subscription.js.map +1 -0
- package/dist/{src → _cjs}/utils/utils.d.ts +7 -6
- package/dist/{src → _cjs}/utils/utils.js +60 -57
- package/dist/_cjs/utils/utils.js.map +1 -0
- package/dist/{src → _cjs}/utils/webcrypto.d.ts +1 -3
- package/dist/_cjs/utils/webcrypto.js +18 -0
- package/dist/_cjs/utils/webcrypto.js.map +1 -0
- package/dist/_esm/address/address.d.ts +36 -0
- package/dist/_esm/address/address.js +309 -0
- package/dist/_esm/address/address.js.map +1 -0
- package/dist/_esm/address/index.d.ts +1 -0
- package/dist/_esm/address/index.js +2 -0
- package/dist/_esm/address/index.js.map +1 -0
- package/dist/_esm/api/api-alephium.d.ts +1152 -0
- package/dist/_esm/api/api-alephium.js +797 -0
- package/dist/_esm/api/api-alephium.js.map +1 -0
- package/dist/_esm/api/api-explorer.d.ts +586 -0
- package/dist/_esm/api/api-explorer.js +577 -0
- package/dist/_esm/api/api-explorer.js.map +1 -0
- package/dist/_esm/api/explorer-provider.d.ts +21 -0
- package/dist/_esm/api/explorer-provider.js +48 -0
- package/dist/_esm/api/explorer-provider.js.map +1 -0
- package/dist/_esm/api/index.d.ts +6 -0
- package/dist/_esm/api/index.js +7 -0
- package/dist/_esm/api/index.js.map +1 -0
- package/dist/_esm/api/node-provider.d.ts +46 -0
- package/dist/_esm/api/node-provider.js +178 -0
- package/dist/_esm/api/node-provider.js.map +1 -0
- package/dist/_esm/api/types.d.ts +71 -0
- package/dist/_esm/api/types.js +219 -0
- package/dist/_esm/api/types.js.map +1 -0
- package/dist/_esm/api/utils.d.ts +10 -0
- package/dist/_esm/api/utils.js +37 -0
- package/dist/_esm/api/utils.js.map +1 -0
- package/dist/_esm/block/block.d.ts +27 -0
- package/dist/_esm/block/block.js +128 -0
- package/dist/_esm/block/block.js.map +1 -0
- package/dist/_esm/block/index.d.ts +2 -0
- package/dist/_esm/block/index.js +2 -0
- package/dist/_esm/block/index.js.map +1 -0
- package/dist/_esm/codec/array-codec.d.ts +8 -0
- package/dist/_esm/codec/array-codec.js +25 -0
- package/dist/_esm/codec/array-codec.js.map +1 -0
- package/dist/_esm/codec/asset-output-codec.d.ts +21 -0
- package/dist/_esm/codec/asset-output-codec.js +74 -0
- package/dist/_esm/codec/asset-output-codec.js.map +1 -0
- package/dist/_esm/codec/bigint-codec.d.ts +5 -0
- package/dist/_esm/codec/bigint-codec.js +62 -0
- package/dist/_esm/codec/bigint-codec.js.map +1 -0
- package/dist/_esm/codec/bytestring-codec.d.ts +10 -0
- package/dist/_esm/codec/bytestring-codec.js +16 -0
- package/dist/_esm/codec/bytestring-codec.js.map +1 -0
- package/dist/_esm/codec/checksum-codec.d.ts +8 -0
- package/dist/_esm/codec/checksum-codec.js +27 -0
- package/dist/_esm/codec/checksum-codec.js.map +1 -0
- package/dist/_esm/codec/codec.d.ts +57 -0
- package/dist/_esm/codec/codec.js +114 -0
- package/dist/_esm/codec/codec.js.map +1 -0
- package/dist/_esm/codec/compact-int-codec.d.ts +68 -0
- package/dist/_esm/codec/compact-int-codec.js +287 -0
- package/dist/_esm/codec/compact-int-codec.js.map +1 -0
- package/dist/_esm/codec/contract-codec.d.ts +19 -0
- package/dist/_esm/codec/contract-codec.js +47 -0
- package/dist/_esm/codec/contract-codec.js.map +1 -0
- package/dist/_esm/codec/contract-output-codec.d.ts +14 -0
- package/dist/_esm/codec/contract-output-codec.js +40 -0
- package/dist/_esm/codec/contract-output-codec.js.map +1 -0
- package/dist/_esm/codec/contract-output-ref-codec.d.ts +8 -0
- package/dist/_esm/codec/contract-output-ref-codec.js +9 -0
- package/dist/_esm/codec/contract-output-ref-codec.js.map +1 -0
- package/dist/_esm/codec/either-codec.d.ts +9 -0
- package/dist/_esm/codec/either-codec.js +5 -0
- package/dist/_esm/codec/either-codec.js.map +1 -0
- package/dist/_esm/codec/hash.d.ts +3 -0
- package/dist/_esm/codec/hash.js +15 -0
- package/dist/_esm/codec/hash.js.map +1 -0
- package/dist/_esm/codec/index.d.ts +24 -0
- package/dist/_esm/codec/index.js +25 -0
- package/dist/_esm/codec/index.js.map +1 -0
- package/dist/_esm/codec/input-codec.d.ts +15 -0
- package/dist/_esm/codec/input-codec.js +33 -0
- package/dist/_esm/codec/input-codec.js.map +1 -0
- package/dist/_esm/codec/instr-codec.d.ts +857 -0
- package/dist/_esm/codec/instr-codec.js +1138 -0
- package/dist/_esm/codec/instr-codec.js.map +1 -0
- package/dist/_esm/codec/int-as-4bytes-codec.d.ts +7 -0
- package/dist/_esm/codec/int-as-4bytes-codec.js +12 -0
- package/dist/_esm/codec/int-as-4bytes-codec.js.map +1 -0
- package/dist/_esm/codec/lockup-script-codec.d.ts +42 -0
- package/dist/_esm/codec/lockup-script-codec.js +28 -0
- package/dist/_esm/codec/lockup-script-codec.js.map +1 -0
- package/dist/_esm/codec/method-codec.d.ts +20 -0
- package/dist/_esm/codec/method-codec.js +54 -0
- package/dist/_esm/codec/method-codec.js.map +1 -0
- package/dist/_esm/codec/option-codec.d.ts +9 -0
- package/dist/_esm/codec/option-codec.js +16 -0
- package/dist/_esm/codec/option-codec.js.map +1 -0
- package/dist/_esm/codec/output-codec.d.ts +7 -0
- package/dist/_esm/codec/output-codec.js +7 -0
- package/dist/_esm/codec/output-codec.js.map +1 -0
- package/dist/_esm/codec/public-key-like-codec.d.ts +17 -0
- package/dist/_esm/codec/public-key-like-codec.js +11 -0
- package/dist/_esm/codec/public-key-like-codec.js.map +1 -0
- package/dist/_esm/codec/reader.d.ts +10 -0
- package/dist/_esm/codec/reader.js +38 -0
- package/dist/_esm/codec/reader.js.map +1 -0
- package/dist/_esm/codec/script-codec.d.ts +12 -0
- package/dist/_esm/codec/script-codec.js +14 -0
- package/dist/_esm/codec/script-codec.js.map +1 -0
- package/dist/_esm/codec/signature-codec.d.ts +5 -0
- package/dist/_esm/codec/signature-codec.js +5 -0
- package/dist/_esm/codec/signature-codec.js.map +1 -0
- package/dist/_esm/codec/timestamp-codec.d.ts +8 -0
- package/dist/_esm/codec/timestamp-codec.js +19 -0
- package/dist/_esm/codec/timestamp-codec.js.map +1 -0
- package/dist/_esm/codec/token-codec.d.ts +8 -0
- package/dist/_esm/codec/token-codec.js +9 -0
- package/dist/_esm/codec/token-codec.js.map +1 -0
- package/dist/_esm/codec/transaction-codec.d.ts +21 -0
- package/dist/_esm/codec/transaction-codec.js +82 -0
- package/dist/_esm/codec/transaction-codec.js.map +1 -0
- package/dist/_esm/codec/unlock-script-codec.d.ts +44 -0
- package/dist/_esm/codec/unlock-script-codec.js +49 -0
- package/dist/_esm/codec/unlock-script-codec.js.map +1 -0
- package/dist/_esm/codec/unsigned-tx-codec.d.ts +23 -0
- package/dist/_esm/codec/unsigned-tx-codec.js +57 -0
- package/dist/_esm/codec/unsigned-tx-codec.js.map +1 -0
- package/dist/_esm/codec/val.d.ts +27 -0
- package/dist/_esm/codec/val.js +14 -0
- package/dist/_esm/codec/val.js.map +1 -0
- package/dist/_esm/constants.d.ts +14 -0
- package/dist/_esm/constants.js +15 -0
- package/dist/_esm/constants.js.map +1 -0
- package/dist/_esm/contract/contract.d.ts +328 -0
- package/dist/_esm/contract/contract.js +1449 -0
- package/dist/_esm/contract/contract.js.map +1 -0
- package/dist/_esm/contract/dapp-tx-builder.d.ts +26 -0
- package/dist/_esm/contract/dapp-tx-builder.js +166 -0
- package/dist/_esm/contract/dapp-tx-builder.js.map +1 -0
- package/dist/_esm/contract/deployment.d.ts +21 -0
- package/dist/_esm/contract/deployment.js +2 -0
- package/dist/_esm/contract/deployment.js.map +1 -0
- package/dist/_esm/contract/events.d.ts +17 -0
- package/dist/_esm/contract/events.js +59 -0
- package/dist/_esm/contract/events.js.map +1 -0
- package/dist/_esm/contract/index.d.ts +6 -0
- package/dist/_esm/contract/index.js +7 -0
- package/dist/_esm/contract/index.js.map +1 -0
- package/dist/_esm/contract/ralph.d.ts +73 -0
- package/dist/_esm/contract/ralph.js +372 -0
- package/dist/_esm/contract/ralph.js.map +1 -0
- package/dist/_esm/contract/script-simulator.d.ts +15 -0
- package/dist/_esm/contract/script-simulator.js +712 -0
- package/dist/_esm/contract/script-simulator.js.map +1 -0
- package/dist/_esm/debug.d.ts +6 -0
- package/dist/_esm/debug.js +21 -0
- package/dist/_esm/debug.js.map +1 -0
- package/dist/_esm/error.d.ts +4 -0
- package/dist/_esm/error.js +16 -0
- package/dist/_esm/error.js.map +1 -0
- package/dist/_esm/exchange/exchange.d.ts +21 -0
- package/dist/_esm/exchange/exchange.js +137 -0
- package/dist/_esm/exchange/exchange.js.map +1 -0
- package/dist/_esm/exchange/index.d.ts +2 -0
- package/dist/_esm/exchange/index.js +2 -0
- package/dist/_esm/exchange/index.js.map +1 -0
- package/dist/_esm/global.d.ts +10 -0
- package/dist/_esm/global.js +49 -0
- package/dist/_esm/global.js.map +1 -0
- package/dist/_esm/index.d.ts +15 -0
- package/dist/_esm/index.js +16 -0
- package/dist/_esm/index.js.map +1 -0
- package/dist/_esm/package.json +1 -0
- package/dist/_esm/signer/index.d.ts +3 -0
- package/dist/_esm/signer/index.js +4 -0
- package/dist/_esm/signer/index.js.map +1 -0
- package/dist/_esm/signer/signer.d.ts +63 -0
- package/dist/_esm/signer/signer.js +279 -0
- package/dist/_esm/signer/signer.js.map +1 -0
- package/dist/_esm/signer/tx-builder.d.ts +22 -0
- package/dist/_esm/signer/tx-builder.js +270 -0
- package/dist/_esm/signer/tx-builder.js.map +1 -0
- package/dist/_esm/signer/types.d.ts +167 -0
- package/dist/_esm/signer/types.js +27 -0
- package/dist/_esm/signer/types.js.map +1 -0
- package/dist/_esm/token/index.d.ts +1 -0
- package/dist/_esm/token/index.js +2 -0
- package/dist/_esm/token/index.js.map +1 -0
- package/dist/_esm/token/nft.d.ts +8 -0
- package/dist/_esm/token/nft.js +95 -0
- package/dist/_esm/token/nft.js.map +1 -0
- package/dist/_esm/transaction/index.d.ts +3 -0
- package/dist/_esm/transaction/index.js +4 -0
- package/dist/_esm/transaction/index.js.map +1 -0
- package/dist/_esm/transaction/sign-verify.d.ts +3 -0
- package/dist/_esm/transaction/sign-verify.js +8 -0
- package/dist/_esm/transaction/sign-verify.js.map +1 -0
- package/dist/_esm/transaction/status.d.ts +12 -0
- package/dist/_esm/transaction/status.js +33 -0
- package/dist/_esm/transaction/status.js.map +1 -0
- package/dist/_esm/transaction/utils.d.ts +4 -0
- package/dist/_esm/transaction/utils.js +35 -0
- package/dist/_esm/transaction/utils.js.map +1 -0
- package/dist/_esm/utils/bs58.d.ts +5 -0
- package/dist/_esm/utils/bs58.js +25 -0
- package/dist/_esm/utils/bs58.js.map +1 -0
- package/dist/_esm/utils/djb2.d.ts +1 -0
- package/dist/_esm/utils/djb2.js +8 -0
- package/dist/_esm/utils/djb2.js.map +1 -0
- package/dist/_esm/utils/index.d.ts +7 -0
- package/dist/_esm/utils/index.js +8 -0
- package/dist/_esm/utils/index.js.map +1 -0
- package/dist/_esm/utils/number.d.ts +17 -0
- package/dist/_esm/utils/number.fixture.d.ts +12 -0
- package/dist/_esm/utils/number.fixture.js +170 -0
- package/dist/_esm/utils/number.fixture.js.map +1 -0
- package/dist/_esm/utils/number.js +104 -0
- package/dist/_esm/utils/number.js.map +1 -0
- package/dist/_esm/utils/sign.d.ts +3 -0
- package/dist/_esm/utils/sign.js +52 -0
- package/dist/_esm/utils/sign.js.map +1 -0
- package/dist/_esm/utils/subscription.d.ts +22 -0
- package/dist/_esm/utils/subscription.js +31 -0
- package/dist/_esm/utils/subscription.js.map +1 -0
- package/dist/_esm/utils/utils.d.ts +40 -0
- package/dist/_esm/utils/utils.js +116 -0
- package/dist/_esm/utils/utils.js.map +1 -0
- package/dist/_esm/utils/webcrypto.d.ts +4 -0
- package/dist/_esm/utils/webcrypto.js +14 -0
- package/dist/_esm/utils/webcrypto.js.map +1 -0
- package/package.json +34 -40
- package/src/address/address.ts +12 -17
- package/src/api/api-alephium.ts +4 -5
- package/src/api/api-explorer.ts +4 -5
- package/src/api/types.ts +3 -2
- package/src/api/utils.ts +13 -1
- package/src/block/index.ts +2 -1
- package/src/codec/hash.ts +2 -2
- package/src/contract/contract.ts +54 -15
- package/src/exchange/index.ts +1 -3
- package/src/index.ts +0 -4
- package/src/signer/signer.ts +17 -11
- package/src/token/nft.ts +0 -1
- package/src/utils/sign.ts +19 -20
- package/src/utils/utils.ts +9 -20
- package/src/utils/webcrypto.ts +4 -10
- package/tsconfig.build.json +9 -0
- package/dist/alephium-web3.min.js +0 -3
- package/dist/alephium-web3.min.js.LICENSE.txt +0 -12
- package/dist/alephium-web3.min.js.map +0 -1
- package/dist/scripts/check-versions.d.ts +0 -1
- package/dist/scripts/check-versions.js +0 -39
- package/dist/scripts/header.d.ts +0 -0
- package/dist/scripts/header.js +0 -18
- package/dist/src/api/api-alephium.d.ts +0 -2433
- package/dist/src/api/api-explorer.d.ts +0 -1472
- package/dist/src/block/index.d.ts +0 -1
- package/dist/src/block/index.js +0 -22
- package/dist/src/codec/contract-output-ref-codec.js +0 -28
- package/dist/src/codec/either-codec.js +0 -25
- package/dist/src/codec/hash.js +0 -40
- package/dist/src/codec/int-as-4bytes-codec.js +0 -32
- package/dist/src/codec/option-codec.js +0 -36
- package/dist/src/codec/output-codec.js +0 -26
- package/dist/src/codec/public-key-like-codec.js +0 -30
- package/dist/src/codec/script-codec.js +0 -34
- package/dist/src/codec/signature-codec.js +0 -24
- package/dist/src/codec/token-codec.js +0 -28
- package/dist/src/contract/deployment.js +0 -19
- package/dist/src/debug.js +0 -46
- package/dist/src/exchange/index.d.ts +0 -1
- package/dist/src/utils/djb2.js +0 -27
- package/dist/src/utils/sign.js +0 -96
- package/dist/src/utils/webcrypto.js +0 -41
- package/webpack.config.js +0 -56
- /package/dist/{src → _cjs}/address/address.d.ts +0 -0
- /package/dist/{src → _cjs}/address/index.d.ts +0 -0
- /package/dist/{src → _cjs}/api/explorer-provider.d.ts +0 -0
- /package/dist/{src → _cjs}/api/index.d.ts +0 -0
- /package/dist/{src → _cjs}/api/types.d.ts +0 -0
- /package/dist/{src → _cjs}/block/block.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/array-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/asset-output-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/bigint-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/checksum-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/compact-int-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/contract-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/contract-output-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/contract-output-ref-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/either-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/index.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/input-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/instr-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/int-as-4bytes-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/method-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/option-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/output-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/public-key-like-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/reader.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/script-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/timestamp-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/token-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/transaction-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/unsigned-tx-codec.d.ts +0 -0
- /package/dist/{src → _cjs}/codec/val.d.ts +0 -0
- /package/dist/{src → _cjs}/contract/contract.d.ts +0 -0
- /package/dist/{src → _cjs}/contract/dapp-tx-builder.d.ts +0 -0
- /package/dist/{src → _cjs}/contract/deployment.d.ts +0 -0
- /package/dist/{src → _cjs}/contract/events.d.ts +0 -0
- /package/dist/{src → _cjs}/contract/index.d.ts +0 -0
- /package/dist/{src → _cjs}/contract/ralph.d.ts +0 -0
- /package/dist/{src → _cjs}/debug.d.ts +0 -0
- /package/dist/{src → _cjs}/error.d.ts +0 -0
- /package/dist/{src → _cjs}/exchange/exchange.d.ts +0 -0
- /package/dist/{src → _cjs}/global.d.ts +0 -0
- /package/dist/{src → _cjs}/index.d.ts +0 -0
- /package/dist/{src → _cjs}/signer/index.d.ts +0 -0
- /package/dist/{src → _cjs}/signer/signer.d.ts +0 -0
- /package/dist/{src → _cjs}/signer/tx-builder.d.ts +0 -0
- /package/dist/{src → _cjs}/signer/types.d.ts +0 -0
- /package/dist/{src → _cjs}/token/index.d.ts +0 -0
- /package/dist/{src → _cjs}/transaction/index.d.ts +0 -0
- /package/dist/{src → _cjs}/transaction/sign-verify.d.ts +0 -0
- /package/dist/{src → _cjs}/transaction/status.d.ts +0 -0
- /package/dist/{src → _cjs}/transaction/utils.d.ts +0 -0
- /package/dist/{src → _cjs}/utils/djb2.d.ts +0 -0
- /package/dist/{src → _cjs}/utils/index.d.ts +0 -0
- /package/dist/{src → _cjs}/utils/number.fixture.d.ts +0 -0
- /package/dist/{src → _cjs}/utils/sign.d.ts +0 -0
- /package/dist/{src → _cjs}/utils/subscription.d.ts +0 -0
package/package.json
CHANGED
|
@@ -1,31 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alephium/web3",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-test.0",
|
|
4
4
|
"description": "A JS/TS library to interact with the Alephium platform",
|
|
5
5
|
"license": "GPL",
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
6
|
+
"type": "commonjs",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"main": "dist/_cjs/index.js",
|
|
9
|
+
"module": "dist/_esm/index.js",
|
|
10
|
+
"types": "dist/_cjs/index.d.ts",
|
|
9
11
|
"exports": {
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"typesVersions": {
|
|
20
|
-
"*": {
|
|
21
|
-
"test": [
|
|
22
|
-
"dist/src/test/"
|
|
23
|
-
]
|
|
12
|
+
".": {
|
|
13
|
+
"import": {
|
|
14
|
+
"types": "./dist/_esm/index.d.ts",
|
|
15
|
+
"default": "./dist/_esm/index.js"
|
|
16
|
+
},
|
|
17
|
+
"require": {
|
|
18
|
+
"types": "./dist/_cjs/index.d.ts",
|
|
19
|
+
"default": "./dist/_cjs/index.js"
|
|
20
|
+
}
|
|
24
21
|
}
|
|
25
22
|
},
|
|
26
23
|
"repository": {
|
|
27
24
|
"type": "git",
|
|
28
|
-
"url": "git
|
|
25
|
+
"url": "git+https://github.com/alephium/alephium-web3.git"
|
|
29
26
|
},
|
|
30
27
|
"homepage": "https://github.com/alephium/alephium-web3",
|
|
31
28
|
"bugs": {
|
|
@@ -36,38 +33,31 @@
|
|
|
36
33
|
"alephium_version": "4.2.5",
|
|
37
34
|
"explorer_backend_version": "3.3.2"
|
|
38
35
|
},
|
|
39
|
-
"type": "commonjs",
|
|
40
36
|
"dependencies": {
|
|
37
|
+
"@noble/curves": "1.6.0",
|
|
38
|
+
"@noble/hashes": "1.6.1",
|
|
41
39
|
"@noble/secp256k1": "1.7.1",
|
|
42
40
|
"base-x": "4.0.0",
|
|
43
41
|
"bignumber.js": "^9.1.1",
|
|
44
|
-
"
|
|
45
|
-
"bn.js": "5.2.1",
|
|
46
|
-
"cross-fetch": "^3.1.5",
|
|
47
|
-
"crypto-browserify": "^3.12.0",
|
|
48
|
-
"elliptic": "6.6.1",
|
|
49
|
-
"eventemitter3": "^4.0.7",
|
|
50
|
-
"path-browserify": "^1.0.1",
|
|
51
|
-
"stream-browserify": "^3.0.0"
|
|
42
|
+
"eventemitter3": "^4.0.7"
|
|
52
43
|
},
|
|
53
44
|
"devDependencies": {
|
|
45
|
+
"@arethetypeswrong/cli": "^0.18.2",
|
|
54
46
|
"@babel/eslint-parser": "^7.21.3",
|
|
55
|
-
"@
|
|
47
|
+
"@size-limit/esbuild": "^11.0.0",
|
|
48
|
+
"@size-limit/file": "^11.0.0",
|
|
56
49
|
"@types/find-up": "^2.1.1",
|
|
57
50
|
"@types/fs-extra": "^9.0.13",
|
|
58
51
|
"@types/jest": "^27.5.2",
|
|
59
52
|
"@types/mock-fs": "^4.13.1",
|
|
60
|
-
"@types/node": "^
|
|
53
|
+
"@types/node": "^20.0.0",
|
|
61
54
|
"@types/rewire": "^2.5.28",
|
|
62
55
|
"@typescript-eslint/eslint-plugin": "^5.57.0",
|
|
63
56
|
"@typescript-eslint/parser": "^5.57.0",
|
|
64
|
-
"clean-webpack-plugin": "4.0.0",
|
|
65
57
|
"eslint": "^8.37.0",
|
|
66
58
|
"eslint-config-prettier": "^8.8.0",
|
|
67
|
-
"eslint-plugin-header": "^3.1.1",
|
|
68
59
|
"eslint-plugin-prettier": "^4.2.1",
|
|
69
60
|
"eslint-plugin-security": "1.6.0",
|
|
70
|
-
"html-webpack-plugin": "5.5.0",
|
|
71
61
|
"jest": "^28.1.3",
|
|
72
62
|
"jest-localstorage-mock": "^2.4.26",
|
|
73
63
|
"jest-websocket-mock": "^2.4.0",
|
|
@@ -75,27 +65,31 @@
|
|
|
75
65
|
"mock-socket": "^9.2.1",
|
|
76
66
|
"prettier": "^2.8.7",
|
|
77
67
|
"process": "^0.11.10",
|
|
68
|
+
"publint": "^0.3.18",
|
|
78
69
|
"rewire": "^6.0.0",
|
|
79
70
|
"shelljs": "^0.8.5",
|
|
71
|
+
"size-limit": "^11.0.0",
|
|
80
72
|
"swagger-typescript-api": "12.0.3",
|
|
81
|
-
"terser-webpack-plugin": "^5.3.7",
|
|
82
73
|
"ts-jest": "^28.0.8",
|
|
83
74
|
"ts-node": "^10.9.1",
|
|
84
75
|
"tslib": "^2.5.0",
|
|
85
|
-
"typescript": "^
|
|
86
|
-
"webpack": "^5.94.0",
|
|
87
|
-
"webpack-cli": "^4.10.0"
|
|
76
|
+
"typescript": "^5.9.3"
|
|
88
77
|
},
|
|
89
78
|
"engines": {
|
|
90
|
-
"node": ">=
|
|
79
|
+
"node": ">=20.0.0",
|
|
91
80
|
"npm": ">=7.0.0"
|
|
92
81
|
},
|
|
93
82
|
"scripts": {
|
|
94
|
-
"
|
|
83
|
+
"clean": "rm -rf node_modules dist",
|
|
84
|
+
"build": "rm -rf dist && pnpm build:cjs && pnpm build:esm",
|
|
85
|
+
"build:cjs": "tsc --project tsconfig.build.json --module commonjs --moduleResolution node --outDir dist/_cjs --declaration --verbatimModuleSyntax false && printf '{\"type\":\"commonjs\"}' > dist/_cjs/package.json",
|
|
86
|
+
"build:esm": "tsc --project tsconfig.build.json --outDir dist/_esm --declaration && printf '{\"type\":\"module\",\"sideEffects\":false}' > dist/_esm/package.json",
|
|
87
|
+
"check": "publint && attw --pack --ignore-rules internal-resolution-error",
|
|
95
88
|
"test": "jest -i --config ./jest-config.json",
|
|
96
89
|
"update-schemas": "npm run update-schema:alephium && npm run update-schema:explorer",
|
|
97
90
|
"update-schema:alephium": "npx swagger-typescript-api --disable-throw-on-error -t ./configs -o ./src/api -n api-alephium.ts -p https://raw.githubusercontent.com/alephium/alephium/v${npm_package_config_alephium_version}/api/src/main/resources/openapi.json",
|
|
98
91
|
"update-schema:explorer": "npx swagger-typescript-api --disable-throw-on-error -t ./configs -o ./src/api -n api-explorer.ts -p https://raw.githubusercontent.com/alephium/explorer-backend/v${npm_package_config_explorer_backend_version}/app/src/main/resources/explorer-backend-openapi.json",
|
|
99
|
-
"check-versions": "node scripts/check-versions.js ${npm_package_config_alephium_version} ${npm_package_config_explorer_backend_version}"
|
|
92
|
+
"check-versions": "node scripts/check-versions.js ${npm_package_config_alephium_version} ${npm_package_config_explorer_backend_version}",
|
|
93
|
+
"size": "npx size-limit"
|
|
100
94
|
}
|
|
101
95
|
}
|
package/src/address/address.ts
CHANGED
|
@@ -16,10 +16,11 @@ You should have received a copy of the GNU Lesser General Public License
|
|
|
16
16
|
along with the library. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
import
|
|
20
|
-
import
|
|
19
|
+
import * as secp from '@noble/secp256k1'
|
|
20
|
+
import { p256 } from '@noble/curves/p256'
|
|
21
|
+
import { ed25519 } from '@noble/curves/ed25519'
|
|
21
22
|
import { TOTAL_NUMBER_OF_GROUPS } from '../constants'
|
|
22
|
-
import
|
|
23
|
+
import { blake2b } from '@noble/hashes/blake2b'
|
|
23
24
|
import bs58, { base58ToBytes } from '../utils/bs58'
|
|
24
25
|
import { binToHex, concatBytes, hexToBinUnsafe, isHexString, xorByte } from '../utils'
|
|
25
26
|
import { KeyType } from '../signer'
|
|
@@ -31,9 +32,6 @@ import { TraceableError } from '../error'
|
|
|
31
32
|
import { byteCodec } from '../codec/codec'
|
|
32
33
|
import { PublicKeyLike, safePublicKeyLikeCodec } from '../codec/public-key-like-codec'
|
|
33
34
|
|
|
34
|
-
const secp256k1 = new EC('secp256k1')
|
|
35
|
-
const secp256r1 = new EC('p256')
|
|
36
|
-
const ed25519 = new EdDSA('ed25519')
|
|
37
35
|
const PublicKeyHashSize = 32
|
|
38
36
|
|
|
39
37
|
export enum AddressType {
|
|
@@ -220,14 +218,14 @@ export function publicKeyFromPrivateKey(privateKey: string, _keyType?: KeyType):
|
|
|
220
218
|
switch (keyType) {
|
|
221
219
|
case 'default':
|
|
222
220
|
case 'gl-secp256k1':
|
|
223
|
-
return
|
|
221
|
+
return binToHex(secp.getPublicKey(privateKey, true))
|
|
224
222
|
case 'gl-secp256r1':
|
|
225
223
|
case 'gl-webauthn':
|
|
226
|
-
return
|
|
224
|
+
return binToHex(p256.getPublicKey(hexToBinUnsafe(privateKey), true))
|
|
227
225
|
case 'gl-ed25519':
|
|
228
|
-
return ed25519.
|
|
226
|
+
return binToHex(ed25519.getPublicKey(hexToBinUnsafe(privateKey)))
|
|
229
227
|
case 'bip340-schnorr':
|
|
230
|
-
return
|
|
228
|
+
return secp.Point.fromPrivateKey(privateKey).toHex(true).slice(2)
|
|
231
229
|
}
|
|
232
230
|
}
|
|
233
231
|
|
|
@@ -254,7 +252,7 @@ export function addressFromPublicKey(publicKey: string, _keyType?: KeyType): str
|
|
|
254
252
|
|
|
255
253
|
switch (keyType) {
|
|
256
254
|
case 'default': {
|
|
257
|
-
const hash =
|
|
255
|
+
const hash = blake2b(hexToBinUnsafe(publicKey), { dkLen: 32 })
|
|
258
256
|
const bytes = new Uint8Array([AddressType.P2PKH, ...hash])
|
|
259
257
|
return bs58.encode(bytes)
|
|
260
258
|
}
|
|
@@ -268,7 +266,7 @@ export function addressFromPublicKey(publicKey: string, _keyType?: KeyType): str
|
|
|
268
266
|
}
|
|
269
267
|
|
|
270
268
|
export function addressFromScript(script: Uint8Array): string {
|
|
271
|
-
const scriptHash =
|
|
269
|
+
const scriptHash = blake2b(script, { dkLen: 32 })
|
|
272
270
|
return bs58.encode(new Uint8Array([AddressType.P2SH, ...scriptHash]))
|
|
273
271
|
}
|
|
274
272
|
|
|
@@ -286,7 +284,7 @@ export function addressFromTokenId(tokenId: string): string {
|
|
|
286
284
|
export function contractIdFromTx(txId: string, outputIndex: number): string {
|
|
287
285
|
const txIdBin = hexToBinUnsafe(txId)
|
|
288
286
|
const data = new Uint8Array([...txIdBin, outputIndex])
|
|
289
|
-
const hash =
|
|
287
|
+
const hash = blake2b(data, { dkLen: 32 })
|
|
290
288
|
return binToHex(hash)
|
|
291
289
|
}
|
|
292
290
|
|
|
@@ -301,10 +299,7 @@ export function subContractId(parentContractId: string, pathInHex: string, group
|
|
|
301
299
|
throw new Error(`Invalid path: ${pathInHex}, expected hex string`)
|
|
302
300
|
}
|
|
303
301
|
const data = concatBytes([hexToBinUnsafe(parentContractId), hexToBinUnsafe(pathInHex)])
|
|
304
|
-
const bytes = new Uint8Array([
|
|
305
|
-
...blake.blake2b(blake.blake2b(data, undefined, 32), undefined, 32).slice(0, -1),
|
|
306
|
-
group
|
|
307
|
-
])
|
|
302
|
+
const bytes = new Uint8Array([...blake2b(blake2b(data, { dkLen: 32 }), { dkLen: 32 }).slice(0, -1), group])
|
|
308
303
|
return binToHex(bytes)
|
|
309
304
|
}
|
|
310
305
|
|
package/src/api/api-alephium.ts
CHANGED
|
@@ -1566,8 +1566,7 @@ export interface WalletUnlock {
|
|
|
1566
1566
|
mnemonicPassphrase?: string
|
|
1567
1567
|
}
|
|
1568
1568
|
|
|
1569
|
-
import '
|
|
1570
|
-
import { convertHttpResponse } from './utils'
|
|
1569
|
+
import { convertHttpResponse, stringify } from './utils'
|
|
1571
1570
|
|
|
1572
1571
|
export type QueryParamsType = Record<string | number, any>
|
|
1573
1572
|
export type ResponseFormat = keyof Omit<Body, 'body' | 'bodyUsed'>
|
|
@@ -1665,8 +1664,8 @@ export class HttpClient<SecurityDataType = unknown> {
|
|
|
1665
1664
|
|
|
1666
1665
|
private contentFormatters: Record<ContentType, (input: any) => any> = {
|
|
1667
1666
|
[ContentType.Json]: (input: any) =>
|
|
1668
|
-
input !== null && (typeof input === 'object' || typeof input === 'string') ?
|
|
1669
|
-
[ContentType.Text]: (input: any) => (input !== null && typeof input !== 'string' ?
|
|
1667
|
+
input !== null && (typeof input === 'object' || typeof input === 'string') ? stringify(input) : input,
|
|
1668
|
+
[ContentType.Text]: (input: any) => (input !== null && typeof input !== 'string' ? stringify(input) : input),
|
|
1670
1669
|
[ContentType.FormData]: (input: any) =>
|
|
1671
1670
|
Object.keys(input || {}).reduce((formData, key) => {
|
|
1672
1671
|
const property = input[key]
|
|
@@ -1675,7 +1674,7 @@ export class HttpClient<SecurityDataType = unknown> {
|
|
|
1675
1674
|
property instanceof Blob
|
|
1676
1675
|
? property
|
|
1677
1676
|
: typeof property === 'object' && property !== null
|
|
1678
|
-
?
|
|
1677
|
+
? stringify(property)
|
|
1679
1678
|
: `${property}`
|
|
1680
1679
|
)
|
|
1681
1680
|
return formData
|
package/src/api/api-explorer.ts
CHANGED
|
@@ -637,8 +637,7 @@ export enum Currencies {
|
|
|
637
637
|
Cny = 'cny'
|
|
638
638
|
}
|
|
639
639
|
|
|
640
|
-
import '
|
|
641
|
-
import { convertHttpResponse } from './utils'
|
|
640
|
+
import { convertHttpResponse, stringify } from './utils'
|
|
642
641
|
|
|
643
642
|
export type QueryParamsType = Record<string | number, any>
|
|
644
643
|
export type ResponseFormat = keyof Omit<Body, 'body' | 'bodyUsed'>
|
|
@@ -736,8 +735,8 @@ export class HttpClient<SecurityDataType = unknown> {
|
|
|
736
735
|
|
|
737
736
|
private contentFormatters: Record<ContentType, (input: any) => any> = {
|
|
738
737
|
[ContentType.Json]: (input: any) =>
|
|
739
|
-
input !== null && (typeof input === 'object' || typeof input === 'string') ?
|
|
740
|
-
[ContentType.Text]: (input: any) => (input !== null && typeof input !== 'string' ?
|
|
738
|
+
input !== null && (typeof input === 'object' || typeof input === 'string') ? stringify(input) : input,
|
|
739
|
+
[ContentType.Text]: (input: any) => (input !== null && typeof input !== 'string' ? stringify(input) : input),
|
|
741
740
|
[ContentType.FormData]: (input: any) =>
|
|
742
741
|
Object.keys(input || {}).reduce((formData, key) => {
|
|
743
742
|
const property = input[key]
|
|
@@ -746,7 +745,7 @@ export class HttpClient<SecurityDataType = unknown> {
|
|
|
746
745
|
property instanceof Blob
|
|
747
746
|
? property
|
|
748
747
|
: typeof property === 'object' && property !== null
|
|
749
|
-
?
|
|
748
|
+
? stringify(property)
|
|
750
749
|
: `${property}`
|
|
751
750
|
)
|
|
752
751
|
return formData
|
package/src/api/types.ts
CHANGED
|
@@ -22,6 +22,7 @@ import { isDebugModeEnabled } from '../debug'
|
|
|
22
22
|
import { TraceableError } from '../error'
|
|
23
23
|
import { assertType, base58ToBytes, binToHex, bs58, Eq, isBase58, isHexString } from '../utils'
|
|
24
24
|
import * as node from './api-alephium'
|
|
25
|
+
import { stringify } from './utils'
|
|
25
26
|
|
|
26
27
|
export type Number256 = bigint | string
|
|
27
28
|
export type Val = Number256 | boolean | string | Val[] | ValObject | Map<Val, Val>
|
|
@@ -209,12 +210,12 @@ async function call(args: ApiRequestArguments, handler: ApiRequestHandler): Prom
|
|
|
209
210
|
const debugModeEnabled = isDebugModeEnabled()
|
|
210
211
|
const { path, method, params } = args
|
|
211
212
|
if (debugModeEnabled) {
|
|
212
|
-
console.log(`[REQUEST] ${path} ${method} ${
|
|
213
|
+
console.log(`[REQUEST] ${path} ${method} ${stringify(params)}`)
|
|
213
214
|
}
|
|
214
215
|
try {
|
|
215
216
|
const response = await handler(args)
|
|
216
217
|
if (debugModeEnabled) {
|
|
217
|
-
console.log(`[RESPONSE] ${path} ${method} ${
|
|
218
|
+
console.log(`[RESPONSE] ${path} ${method} ${stringify(response)}`)
|
|
218
219
|
}
|
|
219
220
|
return response
|
|
220
221
|
} catch (error) {
|
package/src/api/utils.ts
CHANGED
|
@@ -16,7 +16,6 @@ You should have received a copy of the GNU Lesser General Public License
|
|
|
16
16
|
along with the library. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
import 'cross-fetch/polyfill'
|
|
20
19
|
import * as node from '../api/api-alephium'
|
|
21
20
|
|
|
22
21
|
export function convertHttpResponse<T>(response: { status: number; data: T; error?: { detail: string } }): T {
|
|
@@ -51,3 +50,16 @@ export function isBalanceEqual(b0: node.Balance, b1: node.Balance): boolean {
|
|
|
51
50
|
isTokenBalanceEqual(b0.lockedTokenBalances, b1.lockedTokenBalances)
|
|
52
51
|
)
|
|
53
52
|
}
|
|
53
|
+
|
|
54
|
+
// Drop-in replacement for JSON.stringify that handles BigInt values
|
|
55
|
+
// by converting them to strings. This avoids the need for a global
|
|
56
|
+
// BigInt.prototype.toJSON monkey-patch, enabling "sideEffects": false.
|
|
57
|
+
export const stringify: typeof JSON.stringify = (value: any, replacer?: any, space?: any) =>
|
|
58
|
+
JSON.stringify(
|
|
59
|
+
value,
|
|
60
|
+
(key: string, value_: any) => {
|
|
61
|
+
const value = typeof value_ === 'bigint' ? value_.toString() : value_
|
|
62
|
+
return typeof replacer === 'function' ? replacer(key, value) : value
|
|
63
|
+
},
|
|
64
|
+
space
|
|
65
|
+
)
|
package/src/block/index.ts
CHANGED
|
@@ -16,4 +16,5 @@ You should have received a copy of the GNU Lesser General Public License
|
|
|
16
16
|
along with the library. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
export { ReorgCallback, BlockSubscribeOptions
|
|
19
|
+
export type { ReorgCallback, BlockSubscribeOptions } from './block'
|
|
20
|
+
export { BlockSubscription } from './block'
|
package/src/codec/hash.ts
CHANGED
|
@@ -15,10 +15,10 @@ GNU Lesser General Public License for more details.
|
|
|
15
15
|
You should have received a copy of the GNU Lesser General Public License
|
|
16
16
|
along with the library. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import
|
|
18
|
+
import { blake2b } from '@noble/hashes/blake2b'
|
|
19
19
|
|
|
20
20
|
export function blakeHash(raw: Uint8Array) {
|
|
21
|
-
return
|
|
21
|
+
return blake2b(raw, { dkLen: 32 })
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export function djbIntHash(bytes: Uint8Array): number {
|
package/src/contract/contract.ts
CHANGED
|
@@ -16,7 +16,6 @@ You should have received a copy of the GNU Lesser General Public License
|
|
|
16
16
|
along with the library. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
import { promises as fsPromises } from 'fs'
|
|
20
19
|
import {
|
|
21
20
|
fromApiNumber256,
|
|
22
21
|
toApiNumber256,
|
|
@@ -34,7 +33,8 @@ import {
|
|
|
34
33
|
decodeArrayType,
|
|
35
34
|
fromApiPrimitiveVal,
|
|
36
35
|
tryGetCallResult,
|
|
37
|
-
decodeTupleType
|
|
36
|
+
decodeTupleType,
|
|
37
|
+
stringify
|
|
38
38
|
} from '../api'
|
|
39
39
|
import {
|
|
40
40
|
SignDeployContractTxParams,
|
|
@@ -59,11 +59,19 @@ import {
|
|
|
59
59
|
isHexString,
|
|
60
60
|
hexToString
|
|
61
61
|
} from '../utils'
|
|
62
|
-
import {
|
|
62
|
+
import {
|
|
63
|
+
contractIdFromAddress,
|
|
64
|
+
groupOfAddress,
|
|
65
|
+
addressFromContractId,
|
|
66
|
+
subContractId,
|
|
67
|
+
isGrouplessAddress,
|
|
68
|
+
isValidAddress,
|
|
69
|
+
addressWithoutExplicitGroupIndex
|
|
70
|
+
} from '../address'
|
|
63
71
|
import { getCurrentNodeProvider } from '../global'
|
|
64
72
|
import { EventSubscribeOptions, EventSubscription, subscribeToEvents } from './events'
|
|
65
73
|
import { MINIMAL_CONTRACT_DEPOSIT, ONE_ALPH, TOTAL_NUMBER_OF_GROUPS } from '../constants'
|
|
66
|
-
import
|
|
74
|
+
import { blake2b } from '@noble/hashes/blake2b'
|
|
67
75
|
import { isContractDebugMessageEnabled } from '../debug'
|
|
68
76
|
import {
|
|
69
77
|
contract,
|
|
@@ -271,7 +279,7 @@ export class Contract extends Artifact {
|
|
|
271
279
|
fieldLength: decodedDebugContract.fieldLength,
|
|
272
280
|
methods: methods
|
|
273
281
|
})
|
|
274
|
-
const codeHashForTesting =
|
|
282
|
+
const codeHashForTesting = blake2b(bytecodeForTesting, { dkLen: 32 })
|
|
275
283
|
this.bytecodeForTesting = binToHex(bytecodeForTesting)
|
|
276
284
|
this.codeHashForTesting = binToHex(codeHashForTesting)
|
|
277
285
|
return this.bytecodeForTesting
|
|
@@ -370,7 +378,8 @@ export class Contract extends Artifact {
|
|
|
370
378
|
codeHashDebug: string,
|
|
371
379
|
structs: Struct[] = []
|
|
372
380
|
): Promise<Contract> {
|
|
373
|
-
const
|
|
381
|
+
const fs = await import('fs')
|
|
382
|
+
const content = await fs.promises.readFile(path)
|
|
374
383
|
const artifact = JSON.parse(content.toString())
|
|
375
384
|
return Contract.fromJson(artifact, bytecodeDebugPatch, codeHashDebug, structs)
|
|
376
385
|
}
|
|
@@ -393,7 +402,7 @@ export class Contract extends Artifact {
|
|
|
393
402
|
if (this.stdInterfaceId !== undefined) {
|
|
394
403
|
object.stdInterfaceId = this.stdInterfaceId
|
|
395
404
|
}
|
|
396
|
-
return
|
|
405
|
+
return stringify(object, null, 2)
|
|
397
406
|
}
|
|
398
407
|
|
|
399
408
|
getInitialFieldsWithDefaultValues(): Fields {
|
|
@@ -771,7 +780,8 @@ export class Script extends Artifact {
|
|
|
771
780
|
}
|
|
772
781
|
|
|
773
782
|
static async fromArtifactFile(path: string, bytecodeDebugPatch: string, structs: Struct[] = []): Promise<Script> {
|
|
774
|
-
const
|
|
783
|
+
const fs = await import('fs')
|
|
784
|
+
const content = await fs.promises.readFile(path)
|
|
775
785
|
const artifact = JSON.parse(content.toString())
|
|
776
786
|
return this.fromJson(artifact, bytecodeDebugPatch, structs)
|
|
777
787
|
}
|
|
@@ -784,7 +794,7 @@ export class Script extends Artifact {
|
|
|
784
794
|
fieldsSig: this.fieldsSig,
|
|
785
795
|
functions: this.functions
|
|
786
796
|
}
|
|
787
|
-
return
|
|
797
|
+
return stringify(object, null, 2)
|
|
788
798
|
}
|
|
789
799
|
|
|
790
800
|
async txParamsForExecution<P extends Fields>(params: ExecuteScriptParams<P>): Promise<SignExecuteScriptTxParams> {
|
|
@@ -1079,7 +1089,7 @@ export interface DeployContractParams<P extends Fields = Fields> {
|
|
|
1079
1089
|
}
|
|
1080
1090
|
assertType<
|
|
1081
1091
|
Eq<
|
|
1082
|
-
Omit<DeployContractParams<
|
|
1092
|
+
Omit<DeployContractParams<Fields>, 'initialFields' | 'exposePrivateFunctions'>,
|
|
1083
1093
|
Omit<SignDeployContractTxParams, 'signerAddress' | 'signerKeyType' | 'bytecode'>
|
|
1084
1094
|
>
|
|
1085
1095
|
>
|
|
@@ -1410,7 +1420,7 @@ function genCodeForType(type: string, structs: Struct[]): { bytecode: string; co
|
|
|
1410
1420
|
methods: [loadImmFieldByIndex, loadMutFieldByIndex, storeMutFieldByIndex, destroy]
|
|
1411
1421
|
}
|
|
1412
1422
|
const bytecode = contract.contractCodec.encodeContract(c)
|
|
1413
|
-
const codeHash =
|
|
1423
|
+
const codeHash = blake2b(bytecode, { dkLen: 32 })
|
|
1414
1424
|
return { bytecode: binToHex(bytecode), codeHash: binToHex(codeHash) }
|
|
1415
1425
|
}
|
|
1416
1426
|
|
|
@@ -1607,7 +1617,7 @@ export async function getDebugMessagesFromTx(txId: HexString, provider?: NodePro
|
|
|
1607
1617
|
message: hexToString(e.fields[0].value as string)
|
|
1608
1618
|
}
|
|
1609
1619
|
} else {
|
|
1610
|
-
throw new Error(`Invalid debug log: ${
|
|
1620
|
+
throw new Error(`Invalid debug log: ${stringify(e.fields)}`)
|
|
1611
1621
|
}
|
|
1612
1622
|
})
|
|
1613
1623
|
} else {
|
|
@@ -1923,8 +1933,9 @@ export async function callMethod<I extends ContractInstance, F extends Fields, A
|
|
|
1923
1933
|
): Promise<CallContractResult<R>> {
|
|
1924
1934
|
const methodIndex = contract.contract.getMethodIndex(methodName)
|
|
1925
1935
|
const txId = params?.txId ?? randomTxId()
|
|
1936
|
+
const callArgs = getCallMethodArgs(params.args ?? {}, instance.groupIndex)
|
|
1926
1937
|
const callParams = contract.contract.toApiCallContract(
|
|
1927
|
-
{ ...params, txId: txId, args:
|
|
1938
|
+
{ ...params, txId: txId, args: callArgs },
|
|
1928
1939
|
instance.groupIndex,
|
|
1929
1940
|
instance.address,
|
|
1930
1941
|
methodIndex
|
|
@@ -1935,6 +1946,33 @@ export async function callMethod<I extends ContractInstance, F extends Fields, A
|
|
|
1935
1946
|
return callResult as CallContractResult<R>
|
|
1936
1947
|
}
|
|
1937
1948
|
|
|
1949
|
+
function tryGetCallMethodAddressArg(maybeAddress: string, groupIndex: number): Val {
|
|
1950
|
+
if (!isValidAddress(maybeAddress)) return maybeAddress
|
|
1951
|
+
if (isGrouplessAddress(maybeAddress)) {
|
|
1952
|
+
const rawAddress = addressWithoutExplicitGroupIndex(maybeAddress)
|
|
1953
|
+
return `${rawAddress}:${groupIndex}`
|
|
1954
|
+
}
|
|
1955
|
+
return maybeAddress
|
|
1956
|
+
}
|
|
1957
|
+
|
|
1958
|
+
function getCallMethodArgsFromVal(val: Val, groupIndex: number): Val {
|
|
1959
|
+
if (typeof val === 'string') {
|
|
1960
|
+
return tryGetCallMethodAddressArg(val, groupIndex)
|
|
1961
|
+
}
|
|
1962
|
+
if (Array.isArray(val)) {
|
|
1963
|
+
return val.map((v) => getCallMethodArgsFromVal(v, groupIndex))
|
|
1964
|
+
}
|
|
1965
|
+
return val
|
|
1966
|
+
}
|
|
1967
|
+
|
|
1968
|
+
function getCallMethodArgs<A extends Arguments>(args: A, groupIndex: number): A {
|
|
1969
|
+
const newArgs: Arguments = {}
|
|
1970
|
+
for (const [key, value] of Object.entries(args)) {
|
|
1971
|
+
newArgs[`${key}`] = getCallMethodArgsFromVal(value, groupIndex)
|
|
1972
|
+
}
|
|
1973
|
+
return newArgs as A
|
|
1974
|
+
}
|
|
1975
|
+
|
|
1938
1976
|
export async function signExecuteMethod<I extends ContractInstance, F extends Fields, A extends Arguments, R>(
|
|
1939
1977
|
contract: ContractFactory<I, F>,
|
|
1940
1978
|
instance: ContractInstance,
|
|
@@ -2199,8 +2237,9 @@ export async function multicallMethods<I extends ContractInstance, F extends Fie
|
|
|
2199
2237
|
const [methodName, params] = entry
|
|
2200
2238
|
const methodIndex = contract.contract.getMethodIndex(methodName)
|
|
2201
2239
|
const txId = params?.txId ?? randomTxId()
|
|
2240
|
+
const callArgs = getCallMethodArgs(params.args ?? {}, instance.groupIndex)
|
|
2202
2241
|
return contract.contract.toApiCallContract(
|
|
2203
|
-
{ ...params, txId: txId, args:
|
|
2242
|
+
{ ...params, txId: txId, args: callArgs },
|
|
2204
2243
|
instance.groupIndex,
|
|
2205
2244
|
instance.address,
|
|
2206
2245
|
methodIndex
|
|
@@ -2248,7 +2287,7 @@ export const getContractIdFromUnsignedTx = async (
|
|
|
2248
2287
|
const result = await nodeProvider.transactions.postTransactionsDecodeUnsignedTx({ unsignedTx })
|
|
2249
2288
|
const outputIndex = result.unsignedTx.fixedOutputs.length
|
|
2250
2289
|
const hex = result.unsignedTx.txId + outputIndex.toString(16).padStart(8, '0')
|
|
2251
|
-
const hashHex = binToHex(
|
|
2290
|
+
const hashHex = binToHex(blake2b(hexToBinUnsafe(hex), { dkLen: 32 }))
|
|
2252
2291
|
return hashHex.slice(0, 62) + result.fromGroup.toString(16).padStart(2, '0')
|
|
2253
2292
|
}
|
|
2254
2293
|
|
package/src/exchange/index.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -16,10 +16,6 @@ You should have received a copy of the GNU Lesser General Public License
|
|
|
16
16
|
along with the library. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
BigInt.prototype['toJSON'] = function () {
|
|
20
|
-
return this.toString()
|
|
21
|
-
}
|
|
22
|
-
|
|
23
19
|
export * from './api'
|
|
24
20
|
export * from './contract'
|
|
25
21
|
export * from './signer'
|
package/src/signer/signer.ts
CHANGED
|
@@ -16,11 +16,18 @@ You should have received a copy of the GNU Lesser General Public License
|
|
|
16
16
|
along with the library. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
import {
|
|
20
|
-
|
|
19
|
+
import {
|
|
20
|
+
ExplorerProvider,
|
|
21
|
+
fromApiNumber256,
|
|
22
|
+
fromApiTokens,
|
|
23
|
+
NodeProvider,
|
|
24
|
+
stringify,
|
|
25
|
+
toApiNumber256,
|
|
26
|
+
toApiTokens
|
|
27
|
+
} from '../api'
|
|
21
28
|
import { node } from '../api'
|
|
22
|
-
import
|
|
23
|
-
import
|
|
29
|
+
import { blake2b } from '@noble/hashes/blake2b'
|
|
30
|
+
import { sha256 } from '@noble/hashes/sha256'
|
|
24
31
|
import {
|
|
25
32
|
Account,
|
|
26
33
|
Address,
|
|
@@ -48,6 +55,7 @@ import {
|
|
|
48
55
|
} from './types'
|
|
49
56
|
import { TransactionBuilder } from './tx-builder'
|
|
50
57
|
import { addressFromPublicKey, groupOfAddress } from '../address'
|
|
58
|
+
import { binToHex, verifySignature } from '../utils'
|
|
51
59
|
|
|
52
60
|
export abstract class SignerProvider {
|
|
53
61
|
abstract get nodeProvider(): NodeProvider | undefined
|
|
@@ -64,7 +72,7 @@ export abstract class SignerProvider {
|
|
|
64
72
|
const derivedAddress = addressFromPublicKey(account.publicKey, account.keyType)
|
|
65
73
|
const derivedGroup = groupOfAddress(derivedAddress)
|
|
66
74
|
if (derivedAddress !== account.address || (isGroupedAccount(account) && derivedGroup !== account.group)) {
|
|
67
|
-
throw Error(`Invalid accounot data: ${
|
|
75
|
+
throw Error(`Invalid accounot data: ${stringify(account)}`)
|
|
68
76
|
}
|
|
69
77
|
}
|
|
70
78
|
|
|
@@ -380,13 +388,11 @@ export function extendMessage(message: string): string {
|
|
|
380
388
|
export function hashMessage(message: string, hasher: MessageHasher): string {
|
|
381
389
|
switch (hasher) {
|
|
382
390
|
case 'alephium':
|
|
383
|
-
return
|
|
391
|
+
return binToHex(blake2b(new TextEncoder().encode(extendMessage(message)), { dkLen: 32 }))
|
|
384
392
|
case 'sha256':
|
|
385
|
-
|
|
386
|
-
sha256.update(new TextEncoder().encode(message))
|
|
387
|
-
return utils.binToHex(sha256.digest())
|
|
393
|
+
return binToHex(sha256(new TextEncoder().encode(message)))
|
|
388
394
|
case 'blake2b':
|
|
389
|
-
return
|
|
395
|
+
return binToHex(blake2b(new TextEncoder().encode(message), { dkLen: 32 }))
|
|
390
396
|
case 'identity':
|
|
391
397
|
return message
|
|
392
398
|
default:
|
|
@@ -402,7 +408,7 @@ export function verifySignedMessage(
|
|
|
402
408
|
keyType?: KeyType
|
|
403
409
|
): boolean {
|
|
404
410
|
const messageHash = hashMessage(message, messageHasher)
|
|
405
|
-
return
|
|
411
|
+
return verifySignature(messageHash, publicKey, signature, keyType)
|
|
406
412
|
}
|
|
407
413
|
|
|
408
414
|
export function toApiDestination(data: Destination): node.Destination {
|
package/src/token/nft.ts
CHANGED
|
@@ -19,7 +19,6 @@ along with the library. If not, see <http://www.gnu.org/licenses/>.
|
|
|
19
19
|
// JSON Schema for the NFT metadata, which is pointed to by the value
|
|
20
20
|
// returned from the `getTokenUri` method of the NFT contract
|
|
21
21
|
|
|
22
|
-
import 'cross-fetch/polyfill'
|
|
23
22
|
import { NFTCollectionUriMetaData, NFTTokenUriMetaData } from '../api'
|
|
24
23
|
import { TraceableError } from '../error'
|
|
25
24
|
|