@alephium/web3 2.0.10 → 3.0.0-test.1
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 +60 -78
- 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 +58 -34
- 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 +14 -12
- 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 -11
- 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 -42
- 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,58 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alephium/web3",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-test.1",
|
|
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
|
-
|
|
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
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"./api/explorer": {
|
|
23
|
+
"import": {
|
|
24
|
+
"types": "./dist/_esm/api/api-explorer.d.ts",
|
|
25
|
+
"default": "./dist/_esm/api/api-explorer.js"
|
|
26
|
+
},
|
|
27
|
+
"require": {
|
|
28
|
+
"types": "./dist/_cjs/api/api-explorer.d.ts",
|
|
29
|
+
"default": "./dist/_cjs/api/api-explorer.js"
|
|
30
|
+
}
|
|
13
31
|
},
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
|
|
32
|
+
"./api/node": {
|
|
33
|
+
"import": {
|
|
34
|
+
"types": "./dist/_esm/api/api-alephium.d.ts",
|
|
35
|
+
"default": "./dist/_esm/api/api-alephium.js"
|
|
36
|
+
},
|
|
37
|
+
"require": {
|
|
38
|
+
"types": "./dist/_cjs/api/api-alephium.d.ts",
|
|
39
|
+
"default": "./dist/_cjs/api/api-alephium.js"
|
|
40
|
+
}
|
|
17
41
|
}
|
|
18
42
|
},
|
|
19
43
|
"typesVersions": {
|
|
20
44
|
"*": {
|
|
21
|
-
"
|
|
22
|
-
"dist/
|
|
45
|
+
"api/explorer": [
|
|
46
|
+
"dist/_cjs/api/api-explorer.d.ts"
|
|
47
|
+
],
|
|
48
|
+
"api/node": [
|
|
49
|
+
"dist/_cjs/api/api-alephium.d.ts"
|
|
23
50
|
]
|
|
24
51
|
}
|
|
25
52
|
},
|
|
26
53
|
"repository": {
|
|
27
54
|
"type": "git",
|
|
28
|
-
"url": "git
|
|
55
|
+
"url": "git+https://github.com/alephium/alephium-web3.git"
|
|
29
56
|
},
|
|
30
57
|
"homepage": "https://github.com/alephium/alephium-web3",
|
|
31
58
|
"bugs": {
|
|
@@ -36,38 +63,31 @@
|
|
|
36
63
|
"alephium_version": "4.2.5",
|
|
37
64
|
"explorer_backend_version": "3.3.2"
|
|
38
65
|
},
|
|
39
|
-
"type": "commonjs",
|
|
40
66
|
"dependencies": {
|
|
67
|
+
"@noble/curves": "1.6.0",
|
|
68
|
+
"@noble/hashes": "1.6.1",
|
|
41
69
|
"@noble/secp256k1": "1.7.1",
|
|
42
70
|
"base-x": "4.0.0",
|
|
43
71
|
"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"
|
|
72
|
+
"eventemitter3": "^4.0.7"
|
|
52
73
|
},
|
|
53
74
|
"devDependencies": {
|
|
75
|
+
"@arethetypeswrong/cli": "^0.18.2",
|
|
54
76
|
"@babel/eslint-parser": "^7.21.3",
|
|
55
|
-
"@
|
|
77
|
+
"@size-limit/esbuild": "^11.0.0",
|
|
78
|
+
"@size-limit/file": "^11.0.0",
|
|
56
79
|
"@types/find-up": "^2.1.1",
|
|
57
80
|
"@types/fs-extra": "^9.0.13",
|
|
58
81
|
"@types/jest": "^27.5.2",
|
|
59
82
|
"@types/mock-fs": "^4.13.1",
|
|
60
|
-
"@types/node": "^
|
|
83
|
+
"@types/node": "^20.0.0",
|
|
61
84
|
"@types/rewire": "^2.5.28",
|
|
62
85
|
"@typescript-eslint/eslint-plugin": "^5.57.0",
|
|
63
86
|
"@typescript-eslint/parser": "^5.57.0",
|
|
64
|
-
"clean-webpack-plugin": "4.0.0",
|
|
65
87
|
"eslint": "^8.37.0",
|
|
66
88
|
"eslint-config-prettier": "^8.8.0",
|
|
67
|
-
"eslint-plugin-header": "^3.1.1",
|
|
68
89
|
"eslint-plugin-prettier": "^4.2.1",
|
|
69
90
|
"eslint-plugin-security": "1.6.0",
|
|
70
|
-
"html-webpack-plugin": "5.5.0",
|
|
71
91
|
"jest": "^28.1.3",
|
|
72
92
|
"jest-localstorage-mock": "^2.4.26",
|
|
73
93
|
"jest-websocket-mock": "^2.4.0",
|
|
@@ -75,27 +95,31 @@
|
|
|
75
95
|
"mock-socket": "^9.2.1",
|
|
76
96
|
"prettier": "^2.8.7",
|
|
77
97
|
"process": "^0.11.10",
|
|
98
|
+
"publint": "^0.3.18",
|
|
78
99
|
"rewire": "^6.0.0",
|
|
79
100
|
"shelljs": "^0.8.5",
|
|
101
|
+
"size-limit": "^11.0.0",
|
|
80
102
|
"swagger-typescript-api": "12.0.3",
|
|
81
|
-
"terser-webpack-plugin": "^5.3.7",
|
|
82
103
|
"ts-jest": "^28.0.8",
|
|
83
104
|
"ts-node": "^10.9.1",
|
|
84
105
|
"tslib": "^2.5.0",
|
|
85
|
-
"typescript": "^
|
|
86
|
-
"webpack": "^5.94.0",
|
|
87
|
-
"webpack-cli": "^4.10.0"
|
|
106
|
+
"typescript": "^5.9.3"
|
|
88
107
|
},
|
|
89
108
|
"engines": {
|
|
90
|
-
"node": ">=
|
|
109
|
+
"node": ">=20.0.0",
|
|
91
110
|
"npm": ">=7.0.0"
|
|
92
111
|
},
|
|
93
112
|
"scripts": {
|
|
94
|
-
"
|
|
113
|
+
"clean": "rm -rf node_modules dist",
|
|
114
|
+
"build": "rm -rf dist && pnpm build:cjs && pnpm build:esm",
|
|
115
|
+
"build:cjs": "tsc --project tsconfig.build.json --module commonjs --moduleResolution node --outDir dist/_cjs --declaration --verbatimModuleSyntax false && printf '{\"type\":\"commonjs\"}' > dist/_cjs/package.json",
|
|
116
|
+
"build:esm": "tsc --project tsconfig.build.json --outDir dist/_esm --declaration && printf '{\"type\":\"module\",\"sideEffects\":false}' > dist/_esm/package.json",
|
|
117
|
+
"check": "publint && attw --pack --ignore-rules internal-resolution-error",
|
|
95
118
|
"test": "jest -i --config ./jest-config.json",
|
|
96
119
|
"update-schemas": "npm run update-schema:alephium && npm run update-schema:explorer",
|
|
97
120
|
"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
121
|
"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}"
|
|
122
|
+
"check-versions": "node scripts/check-versions.js ${npm_package_config_alephium_version} ${npm_package_config_explorer_backend_version}",
|
|
123
|
+
"size": "npx size-limit"
|
|
100
124
|
}
|
|
101
125
|
}
|
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,
|
|
@@ -71,7 +71,7 @@ import {
|
|
|
71
71
|
import { getCurrentNodeProvider } from '../global'
|
|
72
72
|
import { EventSubscribeOptions, EventSubscription, subscribeToEvents } from './events'
|
|
73
73
|
import { MINIMAL_CONTRACT_DEPOSIT, ONE_ALPH, TOTAL_NUMBER_OF_GROUPS } from '../constants'
|
|
74
|
-
import
|
|
74
|
+
import { blake2b } from '@noble/hashes/blake2b'
|
|
75
75
|
import { isContractDebugMessageEnabled } from '../debug'
|
|
76
76
|
import {
|
|
77
77
|
contract,
|
|
@@ -279,7 +279,7 @@ export class Contract extends Artifact {
|
|
|
279
279
|
fieldLength: decodedDebugContract.fieldLength,
|
|
280
280
|
methods: methods
|
|
281
281
|
})
|
|
282
|
-
const codeHashForTesting =
|
|
282
|
+
const codeHashForTesting = blake2b(bytecodeForTesting, { dkLen: 32 })
|
|
283
283
|
this.bytecodeForTesting = binToHex(bytecodeForTesting)
|
|
284
284
|
this.codeHashForTesting = binToHex(codeHashForTesting)
|
|
285
285
|
return this.bytecodeForTesting
|
|
@@ -378,7 +378,8 @@ export class Contract extends Artifact {
|
|
|
378
378
|
codeHashDebug: string,
|
|
379
379
|
structs: Struct[] = []
|
|
380
380
|
): Promise<Contract> {
|
|
381
|
-
const
|
|
381
|
+
const fs = await import('fs')
|
|
382
|
+
const content = await fs.promises.readFile(path)
|
|
382
383
|
const artifact = JSON.parse(content.toString())
|
|
383
384
|
return Contract.fromJson(artifact, bytecodeDebugPatch, codeHashDebug, structs)
|
|
384
385
|
}
|
|
@@ -401,7 +402,7 @@ export class Contract extends Artifact {
|
|
|
401
402
|
if (this.stdInterfaceId !== undefined) {
|
|
402
403
|
object.stdInterfaceId = this.stdInterfaceId
|
|
403
404
|
}
|
|
404
|
-
return
|
|
405
|
+
return stringify(object, null, 2)
|
|
405
406
|
}
|
|
406
407
|
|
|
407
408
|
getInitialFieldsWithDefaultValues(): Fields {
|
|
@@ -779,7 +780,8 @@ export class Script extends Artifact {
|
|
|
779
780
|
}
|
|
780
781
|
|
|
781
782
|
static async fromArtifactFile(path: string, bytecodeDebugPatch: string, structs: Struct[] = []): Promise<Script> {
|
|
782
|
-
const
|
|
783
|
+
const fs = await import('fs')
|
|
784
|
+
const content = await fs.promises.readFile(path)
|
|
783
785
|
const artifact = JSON.parse(content.toString())
|
|
784
786
|
return this.fromJson(artifact, bytecodeDebugPatch, structs)
|
|
785
787
|
}
|
|
@@ -792,7 +794,7 @@ export class Script extends Artifact {
|
|
|
792
794
|
fieldsSig: this.fieldsSig,
|
|
793
795
|
functions: this.functions
|
|
794
796
|
}
|
|
795
|
-
return
|
|
797
|
+
return stringify(object, null, 2)
|
|
796
798
|
}
|
|
797
799
|
|
|
798
800
|
async txParamsForExecution<P extends Fields>(params: ExecuteScriptParams<P>): Promise<SignExecuteScriptTxParams> {
|
|
@@ -1087,7 +1089,7 @@ export interface DeployContractParams<P extends Fields = Fields> {
|
|
|
1087
1089
|
}
|
|
1088
1090
|
assertType<
|
|
1089
1091
|
Eq<
|
|
1090
|
-
Omit<DeployContractParams<
|
|
1092
|
+
Omit<DeployContractParams<Fields>, 'initialFields' | 'exposePrivateFunctions'>,
|
|
1091
1093
|
Omit<SignDeployContractTxParams, 'signerAddress' | 'signerKeyType' | 'bytecode'>
|
|
1092
1094
|
>
|
|
1093
1095
|
>
|
|
@@ -1418,7 +1420,7 @@ function genCodeForType(type: string, structs: Struct[]): { bytecode: string; co
|
|
|
1418
1420
|
methods: [loadImmFieldByIndex, loadMutFieldByIndex, storeMutFieldByIndex, destroy]
|
|
1419
1421
|
}
|
|
1420
1422
|
const bytecode = contract.contractCodec.encodeContract(c)
|
|
1421
|
-
const codeHash =
|
|
1423
|
+
const codeHash = blake2b(bytecode, { dkLen: 32 })
|
|
1422
1424
|
return { bytecode: binToHex(bytecode), codeHash: binToHex(codeHash) }
|
|
1423
1425
|
}
|
|
1424
1426
|
|
|
@@ -1615,7 +1617,7 @@ export async function getDebugMessagesFromTx(txId: HexString, provider?: NodePro
|
|
|
1615
1617
|
message: hexToString(e.fields[0].value as string)
|
|
1616
1618
|
}
|
|
1617
1619
|
} else {
|
|
1618
|
-
throw new Error(`Invalid debug log: ${
|
|
1620
|
+
throw new Error(`Invalid debug log: ${stringify(e.fields)}`)
|
|
1619
1621
|
}
|
|
1620
1622
|
})
|
|
1621
1623
|
} else {
|
|
@@ -2285,7 +2287,7 @@ export const getContractIdFromUnsignedTx = async (
|
|
|
2285
2287
|
const result = await nodeProvider.transactions.postTransactionsDecodeUnsignedTx({ unsignedTx })
|
|
2286
2288
|
const outputIndex = result.unsignedTx.fixedOutputs.length
|
|
2287
2289
|
const hex = result.unsignedTx.txId + outputIndex.toString(16).padStart(8, '0')
|
|
2288
|
-
const hashHex = binToHex(
|
|
2290
|
+
const hashHex = binToHex(blake2b(hexToBinUnsafe(hex), { dkLen: 32 }))
|
|
2289
2291
|
return hashHex.slice(0, 62) + result.fromGroup.toString(16).padStart(2, '0')
|
|
2290
2292
|
}
|
|
2291
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
|
|
package/src/utils/sign.ts
CHANGED
|
@@ -16,24 +16,22 @@ 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 { ec as EC } from 'elliptic'
|
|
20
19
|
import { binToHex, encodeSignature, hexToBinUnsafe, signatureDecode } from '../utils'
|
|
21
20
|
import { KeyType } from '../signer'
|
|
22
|
-
import * as
|
|
23
|
-
import {
|
|
21
|
+
import * as secp from '@noble/secp256k1'
|
|
22
|
+
import { sha256 } from '@noble/hashes/sha256'
|
|
23
|
+
import { hmac } from '@noble/hashes/hmac'
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
for (const message of messages) sha256.update(message)
|
|
30
|
-
return sha256.digest()
|
|
25
|
+
secp.utils.sha256Sync = (...messages: Uint8Array[]): Uint8Array => {
|
|
26
|
+
const h = sha256.create()
|
|
27
|
+
for (const message of messages) h.update(message)
|
|
28
|
+
return h.digest()
|
|
31
29
|
}
|
|
32
30
|
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
messages
|
|
36
|
-
return
|
|
31
|
+
secp.utils.hmacSha256Sync = (key: Uint8Array, ...messages: Uint8Array[]): Uint8Array => {
|
|
32
|
+
const h = hmac.create(sha256, key)
|
|
33
|
+
for (const message of messages) h.update(message)
|
|
34
|
+
return h.digest()
|
|
37
35
|
}
|
|
38
36
|
|
|
39
37
|
function checkKeyType(keyType: KeyType) {
|
|
@@ -48,11 +46,11 @@ export function sign(hash: string, privateKey: string, _keyType?: KeyType): stri
|
|
|
48
46
|
checkKeyType(keyType)
|
|
49
47
|
|
|
50
48
|
if (keyType === 'default' || keyType === 'gl-secp256k1') {
|
|
51
|
-
const
|
|
52
|
-
const signature =
|
|
53
|
-
return encodeSignature(signature)
|
|
49
|
+
const sig = secp.signSync(hexToBinUnsafe(hash), hexToBinUnsafe(privateKey), { der: false })
|
|
50
|
+
const signature = secp.Signature.fromCompact(sig)
|
|
51
|
+
return encodeSignature({ r: signature.r, s: signature.s })
|
|
54
52
|
} else {
|
|
55
|
-
const signature =
|
|
53
|
+
const signature = secp.schnorr.signSync(hexToBinUnsafe(hash), hexToBinUnsafe(privateKey))
|
|
56
54
|
return binToHex(signature)
|
|
57
55
|
}
|
|
58
56
|
}
|
|
@@ -63,10 +61,11 @@ export function verifySignature(hash: string, publicKey: string, signature: stri
|
|
|
63
61
|
|
|
64
62
|
try {
|
|
65
63
|
if (keyType === 'default' || keyType === 'gl-secp256k1') {
|
|
66
|
-
const
|
|
67
|
-
|
|
64
|
+
const decoded = signatureDecode(signature)
|
|
65
|
+
const sig = secp.Signature.fromCompact(decoded.r + decoded.s)
|
|
66
|
+
return secp.verify(sig, hexToBinUnsafe(hash), hexToBinUnsafe(publicKey))
|
|
68
67
|
} else {
|
|
69
|
-
return
|
|
68
|
+
return secp.schnorr.verifySync(hexToBinUnsafe(signature), hexToBinUnsafe(hash), hexToBinUnsafe(publicKey))
|
|
70
69
|
}
|
|
71
70
|
} catch (error) {
|
|
72
71
|
return false
|