@wowok/wowok 2.2.15 → 2.3.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 +19 -131
- package/dist/esm/Transaction-CnEnSz1Q.mjs +1 -0
- package/dist/esm/arb-CagzFZxJ.mjs +1 -0
- package/dist/esm/base-D8AaE_L_.mjs +1 -0
- package/dist/esm/bcs/index.d.mts +3 -0
- package/dist/esm/bcs/index.mjs +1 -0
- package/dist/esm/bcs-DDXHXJXy.mjs +1 -0
- package/dist/esm/cache-DTr3MtXv.d.mts +38 -0
- package/dist/esm/call-m4aejmaZ.mjs +1 -0
- package/dist/esm/chunk-D7D4PA-g.mjs +1 -0
- package/dist/esm/client/index.d.mts +3 -0
- package/dist/esm/client/index.mjs +1 -0
- package/dist/esm/client-CemVXFCQ.mjs +1 -0
- package/dist/esm/common-DAjh24WX.mjs +1 -0
- package/dist/esm/config-lfC3m3Qq.d.mts +22 -0
- package/dist/esm/cryptography/index.d.mts +2 -0
- package/dist/esm/cryptography/index.mjs +1 -0
- package/dist/esm/ed25519-Cr18BjHj.mjs +1 -0
- package/dist/esm/effects-lLpKpzCX.mjs +1 -0
- package/dist/esm/falcon512-B6ErgixE.mjs +1 -0
- package/dist/esm/faucet/index.d.mts +2 -0
- package/dist/esm/faucet/index.mjs +1 -0
- package/dist/esm/faucet-BhrCl1M5.mjs +1 -0
- package/dist/esm/graphql/index.d.mts +2 -0
- package/dist/esm/graphql/index.mjs +1 -0
- package/dist/esm/graphql/schema/index.d.mts +10 -0
- package/dist/esm/graphql/schema/index.mjs +1 -0
- package/dist/esm/graphql-BmTcxH0T.mjs +1 -0
- package/dist/esm/grpc/index.d.mts +2 -0
- package/dist/esm/grpc/index.mjs +1 -0
- package/dist/esm/grpc-CaNjTFmZ.mjs +1 -0
- package/dist/esm/index-BLNJgAaK.d.mts +19933 -0
- package/dist/esm/index-CGqMj3cG.d.mts +67 -0
- package/dist/esm/index-o_aMVwsK.d.mts +3059 -0
- package/dist/esm/index-uCW4oBx-.d.mts +24 -0
- package/dist/esm/index.d.mts +9 -0
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/jsonRpc/index.d.mts +2 -0
- package/dist/esm/jsonRpc/index.mjs +1 -0
- package/dist/esm/jsonRpc-BpByny_f.mjs +1 -0
- package/dist/esm/keypair-pjdbzQn9.mjs +1 -0
- package/dist/esm/keypairs/ed25519/index.d.mts +2 -0
- package/dist/esm/keypairs/ed25519/index.mjs +1 -0
- package/dist/esm/keypairs/falcon512/index.d.mts +2 -0
- package/dist/esm/keypairs/falcon512/index.mjs +1 -0
- package/dist/esm/keypairs/passkey/index.d.mts +2 -0
- package/dist/esm/keypairs/passkey/index.mjs +1 -0
- package/dist/esm/keypairs/secp256k1/index.d.mts +2 -0
- package/dist/esm/keypairs/secp256k1/index.mjs +1 -0
- package/dist/esm/keypairs/secp256r1/index.d.mts +2 -0
- package/dist/esm/keypairs/secp256r1/index.mjs +1 -0
- package/dist/esm/local-CjihK7WF.mjs +1 -0
- package/dist/esm/local-CtSmnSPu.d.mts +101 -0
- package/dist/esm/messenger-BpPg0lCq.mjs +1 -0
- package/dist/esm/messenger-api-DARYcgg2.mjs +1 -0
- package/dist/esm/mnemonics-C6qlqegr.mjs +1 -0
- package/dist/esm/multisig/index.d.mts +2 -0
- package/dist/esm/multisig/index.mjs +1 -0
- package/dist/esm/network-DeigCh6J.mjs +1 -0
- package/dist/esm/object-C7vil_Yf.mjs +1 -0
- package/dist/esm/passkey-bvgZyTnX.mjs +1 -0
- package/dist/esm/pqxdh-CKkqzvPb.d.mts +42 -0
- package/dist/esm/proof-Ca-_jIfs.mjs +1 -0
- package/dist/esm/publickey-6O2imwxm.mjs +1 -0
- package/dist/esm/publickey-AyBlZ-hX.mjs +1 -0
- package/dist/esm/publickey-BPT9QiGv.mjs +1 -0
- package/dist/esm/publickey-C6fyN2VZ.mjs +1 -0
- package/dist/esm/publickey-CdxwYhbs.mjs +1 -0
- package/dist/esm/publickey-qLbcTInT.mjs +1 -0
- package/dist/esm/received-jO4cTTKx.mjs +1 -0
- package/dist/esm/secp256k1-De_NDSy_.mjs +1 -0
- package/dist/esm/secp256r1-B5M33SkY.mjs +1 -0
- package/dist/esm/service-c6cDIKSG.mjs +1 -0
- package/dist/esm/sui-types-CuBKFvrd.mjs +1 -0
- package/dist/esm/transactions/index.d.mts +2 -0
- package/dist/esm/transactions/index.mjs +1 -0
- package/dist/esm/transactions-D9q2j6ZA.mjs +1 -0
- package/dist/esm/type-tag-serializer-BOCNO96r.d.mts +68 -0
- package/dist/esm/types-CiFC9IV5.d.mts +74 -0
- package/dist/esm/util-CQWQwC9c.mjs +1 -0
- package/dist/esm/utils/index.d.mts +3 -0
- package/dist/esm/utils/index.mjs +1 -0
- package/dist/esm/utils-IlS3fpdQ.mjs +1 -0
- package/dist/esm/verify/index.d.mts +2 -0
- package/dist/esm/verify/index.mjs +1 -0
- package/dist/esm/w/call/allocation.d.mts +2 -0
- package/dist/esm/w/call/allocation.mjs +1 -0
- package/dist/esm/w/call/arbitration.d.mts +2 -0
- package/dist/esm/w/call/arbitration.mjs +1 -0
- package/dist/esm/w/call/base.d.mts +2 -0
- package/dist/esm/w/call/base.mjs +1 -0
- package/dist/esm/w/call/demand.d.mts +2 -0
- package/dist/esm/w/call/demand.mjs +1 -0
- package/dist/esm/w/call/guard.d.mts +2 -0
- package/dist/esm/w/call/guard.mjs +1 -0
- package/dist/esm/w/call/index.d.mts +2 -0
- package/dist/esm/w/call/index.mjs +1 -0
- package/dist/esm/w/call/machine.d.mts +2 -0
- package/dist/esm/w/call/machine.mjs +1 -0
- package/dist/esm/w/call/passport.d.mts +2 -0
- package/dist/esm/w/call/passport.mjs +1 -0
- package/dist/esm/w/call/payment.d.mts +2 -0
- package/dist/esm/w/call/payment.mjs +1 -0
- package/dist/esm/w/call/permission.d.mts +2 -0
- package/dist/esm/w/call/permission.mjs +1 -0
- package/dist/esm/w/call/progress.d.mts +2 -0
- package/dist/esm/w/call/progress.mjs +1 -0
- package/dist/esm/w/call/repository.d.mts +2 -0
- package/dist/esm/w/call/repository.mjs +1 -0
- package/dist/esm/w/call/reward.d.mts +2 -0
- package/dist/esm/w/call/reward.mjs +1 -0
- package/dist/esm/w/call/service.d.mts +2 -0
- package/dist/esm/w/call/service.mjs +1 -0
- package/dist/esm/w/call/treasury.d.mts +2 -0
- package/dist/esm/w/call/treasury.mjs +1 -0
- package/dist/esm/w/common.d.mts +2 -0
- package/dist/esm/w/common.mjs +1 -0
- package/dist/esm/w/index.d.mts +5 -0
- package/dist/esm/w/index.mjs +1 -0
- package/dist/esm/w/local/account.d.mts +2 -0
- package/dist/esm/w/local/account.mjs +1 -0
- package/dist/esm/w/local/cache.d.mts +2 -0
- package/dist/esm/w/local/cache.mjs +1 -0
- package/dist/esm/w/local/config.d.mts +2 -0
- package/dist/esm/w/local/config.mjs +1 -0
- package/dist/esm/w/local/index.d.mts +5 -0
- package/dist/esm/w/local/index.mjs +1 -0
- package/dist/esm/w/local/local.d.mts +2 -0
- package/dist/esm/w/local/local.mjs +1 -0
- package/dist/esm/w/local/storage.d.mts +53 -0
- package/dist/esm/w/local/storage.mjs +1 -0
- package/dist/esm/w/local/token.d.mts +2 -0
- package/dist/esm/w/local/token.mjs +1 -0
- package/dist/esm/w/local/util.d.mts +9 -0
- package/dist/esm/w/local/util.mjs +1 -0
- package/dist/esm/w/local/wip.d.mts +2 -0
- package/dist/esm/w/local/wip.mjs +1 -0
- package/dist/esm/w/messenger/crypto.d.mts +271 -0
- package/dist/esm/w/messenger/crypto.mjs +1 -0
- package/dist/esm/w/messenger/index.d.mts +2 -0
- package/dist/esm/w/messenger/index.mjs +1 -0
- package/dist/esm/w/messenger/messenger-api.d.mts +2 -0
- package/dist/esm/w/messenger/messenger-api.mjs +1 -0
- package/dist/esm/w/messenger/messenger.d.mts +2 -0
- package/dist/esm/w/messenger/messenger.mjs +1 -0
- package/dist/esm/w/messenger/pq/crypto.d.mts +43 -0
- package/dist/esm/w/messenger/pq/crypto.mjs +1 -0
- package/dist/esm/w/messenger/pq/erasure.d.mts +19 -0
- package/dist/esm/w/messenger/pq/erasure.mjs +1 -0
- package/dist/esm/w/messenger/pq/index.d.mts +10 -0
- package/dist/esm/w/messenger/pq/index.mjs +1 -0
- package/dist/esm/w/messenger/pq/keycombiner.d.mts +4 -0
- package/dist/esm/w/messenger/pq/keycombiner.mjs +1 -0
- package/dist/esm/w/messenger/pq/pqxdh.d.mts +2 -0
- package/dist/esm/w/messenger/pq/pqxdh.mjs +1 -0
- package/dist/esm/w/messenger/pq/ratchet.d.mts +16 -0
- package/dist/esm/w/messenger/pq/ratchet.mjs +1 -0
- package/dist/esm/w/messenger/pq/session.d.mts +46 -0
- package/dist/esm/w/messenger/pq/session.mjs +1 -0
- package/dist/esm/w/messenger/pq/spqr.d.mts +27 -0
- package/dist/esm/w/messenger/pq/spqr.mjs +1 -0
- package/dist/esm/w/messenger/pq/store-adapter.d.mts +35 -0
- package/dist/esm/w/messenger/pq/store-adapter.mjs +1 -0
- package/dist/esm/w/messenger/pq/types.d.mts +189 -0
- package/dist/esm/w/messenger/pq/types.mjs +1 -0
- package/dist/esm/w/messenger/storage.d.mts +256 -0
- package/dist/esm/w/messenger/storage.mjs +1 -0
- package/dist/esm/w/messenger/types.d.mts +2 -0
- package/dist/esm/w/messenger/types.mjs +1 -0
- package/dist/esm/w/query/index.d.mts +2 -0
- package/dist/esm/w/query/index.mjs +1 -0
- package/dist/esm/w/query/object.d.mts +2 -0
- package/dist/esm/w/query/object.mjs +1 -0
- package/dist/esm/wip-NbB1ChbI.d.mts +229 -0
- package/package.json +142 -154
- package/NOTICE +0 -114
- package/THIRD_PARTY_LICENSES/APACHE_LICENSE.txt +0 -196
- package/THIRD_PARTY_LICENSES/MIT_LICENSE.txt +0 -58
- package/dist/cjs/_deps/bcs/bcs-type.d.ts +0 -127
- package/dist/cjs/_deps/bcs/bcs-type.js +0 -1
- package/dist/cjs/_deps/bcs/bcs.d.ts +0 -49
- package/dist/cjs/_deps/bcs/bcs.js +0 -1
- package/dist/cjs/_deps/bcs/index.d.ts +0 -16
- package/dist/cjs/_deps/bcs/index.js +0 -1
- package/dist/cjs/_deps/bcs/reader.d.ts +0 -15
- package/dist/cjs/_deps/bcs/reader.js +0 -1
- package/dist/cjs/_deps/bcs/types.d.ts +0 -24
- package/dist/cjs/_deps/bcs/types.js +0 -1
- package/dist/cjs/_deps/bcs/uleb.d.ts +0 -5
- package/dist/cjs/_deps/bcs/uleb.js +0 -1
- package/dist/cjs/_deps/bcs/utils.d.ts +0 -4
- package/dist/cjs/_deps/bcs/utils.js +0 -1
- package/dist/cjs/_deps/bcs/writer.d.ts +0 -28
- package/dist/cjs/_deps/bcs/writer.js +0 -1
- package/dist/cjs/_deps/utils/b58.d.ts +0 -2
- package/dist/cjs/_deps/utils/b58.js +0 -1
- package/dist/cjs/_deps/utils/b64.d.ts +0 -2
- package/dist/cjs/_deps/utils/b64.js +0 -1
- package/dist/cjs/_deps/utils/chunk.d.ts +0 -1
- package/dist/cjs/_deps/utils/chunk.js +0 -1
- package/dist/cjs/_deps/utils/dataloader.d.ts +0 -43
- package/dist/cjs/_deps/utils/dataloader.js +0 -1
- package/dist/cjs/_deps/utils/hex.d.ts +0 -2
- package/dist/cjs/_deps/utils/hex.js +0 -1
- package/dist/cjs/_deps/utils/index.d.ts +0 -7
- package/dist/cjs/_deps/utils/index.js +0 -1
- package/dist/cjs/_deps/utils/types.d.ts +0 -4
- package/dist/cjs/_deps/utils/types.js +0 -1
- package/dist/cjs/_deps/utils/with-resolver.d.ts +0 -6
- package/dist/cjs/_deps/utils/with-resolver.js +0 -1
- package/dist/cjs/bcs/bcs.d.ts +0 -1927
- package/dist/cjs/bcs/bcs.js +0 -1
- package/dist/cjs/bcs/effects.d.ts +0 -579
- package/dist/cjs/bcs/effects.js +0 -1
- package/dist/cjs/bcs/index.d.ts +0 -6
- package/dist/cjs/bcs/index.js +0 -1
- package/dist/cjs/bcs/pure.d.ts +0 -22
- package/dist/cjs/bcs/pure.js +0 -1
- package/dist/cjs/bcs/type-tag-serializer.d.ts +0 -7
- package/dist/cjs/bcs/type-tag-serializer.js +0 -1
- package/dist/cjs/bcs/types.d.ts +0 -65
- package/dist/cjs/bcs/types.js +0 -1
- package/dist/cjs/client/index.d.ts +0 -5
- package/dist/cjs/client/index.js +0 -1
- package/dist/cjs/client/network.d.ts +0 -5
- package/dist/cjs/client/network.js +0 -1
- package/dist/cjs/cryptography/index.d.ts +0 -7
- package/dist/cjs/cryptography/index.js +0 -1
- package/dist/cjs/cryptography/intent.d.ts +0 -3
- package/dist/cjs/cryptography/intent.js +0 -1
- package/dist/cjs/cryptography/keypair.d.ts +0 -39
- package/dist/cjs/cryptography/keypair.js +0 -1
- package/dist/cjs/cryptography/mnemonics.d.ts +0 -4
- package/dist/cjs/cryptography/mnemonics.js +0 -1
- package/dist/cjs/cryptography/publickey.d.ts +0 -25
- package/dist/cjs/cryptography/publickey.js +0 -1
- package/dist/cjs/cryptography/signature-scheme.d.ts +0 -13
- package/dist/cjs/cryptography/signature-scheme.js +0 -1
- package/dist/cjs/cryptography/signature.d.ts +0 -21
- package/dist/cjs/cryptography/signature.js +0 -1
- package/dist/cjs/experimental/cache.d.ts +0 -12
- package/dist/cjs/experimental/cache.js +0 -1
- package/dist/cjs/experimental/client.d.ts +0 -12
- package/dist/cjs/experimental/client.js +0 -1
- package/dist/cjs/experimental/core.d.ts +0 -31
- package/dist/cjs/experimental/core.js +0 -1
- package/dist/cjs/experimental/errors.d.ts +0 -8
- package/dist/cjs/experimental/errors.js +0 -1
- package/dist/cjs/experimental/index.d.ts +0 -7
- package/dist/cjs/experimental/index.js +0 -1
- package/dist/cjs/experimental/persistent-storage.d.ts +0 -36
- package/dist/cjs/experimental/persistent-storage.js +0 -1
- package/dist/cjs/experimental/persistent-storage.test.d.ts +0 -1
- package/dist/cjs/experimental/persistent-storage.test.js +0 -1
- package/dist/cjs/experimental/transports/utils.d.ts +0 -3
- package/dist/cjs/experimental/transports/utils.js +0 -1
- package/dist/cjs/experimental/types.d.ts +0 -361
- package/dist/cjs/experimental/types.js +0 -1
- package/dist/cjs/faucet/faucet.d.ts +0 -57
- package/dist/cjs/faucet/faucet.js +0 -1
- package/dist/cjs/faucet/index.d.ts +0 -1
- package/dist/cjs/faucet/index.js +0 -1
- package/dist/cjs/grpc/client.d.ts +0 -30
- package/dist/cjs/grpc/client.js +0 -1
- package/dist/cjs/grpc/core.d.ts +0 -28
- package/dist/cjs/grpc/core.js +0 -1
- package/dist/cjs/grpc/index.d.ts +0 -4
- package/dist/cjs/grpc/index.js +0 -1
- package/dist/cjs/grpc/proto/google/protobuf/any.d.ts +0 -29
- package/dist/cjs/grpc/proto/google/protobuf/any.js +0 -1
- package/dist/cjs/grpc/proto/google/protobuf/duration.d.ts +0 -23
- package/dist/cjs/grpc/proto/google/protobuf/duration.js +0 -1
- package/dist/cjs/grpc/proto/google/protobuf/empty.d.ts +0 -16
- package/dist/cjs/grpc/proto/google/protobuf/empty.js +0 -1
- package/dist/cjs/grpc/proto/google/protobuf/field_mask.d.ts +0 -22
- package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +0 -1
- package/dist/cjs/grpc/proto/google/protobuf/struct.d.ts +0 -72
- package/dist/cjs/grpc/proto/google/protobuf/struct.js +0 -1
- package/dist/cjs/grpc/proto/google/protobuf/timestamp.d.ts +0 -26
- package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +0 -1
- package/dist/cjs/grpc/proto/google/rpc/error_details.d.ts +0 -166
- package/dist/cjs/grpc/proto/google/rpc/error_details.js +0 -1
- package/dist/cjs/grpc/proto/google/rpc/status.d.ts +0 -20
- package/dist/cjs/grpc/proto/google/rpc/status.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/argument.d.ts +0 -18
- package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.d.ts +0 -11
- package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.d.ts +0 -10
- package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.d.ts +0 -20
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.d.ts +0 -23
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.d.ts +0 -46
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/effects.d.ts +0 -81
- package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.d.ts +0 -21
- package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.d.ts +0 -5
- package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/event.d.ts +0 -25
- package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.d.ts +0 -24
- package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.d.ts +0 -220
- package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.d.ts +0 -12
- package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/input.d.ts +0 -23
- package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.d.ts +0 -43
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.d.ts +0 -160
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.d.ts +0 -150
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts +0 -31
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.d.ts +0 -78
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/object.d.ts +0 -32
- package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.d.ts +0 -11
- package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/owner.d.ts +0 -19
- package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.d.ts +0 -15
- package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature.d.ts +0 -105
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.d.ts +0 -5
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.ts +0 -19
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.d.ts +0 -23
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.d.ts +0 -35
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.d.ts +0 -172
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts +0 -19
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.d.ts +0 -21
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.d.ts +0 -146
- package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.d.ts +0 -338
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.ts +0 -23
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +0 -1
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.d.ts +0 -66
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +0 -1
- package/dist/cjs/index.d.ts +0 -25
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/jsonRpc/client.d.ts +0 -121
- package/dist/cjs/jsonRpc/client.js +0 -1
- package/dist/cjs/jsonRpc/core.d.ts +0 -87
- package/dist/cjs/jsonRpc/core.js +0 -1
- package/dist/cjs/jsonRpc/errors.d.ts +0 -12
- package/dist/cjs/jsonRpc/errors.js +0 -1
- package/dist/cjs/jsonRpc/http-transport.d.ts +0 -39
- package/dist/cjs/jsonRpc/http-transport.js +0 -1
- package/dist/cjs/jsonRpc/index.d.ts +0 -4
- package/dist/cjs/jsonRpc/index.js +0 -1
- package/dist/cjs/jsonRpc/json-rpc-resolver.d.ts +0 -4
- package/dist/cjs/jsonRpc/json-rpc-resolver.js +0 -1
- package/dist/cjs/jsonRpc/rpc-websocket-client.d.ts +0 -28
- package/dist/cjs/jsonRpc/rpc-websocket-client.js +0 -1
- package/dist/cjs/jsonRpc/types/chain.d.ts +0 -94
- package/dist/cjs/jsonRpc/types/chain.js +0 -1
- package/dist/cjs/jsonRpc/types/changes.d.ts +0 -19
- package/dist/cjs/jsonRpc/types/changes.js +0 -1
- package/dist/cjs/jsonRpc/types/coins.d.ts +0 -6
- package/dist/cjs/jsonRpc/types/coins.js +0 -1
- package/dist/cjs/jsonRpc/types/common.d.ts +0 -2
- package/dist/cjs/jsonRpc/types/common.js +0 -1
- package/dist/cjs/jsonRpc/types/generated.d.ts +0 -954
- package/dist/cjs/jsonRpc/types/generated.js +0 -1
- package/dist/cjs/jsonRpc/types/index.d.ts +0 -6
- package/dist/cjs/jsonRpc/types/index.js +0 -1
- package/dist/cjs/jsonRpc/types/params.d.ts +0 -303
- package/dist/cjs/jsonRpc/types/params.js +0 -1
- package/dist/cjs/keypairs/falcon512/index.d.ts +0 -2
- package/dist/cjs/keypairs/falcon512/index.js +0 -1
- package/dist/cjs/keypairs/falcon512/keypair.d.ts +0 -19
- package/dist/cjs/keypairs/falcon512/keypair.js +0 -1
- package/dist/cjs/keypairs/falcon512/publickey.d.ts +0 -11
- package/dist/cjs/keypairs/falcon512/publickey.js +0 -1
- package/dist/cjs/keypairs/index.d.ts +0 -1
- package/dist/cjs/keypairs/index.js +0 -1
- package/dist/cjs/multisig/index.d.ts +0 -2
- package/dist/cjs/multisig/index.js +0 -1
- package/dist/cjs/multisig/publickey.d.ts +0 -44
- package/dist/cjs/multisig/publickey.js +0 -1
- package/dist/cjs/multisig/signer.d.ts +0 -19
- package/dist/cjs/multisig/signer.js +0 -1
- package/dist/cjs/transactions/Arguments.d.ts +0 -57
- package/dist/cjs/transactions/Arguments.js +0 -1
- package/dist/cjs/transactions/Commands.d.ts +0 -54
- package/dist/cjs/transactions/Commands.js +0 -1
- package/dist/cjs/transactions/Inputs.d.ts +0 -22
- package/dist/cjs/transactions/Inputs.js +0 -1
- package/dist/cjs/transactions/ObjectCache.d.ts +0 -83
- package/dist/cjs/transactions/ObjectCache.js +0 -1
- package/dist/cjs/transactions/Transaction.d.ts +0 -654
- package/dist/cjs/transactions/Transaction.js +0 -1
- package/dist/cjs/transactions/TransactionData.d.ts +0 -67
- package/dist/cjs/transactions/TransactionData.js +0 -1
- package/dist/cjs/transactions/__tests__/Transaction.test.d.ts +0 -1
- package/dist/cjs/transactions/__tests__/Transaction.test.js +0 -1
- package/dist/cjs/transactions/__tests__/bcs.test.d.ts +0 -1
- package/dist/cjs/transactions/__tests__/bcs.test.js +0 -1
- package/dist/cjs/transactions/data/internal.d.ts +0 -1010
- package/dist/cjs/transactions/data/internal.js +0 -1
- package/dist/cjs/transactions/data/v1.d.ts +0 -312
- package/dist/cjs/transactions/data/v1.js +0 -1
- package/dist/cjs/transactions/data/v2.d.ts +0 -153
- package/dist/cjs/transactions/data/v2.js +0 -1
- package/dist/cjs/transactions/executor/caching.d.ts +0 -27
- package/dist/cjs/transactions/executor/caching.js +0 -1
- package/dist/cjs/transactions/executor/parallel.d.ts +0 -26
- package/dist/cjs/transactions/executor/parallel.js +0 -1
- package/dist/cjs/transactions/executor/queue.d.ts +0 -11
- package/dist/cjs/transactions/executor/queue.js +0 -1
- package/dist/cjs/transactions/executor/serial.d.ts +0 -30
- package/dist/cjs/transactions/executor/serial.js +0 -1
- package/dist/cjs/transactions/hash.d.ts +0 -1
- package/dist/cjs/transactions/hash.js +0 -1
- package/dist/cjs/transactions/index.d.ts +0 -20
- package/dist/cjs/transactions/index.js +0 -1
- package/dist/cjs/transactions/intents/CoinWithBalance.d.ts +0 -9
- package/dist/cjs/transactions/intents/CoinWithBalance.js +0 -1
- package/dist/cjs/transactions/object.d.ts +0 -24
- package/dist/cjs/transactions/object.js +0 -1
- package/dist/cjs/transactions/plugins/NamedPackagesPlugin.d.ts +0 -13
- package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +0 -1
- package/dist/cjs/transactions/pure.d.ts +0 -20
- package/dist/cjs/transactions/pure.js +0 -1
- package/dist/cjs/transactions/resolve.d.ts +0 -13
- package/dist/cjs/transactions/resolve.js +0 -1
- package/dist/cjs/transactions/serializer.d.ts +0 -7
- package/dist/cjs/transactions/serializer.js +0 -1
- package/dist/cjs/transactions/utils.d.ts +0 -10
- package/dist/cjs/transactions/utils.js +0 -1
- package/dist/cjs/utils/constants.d.ts +0 -11
- package/dist/cjs/utils/constants.js +0 -1
- package/dist/cjs/utils/derived-objects.d.ts +0 -2
- package/dist/cjs/utils/derived-objects.js +0 -1
- package/dist/cjs/utils/dynamic-fields.d.ts +0 -2
- package/dist/cjs/utils/dynamic-fields.js +0 -1
- package/dist/cjs/utils/format.d.ts +0 -2
- package/dist/cjs/utils/format.js +0 -1
- package/dist/cjs/utils/index.d.ts +0 -8
- package/dist/cjs/utils/index.js +0 -1
- package/dist/cjs/utils/move-registry.d.ts +0 -2
- package/dist/cjs/utils/move-registry.js +0 -1
- package/dist/cjs/utils/wow-types.d.ts +0 -14
- package/dist/cjs/utils/wow-types.js +0 -1
- package/dist/cjs/verify/index.d.ts +0 -1
- package/dist/cjs/verify/index.js +0 -1
- package/dist/cjs/verify/verify.d.ts +0 -16
- package/dist/cjs/verify/verify.js +0 -1
- package/dist/cjs/version.d.ts +0 -2
- package/dist/cjs/version.js +0 -1
- package/dist/cjs/w/call/allocation.d.ts +0 -35
- package/dist/cjs/w/call/allocation.js +0 -1
- package/dist/cjs/w/call/arb.d.ts +0 -17
- package/dist/cjs/w/call/arb.js +0 -1
- package/dist/cjs/w/call/arbitration.d.ts +0 -106
- package/dist/cjs/w/call/arbitration.js +0 -1
- package/dist/cjs/w/call/base.d.ts +0 -43
- package/dist/cjs/w/call/base.js +0 -1
- package/dist/cjs/w/call/contact.d.ts +0 -45
- package/dist/cjs/w/call/contact.js +0 -1
- package/dist/cjs/w/call/demand.d.ts +0 -79
- package/dist/cjs/w/call/demand.js +0 -1
- package/dist/cjs/w/call/entity.d.ts +0 -33
- package/dist/cjs/w/call/entity.js +0 -1
- package/dist/cjs/w/call/guard-ins.d.ts +0 -29
- package/dist/cjs/w/call/guard-ins.js +0 -1
- package/dist/cjs/w/call/guard.d.ts +0 -350
- package/dist/cjs/w/call/guard.js +0 -1
- package/dist/cjs/w/call/index.d.ts +0 -37
- package/dist/cjs/w/call/index.js +0 -1
- package/dist/cjs/w/call/machine.d.ts +0 -124
- package/dist/cjs/w/call/machine.js +0 -1
- package/dist/cjs/w/call/order.d.ts +0 -73
- package/dist/cjs/w/call/order.js +0 -1
- package/dist/cjs/w/call/passport.d.ts +0 -24
- package/dist/cjs/w/call/passport.js +0 -1
- package/dist/cjs/w/call/payment.d.ts +0 -27
- package/dist/cjs/w/call/payment.js +0 -1
- package/dist/cjs/w/call/permission.d.ts +0 -202
- package/dist/cjs/w/call/permission.js +0 -1
- package/dist/cjs/w/call/personal.d.ts +0 -51
- package/dist/cjs/w/call/personal.js +0 -1
- package/dist/cjs/w/call/progress.d.ts +0 -95
- package/dist/cjs/w/call/progress.js +0 -1
- package/dist/cjs/w/call/proof.d.ts +0 -27
- package/dist/cjs/w/call/proof.js +0 -1
- package/dist/cjs/w/call/repository.d.ts +0 -97
- package/dist/cjs/w/call/repository.js +0 -1
- package/dist/cjs/w/call/resource.d.ts +0 -27
- package/dist/cjs/w/call/resource.js +0 -1
- package/dist/cjs/w/call/reward.d.ts +0 -52
- package/dist/cjs/w/call/reward.js +0 -1
- package/dist/cjs/w/call/service.d.ts +0 -186
- package/dist/cjs/w/call/service.js +0 -1
- package/dist/cjs/w/call/treasury.d.ts +0 -77
- package/dist/cjs/w/call/treasury.js +0 -1
- package/dist/cjs/w/call/util.d.ts +0 -13
- package/dist/cjs/w/call/util.js +0 -1
- package/dist/cjs/w/common.d.ts +0 -344
- package/dist/cjs/w/common.js +0 -1
- package/dist/cjs/w/exception.d.ts +0 -83
- package/dist/cjs/w/exception.js +0 -1
- package/dist/cjs/w/index.d.ts +0 -8
- package/dist/cjs/w/index.js +0 -1
- package/dist/cjs/w/local/account.d.ts +0 -99
- package/dist/cjs/w/local/account.js +0 -1
- package/dist/cjs/w/local/cache.d.ts +0 -35
- package/dist/cjs/w/local/cache.js +0 -1
- package/dist/cjs/w/local/config.d.ts +0 -12
- package/dist/cjs/w/local/config.js +0 -1
- package/dist/cjs/w/local/index.d.ts +0 -199
- package/dist/cjs/w/local/index.js +0 -1
- package/dist/cjs/w/local/local.d.ts +0 -96
- package/dist/cjs/w/local/local.js +0 -1
- package/dist/cjs/w/local/storage.d.ts +0 -41
- package/dist/cjs/w/local/storage.js +0 -1
- package/dist/cjs/w/local/token.d.ts +0 -19
- package/dist/cjs/w/local/token.js +0 -1
- package/dist/cjs/w/local/util.d.ts +0 -1
- package/dist/cjs/w/local/util.js +0 -1
- package/dist/cjs/w/local/wip.d.ts +0 -135
- package/dist/cjs/w/local/wip.js +0 -1
- package/dist/cjs/w/messenger/crypto.d.ts +0 -88
- package/dist/cjs/w/messenger/crypto.js +0 -1
- package/dist/cjs/w/messenger/index.d.ts +0 -5
- package/dist/cjs/w/messenger/index.js +0 -1
- package/dist/cjs/w/messenger/messenger-api.d.ts +0 -140
- package/dist/cjs/w/messenger/messenger-api.js +0 -1
- package/dist/cjs/w/messenger/messenger-manager.d.ts +0 -85
- package/dist/cjs/w/messenger/messenger-manager.js +0 -1
- package/dist/cjs/w/messenger/messenger.d.ts +0 -92
- package/dist/cjs/w/messenger/messenger.js +0 -1
- package/dist/cjs/w/messenger/pq/crypto.d.ts +0 -39
- package/dist/cjs/w/messenger/pq/crypto.js +0 -1
- package/dist/cjs/w/messenger/pq/erasure.d.ts +0 -17
- package/dist/cjs/w/messenger/pq/erasure.js +0 -1
- package/dist/cjs/w/messenger/pq/index.d.ts +0 -9
- package/dist/cjs/w/messenger/pq/index.js +0 -1
- package/dist/cjs/w/messenger/pq/keycombiner.d.ts +0 -1
- package/dist/cjs/w/messenger/pq/keycombiner.js +0 -1
- package/dist/cjs/w/messenger/pq/pqxdh.d.ts +0 -38
- package/dist/cjs/w/messenger/pq/pqxdh.js +0 -1
- package/dist/cjs/w/messenger/pq/ratchet.d.ts +0 -12
- package/dist/cjs/w/messenger/pq/ratchet.js +0 -1
- package/dist/cjs/w/messenger/pq/session.d.ts +0 -41
- package/dist/cjs/w/messenger/pq/session.js +0 -1
- package/dist/cjs/w/messenger/pq/spqr.d.ts +0 -23
- package/dist/cjs/w/messenger/pq/spqr.js +0 -1
- package/dist/cjs/w/messenger/pq/store-adapter.d.ts +0 -31
- package/dist/cjs/w/messenger/pq/store-adapter.js +0 -1
- package/dist/cjs/w/messenger/pq/types.d.ts +0 -180
- package/dist/cjs/w/messenger/pq/types.js +0 -1
- package/dist/cjs/w/messenger/server.d.ts +0 -48
- package/dist/cjs/w/messenger/server.js +0 -1
- package/dist/cjs/w/messenger/session.d.ts +0 -65
- package/dist/cjs/w/messenger/session.js +0 -1
- package/dist/cjs/w/messenger/storage.d.ts +0 -110
- package/dist/cjs/w/messenger/storage.js +0 -1
- package/dist/cjs/w/messenger/templates/wts-html-template.d.ts +0 -30
- package/dist/cjs/w/messenger/templates/wts-html-template.js +0 -1
- package/dist/cjs/w/messenger/types.d.ts +0 -647
- package/dist/cjs/w/messenger/types.js +0 -1
- package/dist/cjs/w/messenger/utils.d.ts +0 -1
- package/dist/cjs/w/messenger/utils.js +0 -1
- package/dist/cjs/w/query/bult-in.d.ts +0 -62
- package/dist/cjs/w/query/bult-in.js +0 -1
- package/dist/cjs/w/query/event.d.ts +0 -76
- package/dist/cjs/w/query/event.js +0 -1
- package/dist/cjs/w/query/index.d.ts +0 -5
- package/dist/cjs/w/query/index.js +0 -1
- package/dist/cjs/w/query/object.d.ts +0 -626
- package/dist/cjs/w/query/object.js +0 -1
- package/dist/cjs/w/query/received.d.ts +0 -30
- package/dist/cjs/w/query/received.js +0 -1
- package/dist/cjs/w/query/util.d.ts +0 -4
- package/dist/cjs/w/query/util.js +0 -1
- package/dist/cjs/w/util.d.ts +0 -16
- package/dist/cjs/w/util.js +0 -1
- package/dist/esm/_deps/bcs/bcs-type.d.ts +0 -127
- package/dist/esm/_deps/bcs/bcs-type.js +0 -1
- package/dist/esm/_deps/bcs/bcs.d.ts +0 -49
- package/dist/esm/_deps/bcs/bcs.js +0 -1
- package/dist/esm/_deps/bcs/index.d.ts +0 -16
- package/dist/esm/_deps/bcs/index.js +0 -1
- package/dist/esm/_deps/bcs/reader.d.ts +0 -15
- package/dist/esm/_deps/bcs/reader.js +0 -1
- package/dist/esm/_deps/bcs/types.d.ts +0 -24
- package/dist/esm/_deps/bcs/types.js +0 -1
- package/dist/esm/_deps/bcs/uleb.d.ts +0 -5
- package/dist/esm/_deps/bcs/uleb.js +0 -1
- package/dist/esm/_deps/bcs/utils.d.ts +0 -4
- package/dist/esm/_deps/bcs/utils.js +0 -1
- package/dist/esm/_deps/bcs/writer.d.ts +0 -28
- package/dist/esm/_deps/bcs/writer.js +0 -1
- package/dist/esm/_deps/utils/b58.d.ts +0 -2
- package/dist/esm/_deps/utils/b58.js +0 -1
- package/dist/esm/_deps/utils/b64.d.ts +0 -2
- package/dist/esm/_deps/utils/b64.js +0 -1
- package/dist/esm/_deps/utils/chunk.d.ts +0 -1
- package/dist/esm/_deps/utils/chunk.js +0 -1
- package/dist/esm/_deps/utils/dataloader.d.ts +0 -43
- package/dist/esm/_deps/utils/dataloader.js +0 -1
- package/dist/esm/_deps/utils/hex.d.ts +0 -2
- package/dist/esm/_deps/utils/hex.js +0 -1
- package/dist/esm/_deps/utils/index.d.ts +0 -7
- package/dist/esm/_deps/utils/index.js +0 -1
- package/dist/esm/_deps/utils/types.d.ts +0 -4
- package/dist/esm/_deps/utils/types.js +0 -1
- package/dist/esm/_deps/utils/with-resolver.d.ts +0 -6
- package/dist/esm/_deps/utils/with-resolver.js +0 -1
- package/dist/esm/bcs/bcs.d.ts +0 -1927
- package/dist/esm/bcs/bcs.js +0 -1
- package/dist/esm/bcs/effects.d.ts +0 -579
- package/dist/esm/bcs/effects.js +0 -1
- package/dist/esm/bcs/index.d.ts +0 -6
- package/dist/esm/bcs/index.js +0 -1
- package/dist/esm/bcs/pure.d.ts +0 -22
- package/dist/esm/bcs/pure.js +0 -1
- package/dist/esm/bcs/type-tag-serializer.d.ts +0 -7
- package/dist/esm/bcs/type-tag-serializer.js +0 -1
- package/dist/esm/bcs/types.d.ts +0 -65
- package/dist/esm/bcs/types.js +0 -1
- package/dist/esm/client/index.d.ts +0 -5
- package/dist/esm/client/index.js +0 -1
- package/dist/esm/client/network.d.ts +0 -5
- package/dist/esm/client/network.js +0 -1
- package/dist/esm/cryptography/index.d.ts +0 -7
- package/dist/esm/cryptography/index.js +0 -1
- package/dist/esm/cryptography/intent.d.ts +0 -3
- package/dist/esm/cryptography/intent.js +0 -1
- package/dist/esm/cryptography/keypair.d.ts +0 -39
- package/dist/esm/cryptography/keypair.js +0 -1
- package/dist/esm/cryptography/mnemonics.d.ts +0 -4
- package/dist/esm/cryptography/mnemonics.js +0 -1
- package/dist/esm/cryptography/publickey.d.ts +0 -25
- package/dist/esm/cryptography/publickey.js +0 -1
- package/dist/esm/cryptography/signature-scheme.d.ts +0 -13
- package/dist/esm/cryptography/signature-scheme.js +0 -1
- package/dist/esm/cryptography/signature.d.ts +0 -21
- package/dist/esm/cryptography/signature.js +0 -1
- package/dist/esm/experimental/cache.d.ts +0 -12
- package/dist/esm/experimental/cache.js +0 -1
- package/dist/esm/experimental/client.d.ts +0 -12
- package/dist/esm/experimental/client.js +0 -1
- package/dist/esm/experimental/core.d.ts +0 -31
- package/dist/esm/experimental/core.js +0 -1
- package/dist/esm/experimental/errors.d.ts +0 -8
- package/dist/esm/experimental/errors.js +0 -1
- package/dist/esm/experimental/index.d.ts +0 -7
- package/dist/esm/experimental/index.js +0 -1
- package/dist/esm/experimental/persistent-storage.d.ts +0 -36
- package/dist/esm/experimental/persistent-storage.js +0 -1
- package/dist/esm/experimental/persistent-storage.test.d.ts +0 -1
- package/dist/esm/experimental/persistent-storage.test.js +0 -1
- package/dist/esm/experimental/transports/utils.d.ts +0 -3
- package/dist/esm/experimental/transports/utils.js +0 -1
- package/dist/esm/experimental/types.d.ts +0 -361
- package/dist/esm/experimental/types.js +0 -1
- package/dist/esm/faucet/faucet.d.ts +0 -57
- package/dist/esm/faucet/faucet.js +0 -1
- package/dist/esm/faucet/index.d.ts +0 -1
- package/dist/esm/faucet/index.js +0 -1
- package/dist/esm/grpc/client.d.ts +0 -30
- package/dist/esm/grpc/client.js +0 -1
- package/dist/esm/grpc/core.d.ts +0 -28
- package/dist/esm/grpc/core.js +0 -1
- package/dist/esm/grpc/index.d.ts +0 -4
- package/dist/esm/grpc/index.js +0 -1
- package/dist/esm/grpc/proto/google/protobuf/any.d.ts +0 -29
- package/dist/esm/grpc/proto/google/protobuf/any.js +0 -1
- package/dist/esm/grpc/proto/google/protobuf/duration.d.ts +0 -23
- package/dist/esm/grpc/proto/google/protobuf/duration.js +0 -1
- package/dist/esm/grpc/proto/google/protobuf/empty.d.ts +0 -16
- package/dist/esm/grpc/proto/google/protobuf/empty.js +0 -1
- package/dist/esm/grpc/proto/google/protobuf/field_mask.d.ts +0 -22
- package/dist/esm/grpc/proto/google/protobuf/field_mask.js +0 -1
- package/dist/esm/grpc/proto/google/protobuf/struct.d.ts +0 -72
- package/dist/esm/grpc/proto/google/protobuf/struct.js +0 -1
- package/dist/esm/grpc/proto/google/protobuf/timestamp.d.ts +0 -26
- package/dist/esm/grpc/proto/google/protobuf/timestamp.js +0 -1
- package/dist/esm/grpc/proto/google/rpc/error_details.d.ts +0 -166
- package/dist/esm/grpc/proto/google/rpc/error_details.js +0 -1
- package/dist/esm/grpc/proto/google/rpc/status.d.ts +0 -20
- package/dist/esm/grpc/proto/google/rpc/status.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/argument.d.ts +0 -18
- package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.d.ts +0 -11
- package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/bcs.d.ts +0 -10
- package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.d.ts +0 -20
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.d.ts +0 -23
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.d.ts +0 -46
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/effects.d.ts +0 -81
- package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/epoch.d.ts +0 -21
- package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.d.ts +0 -5
- package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/event.d.ts +0 -25
- package/dist/esm/grpc/proto/sui/rpc/v2/event.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.d.ts +0 -24
- package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.d.ts +0 -220
- package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.d.ts +0 -12
- package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/input.d.ts +0 -23
- package/dist/esm/grpc/proto/sui/rpc/v2/input.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.d.ts +0 -43
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.d.ts +0 -160
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package.d.ts +0 -150
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts +0 -31
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.d.ts +0 -78
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/object.d.ts +0 -32
- package/dist/esm/grpc/proto/sui/rpc/v2/object.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.d.ts +0 -11
- package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/owner.d.ts +0 -19
- package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.d.ts +0 -15
- package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/signature.d.ts +0 -105
- package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.d.ts +0 -5
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.ts +0 -19
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.d.ts +0 -23
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.d.ts +0 -35
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.d.ts +0 -172
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts +0 -19
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.d.ts +0 -21
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/system_state.d.ts +0 -146
- package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction.d.ts +0 -338
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.ts +0 -23
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +0 -1
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.d.ts +0 -66
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +0 -1
- package/dist/esm/index.d.ts +0 -25
- package/dist/esm/index.js +0 -1
- package/dist/esm/jsonRpc/client.d.ts +0 -121
- package/dist/esm/jsonRpc/client.js +0 -1
- package/dist/esm/jsonRpc/core.d.ts +0 -87
- package/dist/esm/jsonRpc/core.js +0 -1
- package/dist/esm/jsonRpc/errors.d.ts +0 -12
- package/dist/esm/jsonRpc/errors.js +0 -1
- package/dist/esm/jsonRpc/http-transport.d.ts +0 -39
- package/dist/esm/jsonRpc/http-transport.js +0 -1
- package/dist/esm/jsonRpc/index.d.ts +0 -4
- package/dist/esm/jsonRpc/index.js +0 -1
- package/dist/esm/jsonRpc/json-rpc-resolver.d.ts +0 -4
- package/dist/esm/jsonRpc/json-rpc-resolver.js +0 -1
- package/dist/esm/jsonRpc/rpc-websocket-client.d.ts +0 -28
- package/dist/esm/jsonRpc/rpc-websocket-client.js +0 -1
- package/dist/esm/jsonRpc/types/chain.d.ts +0 -94
- package/dist/esm/jsonRpc/types/chain.js +0 -1
- package/dist/esm/jsonRpc/types/changes.d.ts +0 -19
- package/dist/esm/jsonRpc/types/changes.js +0 -1
- package/dist/esm/jsonRpc/types/coins.d.ts +0 -6
- package/dist/esm/jsonRpc/types/coins.js +0 -1
- package/dist/esm/jsonRpc/types/common.d.ts +0 -2
- package/dist/esm/jsonRpc/types/common.js +0 -1
- package/dist/esm/jsonRpc/types/generated.d.ts +0 -954
- package/dist/esm/jsonRpc/types/generated.js +0 -1
- package/dist/esm/jsonRpc/types/index.d.ts +0 -6
- package/dist/esm/jsonRpc/types/index.js +0 -1
- package/dist/esm/jsonRpc/types/params.d.ts +0 -303
- package/dist/esm/jsonRpc/types/params.js +0 -1
- package/dist/esm/keypairs/falcon512/index.d.ts +0 -2
- package/dist/esm/keypairs/falcon512/index.js +0 -1
- package/dist/esm/keypairs/falcon512/keypair.d.ts +0 -19
- package/dist/esm/keypairs/falcon512/keypair.js +0 -1
- package/dist/esm/keypairs/falcon512/publickey.d.ts +0 -11
- package/dist/esm/keypairs/falcon512/publickey.js +0 -1
- package/dist/esm/keypairs/index.d.ts +0 -1
- package/dist/esm/keypairs/index.js +0 -1
- package/dist/esm/multisig/index.d.ts +0 -2
- package/dist/esm/multisig/index.js +0 -1
- package/dist/esm/multisig/publickey.d.ts +0 -44
- package/dist/esm/multisig/publickey.js +0 -1
- package/dist/esm/multisig/signer.d.ts +0 -19
- package/dist/esm/multisig/signer.js +0 -1
- package/dist/esm/transactions/Arguments.d.ts +0 -57
- package/dist/esm/transactions/Arguments.js +0 -1
- package/dist/esm/transactions/Commands.d.ts +0 -54
- package/dist/esm/transactions/Commands.js +0 -1
- package/dist/esm/transactions/Inputs.d.ts +0 -22
- package/dist/esm/transactions/Inputs.js +0 -1
- package/dist/esm/transactions/ObjectCache.d.ts +0 -83
- package/dist/esm/transactions/ObjectCache.js +0 -1
- package/dist/esm/transactions/Transaction.d.ts +0 -654
- package/dist/esm/transactions/Transaction.js +0 -1
- package/dist/esm/transactions/TransactionData.d.ts +0 -67
- package/dist/esm/transactions/TransactionData.js +0 -1
- package/dist/esm/transactions/__tests__/Transaction.test.d.ts +0 -1
- package/dist/esm/transactions/__tests__/Transaction.test.js +0 -1
- package/dist/esm/transactions/__tests__/bcs.test.d.ts +0 -1
- package/dist/esm/transactions/__tests__/bcs.test.js +0 -1
- package/dist/esm/transactions/data/internal.d.ts +0 -1010
- package/dist/esm/transactions/data/internal.js +0 -1
- package/dist/esm/transactions/data/v1.d.ts +0 -312
- package/dist/esm/transactions/data/v1.js +0 -1
- package/dist/esm/transactions/data/v2.d.ts +0 -153
- package/dist/esm/transactions/data/v2.js +0 -1
- package/dist/esm/transactions/executor/caching.d.ts +0 -27
- package/dist/esm/transactions/executor/caching.js +0 -1
- package/dist/esm/transactions/executor/parallel.d.ts +0 -26
- package/dist/esm/transactions/executor/parallel.js +0 -1
- package/dist/esm/transactions/executor/queue.d.ts +0 -11
- package/dist/esm/transactions/executor/queue.js +0 -1
- package/dist/esm/transactions/executor/serial.d.ts +0 -30
- package/dist/esm/transactions/executor/serial.js +0 -1
- package/dist/esm/transactions/hash.d.ts +0 -1
- package/dist/esm/transactions/hash.js +0 -1
- package/dist/esm/transactions/index.d.ts +0 -20
- package/dist/esm/transactions/index.js +0 -1
- package/dist/esm/transactions/intents/CoinWithBalance.d.ts +0 -9
- package/dist/esm/transactions/intents/CoinWithBalance.js +0 -1
- package/dist/esm/transactions/object.d.ts +0 -24
- package/dist/esm/transactions/object.js +0 -1
- package/dist/esm/transactions/plugins/NamedPackagesPlugin.d.ts +0 -13
- package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +0 -1
- package/dist/esm/transactions/pure.d.ts +0 -20
- package/dist/esm/transactions/pure.js +0 -1
- package/dist/esm/transactions/resolve.d.ts +0 -13
- package/dist/esm/transactions/resolve.js +0 -1
- package/dist/esm/transactions/serializer.d.ts +0 -7
- package/dist/esm/transactions/serializer.js +0 -1
- package/dist/esm/transactions/utils.d.ts +0 -10
- package/dist/esm/transactions/utils.js +0 -1
- package/dist/esm/utils/constants.d.ts +0 -11
- package/dist/esm/utils/constants.js +0 -1
- package/dist/esm/utils/derived-objects.d.ts +0 -2
- package/dist/esm/utils/derived-objects.js +0 -1
- package/dist/esm/utils/dynamic-fields.d.ts +0 -2
- package/dist/esm/utils/dynamic-fields.js +0 -1
- package/dist/esm/utils/format.d.ts +0 -2
- package/dist/esm/utils/format.js +0 -1
- package/dist/esm/utils/index.d.ts +0 -8
- package/dist/esm/utils/index.js +0 -1
- package/dist/esm/utils/move-registry.d.ts +0 -2
- package/dist/esm/utils/move-registry.js +0 -1
- package/dist/esm/utils/wow-types.d.ts +0 -14
- package/dist/esm/utils/wow-types.js +0 -1
- package/dist/esm/verify/index.d.ts +0 -1
- package/dist/esm/verify/index.js +0 -1
- package/dist/esm/verify/verify.d.ts +0 -16
- package/dist/esm/verify/verify.js +0 -1
- package/dist/esm/version.d.ts +0 -2
- package/dist/esm/version.js +0 -1
- package/dist/esm/w/call/allocation.d.ts +0 -35
- package/dist/esm/w/call/allocation.js +0 -1
- package/dist/esm/w/call/arb.d.ts +0 -17
- package/dist/esm/w/call/arb.js +0 -1
- package/dist/esm/w/call/arbitration.d.ts +0 -106
- package/dist/esm/w/call/arbitration.js +0 -1
- package/dist/esm/w/call/base.d.ts +0 -43
- package/dist/esm/w/call/base.js +0 -1
- package/dist/esm/w/call/contact.d.ts +0 -45
- package/dist/esm/w/call/contact.js +0 -1
- package/dist/esm/w/call/demand.d.ts +0 -79
- package/dist/esm/w/call/demand.js +0 -1
- package/dist/esm/w/call/entity.d.ts +0 -33
- package/dist/esm/w/call/entity.js +0 -1
- package/dist/esm/w/call/guard-ins.d.ts +0 -29
- package/dist/esm/w/call/guard-ins.js +0 -1
- package/dist/esm/w/call/guard.d.ts +0 -350
- package/dist/esm/w/call/guard.js +0 -1
- package/dist/esm/w/call/index.d.ts +0 -37
- package/dist/esm/w/call/index.js +0 -1
- package/dist/esm/w/call/machine.d.ts +0 -124
- package/dist/esm/w/call/machine.js +0 -1
- package/dist/esm/w/call/order.d.ts +0 -73
- package/dist/esm/w/call/order.js +0 -1
- package/dist/esm/w/call/passport.d.ts +0 -24
- package/dist/esm/w/call/passport.js +0 -1
- package/dist/esm/w/call/payment.d.ts +0 -27
- package/dist/esm/w/call/payment.js +0 -1
- package/dist/esm/w/call/permission.d.ts +0 -202
- package/dist/esm/w/call/permission.js +0 -1
- package/dist/esm/w/call/personal.d.ts +0 -51
- package/dist/esm/w/call/personal.js +0 -1
- package/dist/esm/w/call/progress.d.ts +0 -95
- package/dist/esm/w/call/progress.js +0 -1
- package/dist/esm/w/call/proof.d.ts +0 -27
- package/dist/esm/w/call/proof.js +0 -1
- package/dist/esm/w/call/repository.d.ts +0 -97
- package/dist/esm/w/call/repository.js +0 -1
- package/dist/esm/w/call/resource.d.ts +0 -27
- package/dist/esm/w/call/resource.js +0 -1
- package/dist/esm/w/call/reward.d.ts +0 -52
- package/dist/esm/w/call/reward.js +0 -1
- package/dist/esm/w/call/service.d.ts +0 -186
- package/dist/esm/w/call/service.js +0 -1
- package/dist/esm/w/call/treasury.d.ts +0 -77
- package/dist/esm/w/call/treasury.js +0 -1
- package/dist/esm/w/call/util.d.ts +0 -13
- package/dist/esm/w/call/util.js +0 -1
- package/dist/esm/w/common.d.ts +0 -344
- package/dist/esm/w/common.js +0 -1
- package/dist/esm/w/exception.d.ts +0 -83
- package/dist/esm/w/exception.js +0 -1
- package/dist/esm/w/index.d.ts +0 -8
- package/dist/esm/w/index.js +0 -1
- package/dist/esm/w/local/account.d.ts +0 -99
- package/dist/esm/w/local/account.js +0 -1
- package/dist/esm/w/local/cache.d.ts +0 -35
- package/dist/esm/w/local/cache.js +0 -1
- package/dist/esm/w/local/config.d.ts +0 -12
- package/dist/esm/w/local/config.js +0 -1
- package/dist/esm/w/local/index.d.ts +0 -199
- package/dist/esm/w/local/index.js +0 -1
- package/dist/esm/w/local/local.d.ts +0 -96
- package/dist/esm/w/local/local.js +0 -1
- package/dist/esm/w/local/storage.d.ts +0 -41
- package/dist/esm/w/local/storage.js +0 -1
- package/dist/esm/w/local/token.d.ts +0 -19
- package/dist/esm/w/local/token.js +0 -1
- package/dist/esm/w/local/util.d.ts +0 -1
- package/dist/esm/w/local/util.js +0 -1
- package/dist/esm/w/local/wip.d.ts +0 -135
- package/dist/esm/w/local/wip.js +0 -1
- package/dist/esm/w/messenger/crypto.d.ts +0 -88
- package/dist/esm/w/messenger/crypto.js +0 -1
- package/dist/esm/w/messenger/index.d.ts +0 -5
- package/dist/esm/w/messenger/index.js +0 -1
- package/dist/esm/w/messenger/messenger-api.d.ts +0 -140
- package/dist/esm/w/messenger/messenger-api.js +0 -1
- package/dist/esm/w/messenger/messenger-manager.d.ts +0 -85
- package/dist/esm/w/messenger/messenger-manager.js +0 -1
- package/dist/esm/w/messenger/messenger.d.ts +0 -92
- package/dist/esm/w/messenger/messenger.js +0 -1
- package/dist/esm/w/messenger/pq/crypto.d.ts +0 -39
- package/dist/esm/w/messenger/pq/crypto.js +0 -1
- package/dist/esm/w/messenger/pq/erasure.d.ts +0 -17
- package/dist/esm/w/messenger/pq/erasure.js +0 -1
- package/dist/esm/w/messenger/pq/index.d.ts +0 -9
- package/dist/esm/w/messenger/pq/index.js +0 -1
- package/dist/esm/w/messenger/pq/keycombiner.d.ts +0 -1
- package/dist/esm/w/messenger/pq/keycombiner.js +0 -1
- package/dist/esm/w/messenger/pq/pqxdh.d.ts +0 -38
- package/dist/esm/w/messenger/pq/pqxdh.js +0 -1
- package/dist/esm/w/messenger/pq/ratchet.d.ts +0 -12
- package/dist/esm/w/messenger/pq/ratchet.js +0 -1
- package/dist/esm/w/messenger/pq/session.d.ts +0 -41
- package/dist/esm/w/messenger/pq/session.js +0 -1
- package/dist/esm/w/messenger/pq/spqr.d.ts +0 -23
- package/dist/esm/w/messenger/pq/spqr.js +0 -1
- package/dist/esm/w/messenger/pq/store-adapter.d.ts +0 -31
- package/dist/esm/w/messenger/pq/store-adapter.js +0 -1
- package/dist/esm/w/messenger/pq/types.d.ts +0 -180
- package/dist/esm/w/messenger/pq/types.js +0 -1
- package/dist/esm/w/messenger/server.d.ts +0 -48
- package/dist/esm/w/messenger/server.js +0 -1
- package/dist/esm/w/messenger/session.d.ts +0 -65
- package/dist/esm/w/messenger/session.js +0 -1
- package/dist/esm/w/messenger/storage.d.ts +0 -110
- package/dist/esm/w/messenger/storage.js +0 -1
- package/dist/esm/w/messenger/templates/wts-html-template.d.ts +0 -30
- package/dist/esm/w/messenger/templates/wts-html-template.js +0 -1
- package/dist/esm/w/messenger/types.d.ts +0 -647
- package/dist/esm/w/messenger/types.js +0 -1
- package/dist/esm/w/messenger/utils.d.ts +0 -1
- package/dist/esm/w/messenger/utils.js +0 -1
- package/dist/esm/w/query/bult-in.d.ts +0 -62
- package/dist/esm/w/query/bult-in.js +0 -1
- package/dist/esm/w/query/event.d.ts +0 -76
- package/dist/esm/w/query/event.js +0 -1
- package/dist/esm/w/query/index.d.ts +0 -5
- package/dist/esm/w/query/index.js +0 -1
- package/dist/esm/w/query/object.d.ts +0 -626
- package/dist/esm/w/query/object.js +0 -1
- package/dist/esm/w/query/received.d.ts +0 -30
- package/dist/esm/w/query/received.js +0 -1
- package/dist/esm/w/query/util.d.ts +0 -4
- package/dist/esm/w/query/util.js +0 -1
- package/dist/esm/w/util.d.ts +0 -16
- package/dist/esm/w/util.js +0 -1
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { Messenger } from "./messenger.js";
|
|
2
|
-
import type { Message, MessageFilter, MessengerConfig, DecryptedMessage, SendMessageResult, ContactLists, ContactListsSyncResult, MessageListResult, ConversationInfo, WtsFileResult, ListOperationResponse, WtsRange, GetSettingsResponse, UpdateSettingsRequest } from "./types.js";
|
|
3
|
-
interface AccountInfo {
|
|
4
|
-
address: string;
|
|
5
|
-
messenger: Messenger;
|
|
6
|
-
initialized: boolean;
|
|
7
|
-
initializing?: Promise<void>;
|
|
8
|
-
contactLists: ContactLists;
|
|
9
|
-
}
|
|
10
|
-
export interface MessengerManagerOptions {
|
|
11
|
-
messengerConfig?: Partial<MessengerConfig>;
|
|
12
|
-
enablePersistence?: boolean;
|
|
13
|
-
instanceId?: string;
|
|
14
|
-
}
|
|
15
|
-
export declare class MessengerManager {
|
|
16
|
-
private accounts;
|
|
17
|
-
private config;
|
|
18
|
-
private messageListeners;
|
|
19
|
-
private isWatching;
|
|
20
|
-
private persistStorage;
|
|
21
|
-
private instanceId;
|
|
22
|
-
private accountRefreshTimer;
|
|
23
|
-
private pollingLockedAccounts;
|
|
24
|
-
constructor(options?: MessengerManagerOptions);
|
|
25
|
-
private findAccount;
|
|
26
|
-
getConfig(): MessengerConfig;
|
|
27
|
-
get_accounts(): string[];
|
|
28
|
-
refresh_accounts(): Promise<void>;
|
|
29
|
-
start(): Promise<void>;
|
|
30
|
-
stop(): void;
|
|
31
|
-
ensureAccountReady(address: string): Promise<AccountInfo>;
|
|
32
|
-
private initializeAccount;
|
|
33
|
-
private doInitialize;
|
|
34
|
-
private add_account_internal;
|
|
35
|
-
private remove_account_internal;
|
|
36
|
-
clear_accounts(): void;
|
|
37
|
-
send(from: string, to: string, content: string, options?: {
|
|
38
|
-
guardAddress?: string;
|
|
39
|
-
passportAddress?: string;
|
|
40
|
-
force?: boolean;
|
|
41
|
-
new_messenger_name?: string;
|
|
42
|
-
}): Promise<SendMessageResult>;
|
|
43
|
-
send_file(from: string, to: string, filePath: string, options?: {
|
|
44
|
-
fileName?: string;
|
|
45
|
-
contentType?: "wts" | "wip" | "zip";
|
|
46
|
-
guardAddress?: string;
|
|
47
|
-
passportAddress?: string;
|
|
48
|
-
force?: boolean;
|
|
49
|
-
new_messenger_name?: string;
|
|
50
|
-
}): Promise<SendMessageResult>;
|
|
51
|
-
watch(filter?: MessageFilter): Promise<Message[]>;
|
|
52
|
-
private startPolling;
|
|
53
|
-
private stopPolling;
|
|
54
|
-
onMessage(listener: (messages: DecryptedMessage[]) => void): void;
|
|
55
|
-
offMessage(listener: (messages: DecryptedMessage[]) => void): void;
|
|
56
|
-
destroy(): void;
|
|
57
|
-
syncContactLists(account: string): Promise<ContactListsSyncResult>;
|
|
58
|
-
syncAllContactLists(): Promise<Map<string, ContactListsSyncResult>>;
|
|
59
|
-
getContactLists(account: string): ContactLists | undefined;
|
|
60
|
-
setContactLists(account: string, lists: Partial<ContactLists>): boolean;
|
|
61
|
-
isStranger(account: string, senderAddress: string): boolean;
|
|
62
|
-
recordGuardSender(account: string, guardAddress: string): boolean;
|
|
63
|
-
private generateNonce;
|
|
64
|
-
watch_paginated(filter?: MessageFilter & {
|
|
65
|
-
account?: string;
|
|
66
|
-
}): Promise<MessageListResult>;
|
|
67
|
-
get_conversations(account?: string): Promise<ConversationInfo[]>;
|
|
68
|
-
generate_wts(outputDir: string, myAccount: string, peerAccount: string, range?: WtsRange, excludePlaintext?: boolean): Promise<WtsFileResult>;
|
|
69
|
-
addToBlacklist(account: string, addresses: string[]): Promise<ListOperationResponse>;
|
|
70
|
-
removeFromBlacklist(account: string, addresses: string[]): Promise<ListOperationResponse>;
|
|
71
|
-
clearBlacklist(account: string): Promise<ListOperationResponse>;
|
|
72
|
-
getBlacklist(account: string): Promise<string[]>;
|
|
73
|
-
existInBlacklist(account: string, addresses: string[]): Promise<ListOperationResponse>;
|
|
74
|
-
addToFriendsList(account: string, addresses: string[]): Promise<ListOperationResponse>;
|
|
75
|
-
removeFromFriendsList(account: string, addresses: string[]): Promise<ListOperationResponse>;
|
|
76
|
-
clearFriendsList(account: string): Promise<ListOperationResponse>;
|
|
77
|
-
getFriendsList(account: string): Promise<string[]>;
|
|
78
|
-
existInFriendsList(account: string, addresses: string[]): Promise<ListOperationResponse>;
|
|
79
|
-
addToGuardList(account: string, guards: any[]): Promise<any>;
|
|
80
|
-
removeFromGuardList(account: string, addresses: string[]): Promise<any>;
|
|
81
|
-
getGuardList(account: string): Promise<any>;
|
|
82
|
-
getSettings(account: string): Promise<GetSettingsResponse>;
|
|
83
|
-
setSettings(account: string, settings: Partial<UpdateSettingsRequest>): Promise<boolean>;
|
|
84
|
-
}
|
|
85
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Messenger}from'./messenger.js';import{MessageStorage}from'./storage.js';import{MessengerPersistStorage}from'./storage.js';import{MessageType,MessageStatus,WTS_MAX_MESSAGE_COUNT,WTS_SCHEMA_URL}from'./types.js';import{MessengerError,MessengerErrorCode,DEFAULT_MESSENGER_CONFIG}from'./types.js';import{canonicalizeJson}from'./utils.js';import{MAX_MESSENGER_ACCOUNTS}from'../local/account.js';import{GetAccountOrMark_Address}from'../local/index.js';const MAX_ACCOUNTS=MAX_MESSENGER_ACCOUNTS,sleep=a=>new Promise(b=>setTimeout(b,a));export class MessengerManager{['accounts']=new Map();['config'];['messageListeners']=new Set();['isWatching']=![];['persistStorage'];['instanceId'];['accountRefreshTimer']=null;['pollingLockedAccounts']=new Set();constructor(a){this['config']={...DEFAULT_MESSENGER_CONFIG,...a?.['messengerConfig']},this['instanceId']=a?.['instanceId']||'default',this['persistStorage']=new MessengerPersistStorage();}['findAccount'](a){return this['accounts']['get'](a['toLowerCase']());}['getConfig'](){return this['config'];}['get_accounts'](){return Array['from'](this['accounts']['values']())['map'](a=>a['address']);}async['refresh_accounts'](){const {Account:a}=await import('../local/account.js'),b=await a['Instance']()['list_messenger_accounts'](),c=new Set(this['accounts']['keys']()),d=new Set(b['map'](e=>e['address']['toLowerCase']()));for(const e of c){!d['has'](e)&&this['remove_account_internal'](e);}for(const f of b){const g=f['address']['toLowerCase']();if(!this['accounts']['has'](g))try{await this['add_account_internal'](f['address']);}catch(h){}}if(this['accounts']['size']>0x0&&!this['isWatching'])this['startPolling']();else this['accounts']['size']===0x0&&this['isWatching']&&this['stopPolling']();await this['syncAllContactLists']();}async['start'](){await this['refresh_accounts']();for(const a of this['accounts']['values']()){if(!a['initialized']||!a['messenger'])continue;const b=this['persistStorage']['tryAcquirePollingLock'](a['address'],this['instanceId']);b&&(this['pollingLockedAccounts']['add'](a['address']['toLowerCase']()),a['messenger']['setOnMessageCallback'](c=>{for(const d of this['messageListeners']){d(c);}}));}!this['isWatching']&&this['startPolling'](),this['accountRefreshTimer']&&clearInterval(this['accountRefreshTimer']),this['accountRefreshTimer']=setInterval(()=>{this['refresh_accounts']()['catch'](c=>{});},this['config']['watch_interval_ms']);}['stop'](){this['accountRefreshTimer']&&(clearInterval(this['accountRefreshTimer']),this['accountRefreshTimer']=null);for(const a of this['pollingLockedAccounts']){this['persistStorage']['releasePollingLock'](a,this['instanceId']);}this['pollingLockedAccounts']['clear'](),this['stopPolling'](),this['clear_accounts']();}async['ensureAccountReady'](a){const b=a['toLowerCase'](),c=this['accounts']['get'](b);if(c?.['initialized'])return c;if(c?.['initializing']){await c['initializing'];const d=this['accounts']['get'](b);if(d?.['initialized'])return d;throw new MessengerError(MessengerErrorCode['SERVER_ERROR'],'Account\x20'+a+'\x20initialization\x20failed');}return this['initializeAccount'](b);}async['initializeAccount'](a){const b=a['toLowerCase']();if(this['accounts']['size']>=MAX_ACCOUNTS)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Maximum\x20'+MAX_ACCOUNTS+'\x20accounts\x20allowed');const c=this['doInitialize'](b),d={'address':b,'messenger':null,'initialized':![],'initializing':c,'contactLists':{'friends':[],'guards':[],'lastUpdatedAt':0x0}};this['accounts']['set'](b,d);try{await c;const e=this['accounts']['get'](b);if(!e||!e['initialized'])throw new MessengerError(MessengerErrorCode['SERVER_ERROR'],'Account\x20'+a+'\x20initialization\x20failed');return e;}catch(f){this['accounts']['delete'](b);throw f;}}async['doInitialize'](a){const b=new Messenger(a,this['config']);try{await b['initialize']();}catch(d){throw new MessengerError(MessengerErrorCode['SERVER_ERROR'],'Failed\x20to\x20initialize\x20account\x20'+a+':\x20'+(d instanceof Error?d['message']:String(d)));}await sleep(0x3e8);const c={'friends':[],'guards':[],'lastUpdatedAt':0x0};this['accounts']['set'](a,{'address':a,'messenger':b,'initialized':!![],'contactLists':c});if(this['isWatching']){const e=this['persistStorage']['tryAcquirePollingLock'](a,this['instanceId']);e&&(this['pollingLockedAccounts']['add'](a),b['setOnMessageCallback'](f=>{for(const g of this['messageListeners']){g(f);}}));}}async['add_account_internal'](a){await this['ensureAccountReady'](a);}['remove_account_internal'](a){const b=a['toLowerCase'](),c=this['accounts']['get'](b);if(!c)return![];return c['initialized']&&c['messenger']&&c['messenger']['disconnect'](),this['persistStorage']['releasePollingLock'](b,this['instanceId']),this['pollingLockedAccounts']['delete'](b),this['accounts']['delete'](b);}['clear_accounts'](){this['stopPolling']();for(const a of this['accounts']['values']()){a['messenger']&&a['messenger']['disconnect']();}this['accounts']['clear']();}async['send'](a,b,c,d){const {Account:e}=await import('../local/account.js'),f=await e['Instance']()['get'](a,![]);if(!f)throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'Account\x20'+a+'\x20not\x20found');if(f['m']==null){if(d?.['new_messenger_name']==null)throw new MessengerError(MessengerErrorCode['ACCOUNT_MESSENGER_NOT_ENABLED'],'Account\x20messenger\x20name\x20not\x20set.\x20Use\x20new_messenger_name\x20parameter\x20to\x20set\x20it\x20automatically.');await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}const g=await this['ensureAccountReady'](a);if(d?.['new_messenger_name']!=null){const h=await e['Instance']()['get'](a,![]);h&&h['m']!==d['new_messenger_name']&&await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}return g['messenger']['sendMessage'](b,c,{'guardAddress':d?.['guardAddress'],'passportAddress':d?.['passportAddress'],'force':d?.['force']});}async['send_file'](a,b,c,d){const {Account:e}=await import('../local/account.js'),f=await e['Instance']()['get'](a,![]);if(!f)throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'Account\x20'+a+'\x20not\x20found');if(f['m']==null){if(d?.['new_messenger_name']==null)throw new MessengerError(MessengerErrorCode['ACCOUNT_MESSENGER_NOT_ENABLED'],'Account\x20messenger\x20name\x20not\x20set.\x20Use\x20new_messenger_name\x20parameter\x20to\x20set\x20it\x20automatically.');await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}const g=await this['ensureAccountReady'](a);if(d?.['new_messenger_name']!=null){const h=await e['Instance']()['get'](a,![]);h&&h['m']!==d['new_messenger_name']&&await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}return g['messenger']['sendZipFile'](b,c,{'fileName':d?.['fileName'],'contentType':d?.['contentType'],'guardAddress':d?.['guardAddress'],'passportAddress':d?.['passportAddress'],'force':d?.['force']});}async['watch'](a){let b=[];if(a?.['account']!==undefined){const i=a['account']['toLowerCase'](),j=this['accounts']['get'](i);j?.['messenger']&&await j['messenger']['pullMessages']();const k=new MessageStorage(i);b=k['getAllMessages'](i);}else for(const l of this['accounts']['values']()){l['messenger']&&await l['messenger']['pullMessages']();const m=new MessageStorage(l['address']),n=m['getAllMessages'](l['address']);b['push'](...n);}if(a){const o=a['peerAddress']?await GetAccountOrMark_Address(a['peerAddress']):undefined;b=b['filter'](p=>{if(a?.['account']!==undefined){const r=a['account']['toLowerCase'](),s=p['fromAddress']['toLowerCase'](),t=p['toAddress']['toLowerCase']();if(s!==r&&t!==r)return![];}if(a['direction']&&p['direction']!==a['direction'])return![];if(a['status']&&p['status']!==a['status'])return![];if(a['msgType']!==undefined&&p['msgType']!==a['msgType'])return![];if(a['contentType'])switch(a['contentType']){case'text':if(p['msgType']!==MessageType['NORMAL_MESSAGE'])return![];break;case'zip':if(!p['zipMetadata'])return![];break;case'wts':if(!p['zipMetadata']||p['zipMetadata']?.['contentType']!=='wts')return![];break;case'wip':if(!p['zipMetadata']||p['zipMetadata']?.['contentType']!=='wip')return![];break;}if(a['peerAddress']&&o){const u=o['toLowerCase'](),v=p['fromAddress']['toLowerCase'](),w=p['toAddress']['toLowerCase']();if(v!==u&&w!==u)return![];}const q=a['timeField']||'createdAt';if(a['startTime']!==undefined||a['endTime']!==undefined){const x=p[q];if(x!==undefined){if(a['startTime']!==undefined&&x<a['startTime'])return![];if(a['endTime']!==undefined&&x>a['endTime'])return![];}}if(a['createdAtStart']!==undefined&&p['createdAt']<a['createdAtStart'])return![];if(a['createdAtEnd']!==undefined&&p['createdAt']>a['createdAtEnd'])return![];if(a['receivedAtStart']!==undefined){if(p['receivedAt']===undefined||p['receivedAt']<a['receivedAtStart'])return![];}if(a['receivedAtEnd']!==undefined){if(p['receivedAt']===undefined||p['receivedAt']>a['receivedAtEnd'])return![];}if(a['serverTimestampStart']!==undefined){if(p['serverTimestamp']===undefined||p['serverTimestamp']<a['serverTimestampStart'])return![];}if(a['serverTimestampEnd']!==undefined){if(p['serverTimestamp']===undefined||p['serverTimestamp']>a['serverTimestampEnd'])return![];}if(a['decryptedOnly']&&!p['plaintext'])return![];if(a['confirmedOnly']&&p['status']!==MessageStatus['CONFIRMED'])return![];if(a['arkConfirmedOnly']){if(!p['arkConfirmed'])return![];}if(a['proofedOnly']){if(!p['proof'])return![];}if(a['arkTimestampStart']!==undefined){if(p['arkConfirmed']===undefined||p['arkConfirmed']['timestamp']<a['arkTimestampStart'])return![];}if(a['arkTimestampEnd']!==undefined){if(p['arkConfirmed']===undefined||p['arkConfirmed']['timestamp']>a['arkTimestampEnd'])return![];}if(a['hasLastReceivedIndexOnly']){if(p['lastReceivedLeafIndex']===undefined||p['lastReceivedLeafIndex']===null)return![];}if(a['lastReceivedIndexMin']!==undefined){if(p['lastReceivedLeafIndex']===undefined||p['lastReceivedLeafIndex']<a['lastReceivedIndexMin'])return![];}if(a['lastReceivedIndexMax']!==undefined){if(p['lastReceivedLeafIndex']===undefined||p['lastReceivedLeafIndex']>a['lastReceivedIndexMax'])return![];}if(a['keyword']&&p['plaintext']){if(!p['plaintext']['toLowerCase']()['includes'](a['keyword']['toLowerCase']()))return![];}if(a['listFilterMode']&&a['listFilterMode']!=='any'){const y=this['findAccount'](p['toAddress']);if(!y)return![];const z=p['fromAddress']['toLowerCase'](),A=y['contactLists'],B=new Set(A['friends']['map'](G=>G['toLowerCase']())),C=new Set(A['guards']['map'](G=>G['guardAddress']['toLowerCase']())),D=B['has'](z),E=C['has'](z),F=!D&&!E;switch(a['listFilterMode']){case'friends':if(!D)return![];break;case'guard':if(!E)return![];break;case'stranger':if(!F)return![];break;}if(a['customListFilter']){const {includeAddresses:G,excludeAddresses:H,relation:relation='union'}=a['customListFilter'];if(H){const I=new Set(H['map'](J=>J['toLowerCase']()));if(I['has'](z))return![];}if(G&&G['length']>0x0){const J=new Set(G['map'](L=>L['toLowerCase']())),K=J['has'](z);if(relation==='union'){const L=a['listFilterMode']==='friends'&&D||a['listFilterMode']==='guard'&&E||a['listFilterMode']==='stranger'&&F;if(!K&&!L)return![];}else{if(!K)return![];}}}}if(a['viewed']!==undefined){const M=p['viewedAt']!==undefined;if(a['viewed']!==M)return![];}if(a['viewedAtStart']!==undefined){if(p['viewedAt']===undefined||p['viewedAt']<a['viewedAtStart'])return![];}if(a['viewedAtEnd']!==undefined){if(p['viewedAt']===undefined||p['viewedAt']>a['viewedAtEnd'])return![];}return!![];});}const c=a?.['sortOrder']??'desc',d=a?.['timeField']||'createdAt';b['sort']((p,q)=>{const r=p[d]||0x0,s=q[d]||0x0;return c==='asc'?r-s:s-r;});const {MAX_QUERY_LIMIT:e}=await import('./types.js'),f=this['config']['defaultQueryLimit']??0x32,g=Math['min'](a?.['limit']??f,e),h=a?.['offset']??0x0;return b=b['slice'](h,h+g),b;}['startPolling'](){if(this['isWatching'])return;this['isWatching']=!![];}['stopPolling'](){this['isWatching']=![];}['onMessage'](a){this['messageListeners']['add'](a);}['offMessage'](a){this['messageListeners']['delete'](a);}['destroy'](){this['stop'](),this['messageListeners']['clear']();}async['syncContactLists'](a){const b=this['findAccount'](a);if(!b)return{'success':![],'friends':[],'guards':[],'error':'Account\x20not\x20found:\x20'+a};try{const [c,d]=await Promise['all']([b['messenger']['getFriendsList'](),b['messenger']['getGuardList']()]),e=d['currentGuardList']||[];return b['contactLists']={'friends':c,'guards':e,'lastUpdatedAt':Date['now']()},{'success':!![],'friends':c,'guards':e};}catch(f){return{'success':![],'friends':b['contactLists']['friends'],'guards':b['contactLists']['guards'],'error':f instanceof Error?f['message']:String(f)};}}async['syncAllContactLists'](){const a=new Map();for(const b of this['accounts']['values']()){const c=await this['syncContactLists'](b['address']);a['set'](b['address'],c);}return a;}['getContactLists'](a){const b=this['findAccount'](a);return b?.['contactLists'];}['setContactLists'](a,b){const c=this['findAccount'](a);if(!c)return![];return c['contactLists']={...c['contactLists'],...b,'lastUpdatedAt':Date['now']()},!![];}['isStranger'](a,b){const c=this['findAccount'](a);if(!c)return!![];const d=b['toLowerCase'](),e=c['contactLists'],f=e['friends']['some'](h=>h['toLowerCase']()===d),g=e['guards']['some'](h=>h['guardAddress']['toLowerCase']()===d);return!f&&!g;}['recordGuardSender'](a,b){const c=this['findAccount'](a);if(!c)return![];const d=b['toLowerCase'](),e=c['contactLists']['guards']['some'](f=>f['guardAddress']['toLowerCase']()===d);return!e&&(c['contactLists']['guards']['push']({'guardAddress':b,'passportValiditySeconds':0x15180}),c['contactLists']['lastUpdatedAt']=Date['now']()),!![];}['generateNonce'](){return Math['random']()['toString'](0x24)['substring'](0x2,0xf)+Math['random']()['toString'](0x24)['substring'](0x2,0xf);}async['watch_paginated'](a){const {MAX_QUERY_LIMIT:b}=await import('./types.js'),c=await this['watch'](a),d=c['length'],e=this['config']['defaultQueryLimit']??0x32,f=Math['min'](a?.['limit']??e,b),g=a?.['offset']??0x0,h=c['slice'](g,g+f);return{'messages':h,'total':d,'offset':g,'limit':f};}async['get_conversations'](a){const b=a?{'account':a}:undefined,c=await this['watch'](b),d=new Map();for(const e of c){const f=a?.['toLowerCase'](),g=e['fromAddress']['toLowerCase']()===f?e['toAddress']:e['fromAddress'];!d['has'](g)&&d['set'](g,{'peerAddress':g,'lastMessageAt':e['createdAt'],'messageCount':0x0,'unreadCount':0x0,'lastMessagePreview':e['plaintext']});const h=d['get'](g);h['messageCount']++,e['createdAt']>h['lastMessageAt']&&(h['lastMessageAt']=e['createdAt'],h['lastMessagePreview']=e['plaintext']),e['status']!==MessageStatus['READ']&&e['toAddress']['toLowerCase']()===f&&h['unreadCount']++;}return Array['from'](d['values']())['sort']((i,j)=>j['lastMessageAt']-i['lastMessageAt']);}async['generate_wts'](a,b,c,d,e){const f=await import('fs'),g=await import('path'),h=b['toLowerCase'](),k=c['toLowerCase'](),l=new MessageStorage(h),m=l['getAllMessages'](h);let n=m['filter'](w=>{const x=w['fromAddress']['toLowerCase'](),y=w['toAddress']['toLowerCase'](),z=x===h&&y===k||x===k&&y===h;return z;});n=n['filter'](w=>w['leafIndex']!==undefined&&w['serverTimestamp']!==undefined)['reduce']((w,x)=>{const y=w['find'](z=>z['messageId']===x['messageId']);return!y&&w['push'](x),w;},[])['sort']((w,x)=>{const y=w['serverTimestamp']-x['serverTimestamp'];if(y!==0x0)return y;return w['leafIndex']-x['leafIndex'];});if(d)switch(d['type']){case'time':{const w=Math['min'](d['start'],d['end']),x=Math['max'](d['start'],d['end']);n=n['filter'](y=>y['createdAt']>=w&&y['createdAt']<=x);break;}case'messageId':{const y=d['start'],z=d['end'];n=n['filter'](A=>A['messageId']>=y&&A['messageId']<=z);break;}case'seqIndex':{const A=Math['min'](d['start'],d['end']),B=Math['max'](d['start'],d['end']);n=n['filter'](C=>C['leafIndex']>=A&&C['leafIndex']<=B);break;}}if(n['length']===0x0)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'No\x20messages\x20found\x20for\x20the\x20given\x20criteria');const o=n['map'](C=>C['leafIndex'])['filter'](C=>C!==undefined)['sort']((C,D)=>C-D),p=[];for(let C=0x1;C<o['length'];C++){const D=o[C-0x1]+0x1,E=o[C];if(E!==D)for(let F=D;F<E;F++){p['push'](F);}}if(p['length']>0x0){}if(n['length']>WTS_MAX_MESSAGE_COUNT)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20count\x20('+n['length']+')\x20exceeds\x20maximum\x20allowed\x20('+WTS_MAX_MESSAGE_COUNT+')');!f['existsSync'](a)&&f['mkdirSync'](a,{'recursive':!![]});const q=h['slice'](0x0,0x6)+'_'+k['slice'](0x0,0x6),r=[];let s=[];for(let G=0x0;G<n['length'];G++){const H=n[G];if(s['length']===0x0)s['push'](H);else{const I=s[s['length']-0x1],J=I['leafIndex']+0x1;s['length']>=WTS_MAX_MESSAGE_COUNT||H['leafIndex']!==J?(r['push'](s),s=[H]):s['push'](H);}}s['length']>0x0&&r['push'](s);r['forEach']((K,L)=>{const M=K['map'](N=>N['leafIndex'])['join'](',\x20');});const t=[];for(const K of r){const L=K['map'](a4=>a4['leafIndex'])['filter'](a4=>a4!==undefined),M=Math['min'](...L),N=Math['max'](...L),O=K[0x0]['createdAt'],P=K[K['length']-0x1]['createdAt'];for(const a4 of K){if(a4['serverTimestamp']===undefined)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a4['messageId']+'\x20missing\x20serverTimestamp');if(a4['leafIndex']===undefined)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a4['messageId']+'\x20missing\x20leafIndex');if(!a4['prevRoot'])throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a4['messageId']+'\x20missing\x20prevRoot');if(!a4['newRoot'])throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a4['messageId']+'\x20missing\x20newRoot');if(!a4['serverSignature'])throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a4['messageId']+'\x20missing\x20serverSignature');}const Q=K['map'](a5=>{const a6={'id':a5['messageId'],'from':a5['fromAddress'],'to':a5['toAddress'],'plaintextHash':a5['plaintextHash'],'clientTimestamp':a5['createdAt'],'timestamp':a5['serverTimestamp'],'leafIndex':a5['leafIndex'],'prevRoot':a5['prevRoot'],'merkleRoot':a5['newRoot'],'serverSignature':a5['serverSignature'],'serverPublicKeyIndex':0x0,'msgType':a5['msgType']};return!e&&a5['plaintext']!==undefined&&(a6['plaintext']=a5['plaintext']),a5['guardAddress']!==undefined&&(a6['guardAddress']=a5['guardAddress']),a5['passportAddress']!==undefined&&(a6['passportAddress']=a5['passportAddress']),a5['arkConfirmed']!==undefined&&(a6['arkConfirmed']={'recipient':a5['arkConfirmed']['recipient'],'recipientPublicKey':a5['arkConfirmed']['recipientPublicKey'],'signature':a5['arkConfirmed']['signature'],'timestamp':a5['arkConfirmed']['timestamp']}),a5['zipMetadata']!==undefined&&(a6['zipMetadata']=a5['zipMetadata']),a5['lastReceivedLeafIndex']!==undefined&&a5['lastReceivedLeafIndex']!==-0x1&&(a6['lastReceivedLeafIndex']=a5['lastReceivedLeafIndex']),a6;}),R=[h,k]['sort'](),S={'participants':R},T=[],U=new Map();for(const a5 of Q){const a6=K['find'](a8=>a8['messageId']===a5['id'])?.['serverPublicKey']||'';if(!a6)continue;let a7=U['get'](a6);a7===undefined&&(a7=T['length'],U['set'](a6,a7),T['push']({'publicKey':a6,'validFrom':0x0})),a5['serverPublicKeyIndex']=a7;}const V={'session':S,'messages':Q},{sha256:W}=await import('@noble/hashes/sha256'),{bytesToHex:X}=await import('@noble/hashes/utils'),Y={'wts':WTS_SCHEMA_URL,...V},Z=X(W(new TextEncoder()['encode'](canonicalizeJson(Y)))),a0={'type':'wts','version':'1.0','created':new Date()['toISOString'](),'hash':Z,'algorithm':'sha256','startTime':O,'endTime':P,'messageCount':Q['length'],'merkleRoot':Q[Q['length']-0x1]['merkleRoot'],'creator':h,'participant':k,'serverPublicKeys':T},a1={'wts':WTS_SCHEMA_URL,'payload':V,'meta':a0},a2=q+'_'+M+'-'+N+'.wts',a3=g['join'](a,a2);f['writeFileSync'](a3,JSON['stringify'](a1,null,0x2)),t['push'](a3);}const u=n[0x0]?.['createdAt']||0x0,v=n[n['length']-0x1]?.['createdAt']||0x0;return{'files':t,'totalMessageCount':n['length'],'timeRange':{'start':u,'end':v}};}async['addToBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToBlacklist'](b);}async['removeFromBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromBlacklist'](b);}async['clearBlacklist'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['clearBlacklist']();}async['getBlacklist'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getBlacklist']();}async['existInBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['existInBlacklist'](b);}async['addToFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToFriendsList'](b);}async['removeFromFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromFriendsList'](b);}async['clearFriendsList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['clearFriendsList']();}async['getFriendsList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getFriendsList']();}async['existInFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['existInFriendsList'](b);}async['addToGuardList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToGuardList'](b);}async['removeFromGuardList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromGuardList'](b);}async['getGuardList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getGuardList']();}async['getSettings'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getSettings']();}async['setSettings'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['setSettings'](b);}}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import type { CallEnv } from "../common.js";
|
|
2
|
-
import type { MessengerConfig, Message, SendMessageResult, DecryptedMessage, ZipContentType, ListOperationResponse, GuardListItem, PreKeyStatus, GetSettingsResponse, UpdateSettingsRequest } from "./types.js";
|
|
3
|
-
export declare class Messenger {
|
|
4
|
-
private session;
|
|
5
|
-
private serverClient;
|
|
6
|
-
private config;
|
|
7
|
-
private userAddress;
|
|
8
|
-
private onMessageCallback;
|
|
9
|
-
private pollingTimer;
|
|
10
|
-
private messageConsecutiveEmptyPulls;
|
|
11
|
-
private prekeyConsecutiveOkCount;
|
|
12
|
-
private currentMessageInterval;
|
|
13
|
-
private isPollingRunning;
|
|
14
|
-
private messageStorage;
|
|
15
|
-
private sessionStateStorage;
|
|
16
|
-
private decryptionEngine;
|
|
17
|
-
private waitingMessages;
|
|
18
|
-
private failedMessages;
|
|
19
|
-
private waitingMessageRetries;
|
|
20
|
-
constructor(userAddress: string, config?: Partial<MessengerConfig>);
|
|
21
|
-
getUserAddress(): string;
|
|
22
|
-
getPublicKey(): Promise<string>;
|
|
23
|
-
isValidGuardMessage(guardAddress: string | null | undefined, passportAddress: string | null | undefined): boolean;
|
|
24
|
-
private generateSignatureParams;
|
|
25
|
-
private generateNonce;
|
|
26
|
-
initialize(): Promise<void>;
|
|
27
|
-
private checkAndRefillPrekeys;
|
|
28
|
-
private startPollingTimer;
|
|
29
|
-
private stopPollingTimer;
|
|
30
|
-
private scheduleNextPoll;
|
|
31
|
-
private getNextPollInterval;
|
|
32
|
-
private poll;
|
|
33
|
-
private triggerFastPoll;
|
|
34
|
-
sendMessage(recipientAddress: string, plaintext: string, options?: {
|
|
35
|
-
guardAddress?: string;
|
|
36
|
-
passportAddress?: string;
|
|
37
|
-
force?: boolean;
|
|
38
|
-
}): Promise<SendMessageResult>;
|
|
39
|
-
pullMessages(limit?: number): Promise<{
|
|
40
|
-
messages: DecryptedMessage[];
|
|
41
|
-
prekey_status?: PreKeyStatus;
|
|
42
|
-
}>;
|
|
43
|
-
private getLastSentLeafIndex;
|
|
44
|
-
getSessionMessages(peerAddress: string): Message[];
|
|
45
|
-
getSessionState(peerAddress: string): import("./types.js").SessionState;
|
|
46
|
-
submitChainProof(env: CallEnv, peerAddress: string, description?: string): Promise<{
|
|
47
|
-
proofAddress: string;
|
|
48
|
-
txHash: string;
|
|
49
|
-
}>;
|
|
50
|
-
destroy(): void;
|
|
51
|
-
disconnect(): void;
|
|
52
|
-
setOnMessageCallback(onMessage: (messages: DecryptedMessage[]) => void): void;
|
|
53
|
-
sendZipFile(recipientAddress: string, source: string, options?: {
|
|
54
|
-
fileName?: string;
|
|
55
|
-
contentType?: ZipContentType;
|
|
56
|
-
guardAddress?: string;
|
|
57
|
-
passportAddress?: string;
|
|
58
|
-
force?: boolean;
|
|
59
|
-
}): Promise<SendMessageResult>;
|
|
60
|
-
private loadFileData;
|
|
61
|
-
private detectContentType;
|
|
62
|
-
private _createSignedRequest;
|
|
63
|
-
private _validateAddresses;
|
|
64
|
-
addToBlacklist(addresses: string[]): Promise<ListOperationResponse>;
|
|
65
|
-
removeFromBlacklist(addresses: string[]): Promise<ListOperationResponse>;
|
|
66
|
-
clearBlacklist(): Promise<ListOperationResponse>;
|
|
67
|
-
getBlacklist(): Promise<string[]>;
|
|
68
|
-
existInBlacklist(addresses: string[]): Promise<ListOperationResponse>;
|
|
69
|
-
addToFriendsList(addresses: string[]): Promise<ListOperationResponse>;
|
|
70
|
-
removeFromFriendsList(addresses: string[]): Promise<ListOperationResponse>;
|
|
71
|
-
clearFriendsList(): Promise<ListOperationResponse>;
|
|
72
|
-
getFriendsList(): Promise<string[]>;
|
|
73
|
-
existInFriendsList(addresses: string[]): Promise<ListOperationResponse>;
|
|
74
|
-
addToGuardList(guards: GuardListItem[]): Promise<ListOperationResponse>;
|
|
75
|
-
removeFromGuardList(addresses: string[]): Promise<ListOperationResponse>;
|
|
76
|
-
getGuardList(): Promise<ListOperationResponse>;
|
|
77
|
-
getSettings(): Promise<GetSettingsResponse>;
|
|
78
|
-
setSettings(settings: Partial<UpdateSettingsRequest>): Promise<boolean>;
|
|
79
|
-
private tryDecryptMessage;
|
|
80
|
-
private isRetryableError;
|
|
81
|
-
private processWaitingMessages;
|
|
82
|
-
private saveFailedMessage;
|
|
83
|
-
private reschedulePolling;
|
|
84
|
-
getFailedMessages(): Array<{
|
|
85
|
-
messageId: string;
|
|
86
|
-
from: string;
|
|
87
|
-
error: string;
|
|
88
|
-
leafIndex?: number;
|
|
89
|
-
}>;
|
|
90
|
-
clearFailedMessages(messageId?: string): void;
|
|
91
|
-
getWaitingMessageCount(): number;
|
|
92
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createHash}from'crypto';import*as a184a from'fs';import*as a184b from'path';import{MessengerSession,DecryptionEngine}from'./session.js';import{MessengerServerClient}from'./server.js';import{MessageStorage,SessionStateStorage}from'./storage.js';import{hashPlaintext,verifyMessage,bytesToBase64}from'./crypto.js';import{canonicalizeJson}from'./utils.js';import{DEFAULT_MESSENGER_CONFIG,MessengerError,MessengerErrorCode,MessageDirection,MessageStatus,WTS_FILE_BYTES_LIMIT,NORMAL_MESSAGE_BYTES_LIMIT,CHAIN_PROOF_TYPE}from'./types.js';import{isValidWowAddress}from'../../utils/wow-types.js';async function getAccount(){const {Account:a}=await import('../local/account.js');return a['Instance']();}export class Messenger{['session'];['serverClient'];['config'];['userAddress']=null;['onMessageCallback']=null;['pollingTimer']=null;['messageConsecutiveEmptyPulls']=0x0;['prekeyConsecutiveOkCount']=0x0;['currentMessageInterval'];['isPollingRunning']=![];['messageStorage'];['sessionStateStorage'];['decryptionEngine'];['waitingMessages']=new Map();['failedMessages']=new Map();['waitingMessageRetries']=new Map();constructor(a,b){this['userAddress']=a,this['config']={...DEFAULT_MESSENGER_CONFIG,...b},this['session']=new MessengerSession(a,this['config']),this['serverClient']=new MessengerServerClient(this['config']),this['messageStorage']=new MessageStorage(a),this['sessionStateStorage']=new SessionStateStorage(a),this['decryptionEngine']=new DecryptionEngine(this['session']['store']),this['currentMessageInterval']=this['config']['message_poll_default_interval_ms']??0x6*0x3c*0x3e8;}['getUserAddress'](){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');return this['userAddress'];}async['getPublicKey'](){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const a=await(await getAccount())['get'](this['userAddress'],![]);return a?.['pubkey']||'';}['isValidGuardMessage'](a,b){return Boolean(a&&b&&isValidWowAddress(a)&&isValidWowAddress(b));}async['generateSignatureParams'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const b=await(await getAccount())['get'](this['userAddress'],![]);if(!b?.['secret'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'Account\x20not\x20found\x20or\x20no\x20secret\x20key\x20for\x20'+this['userAddress']);const {Falcon512Keypair:c}=await import('../../keypairs/falcon512/index.js'),d=c['fromSecretKey'](b['secret']),e=d['getPublicKey'](),f=e['toWPublicKey'](),g=Date['now'](),h=this['generateNonce'](),i=a+':'+f+':'+g+':'+h,j=await d['sign'](new TextEncoder()['encode'](i));return{'signatureScheme':'Falcon512','signature':Buffer['from'](j)['toString']('base64'),'timestamp':g,'nonce':h};}['generateNonce'](){const a=new Uint8Array(0x10);return crypto['getRandomValues'](a),Array['from'](a,c=>c['toString'](0x10)['padStart'](0x2,'0'))['join']('');}async['initialize'](){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');await this['session']['ensureIdentity'](this['userAddress']),await this['session']['registerDevice'](this['userAddress']),await this['session']['ensurePreKeys'](this['userAddress']),await this['checkAndRefillPrekeys'](),this['startPollingTimer']();}async['checkAndRefillPrekeys'](){if(!this['userAddress'])return;await this['session']['ensurePreKeys'](this['userAddress'],![]);}['startPollingTimer'](){this['pollingTimer']&&clearTimeout(this['pollingTimer']),this['isPollingRunning']=!![],this['scheduleNextPoll']();}['stopPollingTimer'](){this['isPollingRunning']=![],this['pollingTimer']&&(clearTimeout(this['pollingTimer']),this['pollingTimer']=null);}['scheduleNextPoll'](){if(!this['isPollingRunning'])return;const a=this['getNextPollInterval']();this['pollingTimer']=setTimeout(()=>{this['poll']()['catch'](b=>{})['finally'](()=>{this['scheduleNextPoll']();});},a);}['getNextPollInterval'](){if(this['waitingMessages']['size']>0x0)return this['config']['message_poll_waiting_interval_ms']??0x3*0x3e8;return this['currentMessageInterval'];}async['poll'](){if(!this['userAddress'])return;try{const a=await this['pullMessages']();a['messages']['length']>0x0?(this['messageConsecutiveEmptyPulls']=0x0,this['currentMessageInterval']=this['config']['message_poll_fast_interval_ms']??0x6*0x3e8,this['onMessageCallback']&&this['onMessageCallback'](a['messages'])):(this['messageConsecutiveEmptyPulls']++,this['messageConsecutiveEmptyPulls']>=(this['config']['message_poll_consecutive_empty_limit']??0x3)&&(this['currentMessageInterval']=this['config']['message_poll_default_interval_ms']??0x6*0x3c*0x3e8,this['messageConsecutiveEmptyPulls']=0x0));if(a['prekey_status']){const b=a['prekey_status'];b['shouldRefill']?(this['prekeyConsecutiveOkCount']=0x0,await this['checkAndRefillPrekeys']()):(this['prekeyConsecutiveOkCount']++,this['prekeyConsecutiveOkCount']>=(this['config']['prekey_poll_consecutive_ok_limit']??0x3)&&(this['prekeyConsecutiveOkCount']=0x0));}}catch(c){}}['triggerFastPoll'](){this['currentMessageInterval']=this['config']['message_poll_fast_interval_ms']??0x6*0x3e8,this['messageConsecutiveEmptyPulls']=0x0,this['isPollingRunning']&&(this['pollingTimer']&&clearTimeout(this['pollingTimer']),this['scheduleNextPoll']());}async['sendMessage'](a,b,c){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const d=Date['now'](),e=Date['now'](),f=this['generateNonce'](),g=new TextEncoder()['encode'](b)['length'];if(g>NORMAL_MESSAGE_BYTES_LIMIT)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20size\x20('+g+'\x20bytes)\x20exceeds\x20maximum\x20allowed\x20size\x20('+NORMAL_MESSAGE_BYTES_LIMIT+'\x20bytes).\x20Consider\x20using\x20sendZipFile\x20for\x20large\x20content.');await this['pullMessages']();const h=this['messageStorage']['getLastReceivedLeafIndex'](this['userAddress'],a),i=await this['session']['encryptMessage'](this['userAddress'],a,b),j=Buffer['from'](new Uint8Array(i['body']))['toString']('base64'),k=hashPlaintext(b,d,c?.['guardAddress'],c?.['passportAddress'],h),l=await(await getAccount())['get'](this['userAddress'],![]);if(!l)throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20account\x20not\x20found');const m=l['pubkey'],n=c?.['guardAddress']||'',o=c?.['passportAddress']||'',p=h>=0x0?h['toString']():'',q=c?.['force']?'true':'false',r='send_message:'+this['userAddress']+':'+a+':'+n+':'+o+':'+k+':'+p+':'+m+':'+e+':'+f+':'+q,s=await(await getAccount())['signData'](this['userAddress'],r),t=Buffer['from'](s['signature']['slice'](0x2),'hex'),u=bytesToBase64(new Uint8Array(t)),v=await this['serverClient']['sendMessage']({'sender':s['publicKey'],'recipient':a,'ciphertext':j,'plaintextHash':k,'clientTimestamp':d,'msgType':i['type'],'signatureScheme':'Falcon512','signature':u,'timestamp':e,'nonce':f,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'force':c?.['force'],'lastReceivedLeafIndex':h>=0x0?h:undefined}),w={'messageId':v['messageId'],'fromAddress':this['userAddress'],'toAddress':a,'plaintextHash':k,'plaintext':b,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'lastReceivedLeafIndex':h,'direction':MessageDirection['SENT'],'status':v['status']==='confirmed'?MessageStatus['CONFIRMED']:MessageStatus['PENDING'],'msgType':i['type'],'createdAt':d};v['merkleData']&&(w['leafIndex']=v['merkleData']['leafIndex'],w['prevRoot']=v['merkleData']['prevRoot'],w['newRoot']=v['merkleData']['newRoot'],w['serverSignature']=v['merkleData']['serverSignature'],w['serverTimestamp']=v['merkleData']['serverTimestamp'],w['serverPublicKey']=v['merkleData']['serverPublicKey'],this['sessionStateStorage']['updateSessionState'](this['userAddress'],a,{'currentRoot':v['merkleData']['newRoot'],'prevRoot':v['merkleData']['prevRoot'],'lastLeafIndex':v['merkleData']['leafIndex'],'lastSyncAt':Date['now']()}));this['messageStorage']['saveMessage'](w);if(v['pendingMerkleData'])for(const [x,y]of Object['entries'](v['pendingMerkleData'])){const z=this['messageStorage']['getMessage'](x);z&&z['status']===MessageStatus['PENDING']&&this['messageStorage']['updateMessageStatus'](x,MessageStatus['CONFIRMED'],{'leafIndex':y['leafIndex'],'newRoot':y['newRoot'],'serverSignature':y['serverSignature'],'serverTimestamp':y['serverTimestamp'],'serverPublicKey':y['serverPublicKey']});}return this['triggerFastPoll'](),{'messageId':v['messageId'],'status':w['status'],'merkleData':v['merkleData'],'guardList':v['guard_list'],'lastReceivedLeafIndex':h>=0x0?h:undefined};}async['pullMessages'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const b=Date['now'](),c=this['generateNonce'](),d='fetch_messages:'+this['userAddress']+':'+(a||0x64)+':'+b+':'+c,e=await(await getAccount())['get'](this['userAddress'],![]),f=e?.['pubkey']||'',g=await(await getAccount())['signData'](this['userAddress'],d),h=Buffer['from'](g['signature']['slice'](0x2),'hex'),i={'signatureScheme':'Falcon512','signature':bytesToBase64(h),'timestamp':b,'nonce':c},j=await this['serverClient']['pullMessages'](this['userAddress'],f,i,a);if(j['messages']['length']===0x0)return{'messages':[],'prekey_status':j['prekey_status']};const k=[],l=[],m=[...j['messages']]['sort'](function(n,o){return(n['clientTimestamp']||0x0)-(o['clientTimestamp']||0x0);});await this['processWaitingMessages'](k,l);for(const n of m){if(this['waitingMessages']['has'](n['id'])){l['push'](n['id']);continue;}if(this['failedMessages']['has'](n['id'])){l['push'](n['id']);continue;}const o=this['messageStorage']['getMessage'](n['id']);if(o){l['push'](n['id']);continue;}const p=await this['tryDecryptMessage'](n);if(p['success']&&p['message']&&p['decryptedData'])this['messageStorage']['saveMessage'](p['message']),k['push'](p['decryptedData']),l['push'](n['id']),this['waitingMessages']['delete'](n['id']);else p['shouldRetry']?this['waitingMessages']['set'](n['id'],n):(this['failedMessages']['set'](n['id'],{'message':n,'error':p['error']||'Unknown\x20error'}),await this['saveFailedMessage'](n,p['error']||'Unknown\x20error'),l['push'](n['id']));}this['waitingMessages']['size']>0x0&&this['isPollingRunning']&&this['reschedulePolling']();if(l['length']>0x0&&this['userAddress']){const q=Date['now'](),r=this['generateNonce'](),s=await(await getAccount())['get'](this['userAddress'],![]);if(s?.['pubkey']){const t='ack_messages:'+this['userAddress']+':'+l['join'](',')+':'+s['pubkey']+':'+q+':'+r,u=await(await getAccount())['signData'](this['userAddress'],t),v=Buffer['from'](u['signature']['slice'](0x2),'hex'),w=bytesToBase64(new Uint8Array(v));await this['serverClient']['acknowledgeMessages'](l,u['publicKey'],{'publicKey':u['publicKey'],'signatureScheme':'Falcon512','signature':w,'timestamp':q,'nonce':r});}}return{'messages':k,'prekey_status':j['prekey_status']};}['getLastSentLeafIndex'](a){if(!this['userAddress'])return-0x1;const b=this['messageStorage']['getMessagesBySession'](this['userAddress'],a),c=b['filter'](d=>d['direction']===MessageDirection['SENT']&&d['leafIndex']!==undefined);if(c['length']===0x0)return-0x1;return Math['max'](...c['map'](d=>d['leafIndex']));}['getSessionMessages'](a){if(!this['userAddress'])return[];return this['messageStorage']['getMessagesBySession'](this['userAddress'],a);}['getSessionState'](a){if(!this['userAddress'])return undefined;return this['sessionStateStorage']['getSessionState'](this['userAddress'],a);}async['submitChainProof'](a,b,c){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const d=this['sessionStateStorage']['getSessionState'](this['userAddress'],b);if(!d||!d['currentRoot'])throw new MessengerError(MessengerErrorCode['SESSION_NOT_ESTABLISHED'],'No\x20session\x20state\x20found');const e=this['messageStorage']['getMessagesBySession'](this['userAddress'],b),f=e[e['length']-0x1];if(!f||!f['serverPublicKey']||!f['serverSignature'])throw new MessengerError(MessengerErrorCode['INVALID_PROOF'],'No\x20temporal\x20proof\x20(missing\x20server\x20public\x20key\x20or\x20signature),\x20cannot\x20submit\x20Proof\x20to\x20WoWok\x20blockchain');const g=f['serverPublicKey'],h=f['serverSignature'],i={'sessionId':d['sessionId'],'merkleRoot':d['currentRoot'],'messageCount':d['messageCount'],'timestamp':Date['now']()},{CallProof:j}=await import('../call/proof.js'),k=new j({'proof':JSON['stringify'](i),'server_pubkey':g,'server_signature':h,'proof_type':CHAIN_PROOF_TYPE,'description':c||'Messenger\x20session\x20proof\x20for\x20'+this['userAddress']+'\x20<->\x20'+b,'item_count':d['messageCount'],'about_address':d['sessionId']}),l=await k['call'](a),m=l?.['objectChanges'],n=m?.['find'](o=>o['objectType']?.['includes']('Proof'))?.['objectId'];return{'proofAddress':n||'','txHash':l?.['digest']||''};}['destroy'](){this['stopPollingTimer']();}['disconnect'](){this['destroy']();}['setOnMessageCallback'](a){this['onMessageCallback']=a;}async['sendZipFile'](a,b,c){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const d=await this['loadFileData'](b),{ZipWriter:e,BlobWriter:f,Uint8ArrayReader:g}=await import('@zip.js/zip.js'),h=c?.['fileName']||a184b['basename'](b)||'file.zip',i=c?.['contentType']||this['detectContentType'](h),j=new f('application/zip'),k=new e(j);await k['add'](h,new g(d)),await k['close']();const l=await j['getData'](),m=new Uint8Array(await l['arrayBuffer']());if(m['length']>WTS_FILE_BYTES_LIMIT)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'ZIP\x20file\x20size\x20('+m['length']+'\x20bytes)\x20exceeds\x20local\x20maximum\x20allowed\x20size\x20('+WTS_FILE_BYTES_LIMIT+'\x20bytes)');const n='0x'+createHash('sha256')['update'](m)['digest']('hex'),o=Buffer['from'](m)['toString']('base64'),p={'fileName':h+'.zip','fileSize':m['length'],'fileHash':n,'contentType':i};await this['pullMessages']();const q=this['messageStorage']['getLastReceivedLeafIndex'](this['userAddress'],a),r=Date['now'](),s=await this['session']['encryptMessage'](this['userAddress'],a,o),t=Buffer['from'](new Uint8Array(s['body']))['toString']('base64'),u=c?.['guardAddress']||'',v=c?.['passportAddress']||'',w=hashPlaintext(o,r,u,v,q),x=Date['now'](),y=this['generateNonce'](),z=await(await getAccount())['get'](this['userAddress'],![]);if(!z)throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20account\x20not\x20found');const A=z['pubkey'],B=q>=0x0?q['toString']():'',C=c?.['force']?'true':'false',D='send_message:'+this['userAddress']+':'+a+':'+u+':'+v+':'+w+':'+B+':'+A+':'+x+':'+y+':'+C,E=await(await getAccount())['signData'](this['userAddress'],D),F=Buffer['from'](E['signature']['slice'](0x2),'hex'),G=bytesToBase64(new Uint8Array(F)),H=await this['serverClient']['sendMessage']({'sender':E['publicKey'],'recipient':a,'ciphertext':t,'plaintextHash':w,'clientTimestamp':r,'msgType':s['type'],'zipMetadata':p,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'force':c?.['force'],'lastReceivedLeafIndex':q>=0x0?q:undefined,'signatureScheme':'Falcon512','signature':G,'timestamp':x,'nonce':y}),I={'messageId':H['messageId'],'fromAddress':this['userAddress'],'toAddress':a,'plaintextHash':w,'plaintext':o,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'lastReceivedLeafIndex':q,'direction':MessageDirection['SENT'],'status':H['status']==='confirmed'?MessageStatus['CONFIRMED']:MessageStatus['PENDING'],'msgType':s['type'],'zipMetadata':p,'createdAt':r};H['merkleData']&&(I['leafIndex']=H['merkleData']['leafIndex'],I['prevRoot']=H['merkleData']['prevRoot'],I['newRoot']=H['merkleData']['newRoot'],I['serverSignature']=H['merkleData']['serverSignature'],I['serverTimestamp']=H['merkleData']['serverTimestamp'],I['serverPublicKey']=H['merkleData']['serverPublicKey'],this['sessionStateStorage']['updateSessionState'](this['userAddress'],a,{'currentRoot':H['merkleData']['newRoot'],'prevRoot':H['merkleData']['prevRoot'],'lastLeafIndex':H['merkleData']['leafIndex'],'lastSyncAt':Date['now']()}));this['messageStorage']['saveMessage'](I);if(H['pendingMerkleData'])for(const [J,K]of Object['entries'](H['pendingMerkleData'])){const L=this['messageStorage']['getMessage'](J);L&&L['status']===MessageStatus['PENDING']&&this['messageStorage']['updateMessageStatus'](J,MessageStatus['CONFIRMED'],{'leafIndex':K['leafIndex'],'newRoot':K['newRoot'],'serverSignature':K['serverSignature'],'serverTimestamp':K['serverTimestamp'],'serverPublicKey':K['serverPublicKey']});}return this['triggerFastPoll'](),{'messageId':H['messageId'],'status':I['status'],'merkleData':H['merkleData'],'guardList':H['guard_list'],'lastReceivedLeafIndex':q>=0x0?q:undefined};}async['loadFileData'](a){if(a['startsWith']('http://')||a['startsWith']('https://')){const d=await fetch(a);if(!d['ok'])throw new MessengerError(MessengerErrorCode['NETWORK_ERROR'],'Failed\x20to\x20fetch\x20file\x20from\x20'+a+':\x20'+d['statusText']);const e=await d['arrayBuffer']();return new Uint8Array(e);}const b=a184b['resolve'](a);if(!a184a['existsSync'](b))throw new MessengerError(MessengerErrorCode['FILE_NOT_FOUND'],'File\x20not\x20found:\x20'+b);const c=a184a['readFileSync'](b);return new Uint8Array(c);}['detectContentType'](a){const b=a184b['extname'](a)['toLowerCase']();switch(b){case'.wts':return'wts';case'.wip':return'wip';default:return'zip';}}async['_createSignedRequest'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const b=Date['now'](),c=this['generateNonce'](),d=canonicalizeJson(a),e=b+':'+c+':'+d,f=await(await getAccount())['signData'](this['userAddress'],e),g=Buffer['from'](f['signature']['slice'](0x2),'hex'),h=bytesToBase64(new Uint8Array(g)),i=await(await getAccount())['get'](this['userAddress'],![]);if(!i||!i['pubkey'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'Account\x20public\x20key\x20not\x20found');return{'userAddress':this['userAddress'],'publicKey':i['pubkey'],'signatureScheme':'Falcon512','signature':h,'timestamp':b,'nonce':c,'data':a};}['_validateAddresses'](a){const b=[],c=[];for(const d of a){isValidWowAddress(d)?b['push'](d):c['push'](d);}return{'valid':b,'invalid':c};}async['addToBlacklist'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'add','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['addToBlacklist'](this['userAddress'],e);}async['removeFromBlacklist'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'remove','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['removeFromBlacklist'](this['userAddress'],e);}async['clearBlacklist'](){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const a={},b=await this['_createSignedRequest'](a);return this['serverClient']['clearBlacklist'](this['userAddress'],b);}async['getBlacklist'](){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getBlacklist'](this['userAddress'],a);}async['existInBlacklist'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'exist','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['existInBlacklist'](this['userAddress'],e);}async['addToFriendsList'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'add','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['addToFriendsList'](this['userAddress'],e);}async['removeFromFriendsList'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'remove','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['removeFromFriendsList'](this['userAddress'],e);}async['clearFriendsList'](){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const a={},b=await this['_createSignedRequest'](a);return this['serverClient']['clearFriendsList'](this['userAddress'],b);}async['getFriendsList'](){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getFriendsList'](this['userAddress'],a);}async['existInFriendsList'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'exist','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['existInFriendsList'](this['userAddress'],e);}async['addToGuardList'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const b={'guards':a},c=await this['_createSignedRequest'](b);return this['serverClient']['addToGuardList'](this['userAddress'],c);}async['removeFromGuardList'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'remove','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['removeFromGuardList'](this['userAddress'],e);}async['getGuardList'](){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getGuardList'](this['userAddress'],a);}async['getSettings'](){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getSettings'](this['userAddress'],a);}async['setSettings'](a){if(!this['userAddress'])throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'User\x20address\x20not\x20set');const b={'allowStrangerMessages':a['allowStrangerMessages'],'maxInboxSize':a['maxInboxSize']},c=await this['_createSignedRequest'](b);return this['serverClient']['updateSettings'](this['userAddress'],c);}async['tryDecryptMessage'](a){try{const b=Uint8Array['from'](Buffer['from'](a['bodyB64'],'base64')),c=await this['decryptionEngine']['decryptMessage'](this['userAddress'],a['from'],b['buffer'],a['msgType']);if(!c['success']){const h=this['isRetryableError'](c['error']||'');return{'success':![],'shouldRetry':h,'error':c['error'],'sessionUpdated':c['sessionUpdated']};}const d=c['plaintext'];if(!a['clientTimestamp'])throw new Error('Missing\x20clientTimestamp\x20for\x20message\x20'+a['id']);if(!a['plaintextHash'])throw new Error('Missing\x20plaintextHash\x20for\x20message\x20'+a['id']);const e=verifyMessage({'messageId':a['id'],'plaintext':d,'plaintextHash':a['plaintextHash'],'createdAt':a['clientTimestamp'],'guardAddress':a['guardAddress'],'passportAddress':a['passportAddress'],'lastReceivedLeafIndex':a['lastReceivedLeafIndex'],'serverSignature':a['merkleMetadata']?.['serverSignature'],'serverPublicKey':a['merkleMetadata']?.['serverPublicKey'],'merkleMetadata':a['merkleMetadata']?{'prevRoot':a['merkleMetadata']['prevRoot'],'newRoot':a['merkleMetadata']['newRoot'],'serverTimestamp':a['merkleMetadata']['serverTimestamp'],'leafIndex':a['merkleMetadata']['leafIndex'],'proofSiblings':a['merkleMetadata']['proofSiblings'],'proofIndices':a['merkleMetadata']['proofIndices']}:undefined});if(!e['valid'])throw new Error(e['error']);const f={'messageId':a['id'],'fromAddress':a['from'],'toAddress':this['userAddress'],'plaintextHash':a['plaintextHash'],'plaintext':d,'guardAddress':a['guardAddress'],'passportAddress':a['passportAddress'],'lastReceivedLeafIndex':a['lastReceivedLeafIndex'],'direction':MessageDirection['RECEIVED'],'status':MessageStatus['DECRYPTED'],'msgType':a['msgType'],'leafIndex':a['merkleMetadata']?.['leafIndex'],'prevRoot':a['merkleMetadata']?.['prevRoot'],'newRoot':a['merkleMetadata']?.['newRoot'],'serverSignature':a['merkleMetadata']?.['serverSignature'],'serverTimestamp':a['merkleMetadata']?.['serverTimestamp'],'serverPublicKey':a['merkleMetadata']?.['serverPublicKey'],'createdAt':a['clientTimestamp'],'receivedAt':Date['now'](),'zipMetadata':a['zipMetadata']};a['merkleMetadata']&&this['sessionStateStorage']['updateSessionState'](this['userAddress'],a['from'],{'currentRoot':a['merkleMetadata']['newRoot'],'prevRoot':a['merkleMetadata']['prevRoot'],'lastLeafIndex':a['merkleMetadata']['leafIndex'],'lastSyncAt':Date['now']()});const g=a['merkleMetadata']?.['serverTimestamp']||a['clientTimestamp']||Date['now']();if(a['lastReceivedLeafIndex']!==undefined&&a['lastReceivedLeafIndex']>=0x0){const i=this['messageStorage']['getMessagesBySession'](this['userAddress'],a['from'])['filter'](j=>j['direction']===MessageDirection['SENT']&&j['status']===MessageStatus['CONFIRMED']&&j['leafIndex']!==undefined&&j['leafIndex']<=a['lastReceivedLeafIndex']);for(const j of i){this['messageStorage']['updateMessageStatus'](j['messageId'],MessageStatus['READ']);}}return{'success':!![],'shouldRetry':![],'message':f,'decryptedData':{'id':a['id'],'from':a['from'],'plaintext':d,'timestamp':g,'merkleVerified':!!a['merkleMetadata'],'merkleData':a['merkleMetadata']?{'leafIndex':a['merkleMetadata']['leafIndex'],'rootHash':a['merkleMetadata']['newRoot']}:undefined},'sessionUpdated':c['sessionUpdated']};}catch(k){const l=k instanceof Error?k['message']:String(k),m=this['isRetryableError'](l);return{'success':![],'shouldRetry':m,'error':l};}}['isRetryableError'](a){const b=[/message number/i,/chain key/i,/session not found/i,/prekey not found/i,/PREKEY 竞争:我的地址较小,保留我的会话/i,/The operation failed for an operation-specific reason/i,/DOMException/i,/收到 WHISPER_MESSAGE 但无现有会话,需要等待 PREKEY_MESSAGE/i];return b['some'](c=>c['test'](a));}async['processWaitingMessages'](a,b){if(this['waitingMessages']['size']===0x0)return;const c=[],d=Array['from'](this['waitingMessages']['values']())['sort'](function(e,f){return(e['clientTimestamp']||0x0)-(f['clientTimestamp']||0x0);});for(const e of d){const f=e['id'],g=await this['tryDecryptMessage'](e);if(g['success']&&g['message']&&g['decryptedData'])this['messageStorage']['saveMessage'](g['message']),a['push'](g['decryptedData']),b['push'](f),c['push'](f),this['waitingMessageRetries']['delete'](f);else{if(!g['shouldRetry'])this['failedMessages']['set'](f,{'message':e,'error':g['error']||'Unknown\x20error'}),await this['saveFailedMessage'](e,g['error']||'Unknown\x20error'),b['push'](f),c['push'](f),this['waitingMessageRetries']['delete'](f);else{const h=this['waitingMessageRetries']['get'](f)||0x0,i=h+0x1;i>=0x3?(this['failedMessages']['set'](f,{'message':e,'error':g['error']||'Retry\x20limit\x20exceeded'}),await this['saveFailedMessage'](e,g['error']||'Retry\x20limit\x20exceeded'),b['push'](f),c['push'](f),this['waitingMessageRetries']['delete'](f)):this['waitingMessageRetries']['set'](f,i);}}}for(const j of c){this['waitingMessages']['delete'](j);}if(c['length']>0x0){}}async['saveFailedMessage'](a,b){const c={'messageId':a['id'],'fromAddress':a['from'],'toAddress':this['userAddress'],'plaintextHash':a['plaintextHash']||'','guardAddress':a['guardAddress'],'passportAddress':a['passportAddress'],'lastReceivedLeafIndex':a['lastReceivedLeafIndex'],'direction':MessageDirection['RECEIVED'],'status':MessageStatus['DECRYPT_FAILED'],'msgType':a['msgType'],'leafIndex':a['merkleMetadata']?.['leafIndex'],'prevRoot':a['merkleMetadata']?.['prevRoot'],'newRoot':a['merkleMetadata']?.['newRoot'],'serverSignature':a['merkleMetadata']?.['serverSignature'],'serverTimestamp':a['merkleMetadata']?.['serverTimestamp'],'serverPublicKey':a['merkleMetadata']?.['serverPublicKey'],'createdAt':a['clientTimestamp']||Date['now'](),'receivedAt':Date['now'](),'zipMetadata':a['zipMetadata'],'decryptError':b,'decryptAttempts':0x1,'lastDecryptAttemptAt':Date['now']()};this['messageStorage']['saveMessage'](c);}['reschedulePolling'](){if(!this['isPollingRunning']||!this['pollingTimer'])return;clearTimeout(this['pollingTimer']),this['pollingTimer']=null,this['scheduleNextPoll']();}['getFailedMessages'](){return Array['from'](this['failedMessages']['entries']())['map'](([a,b])=>({'messageId':a,'from':b['message']['from'],'error':b['error'],'leafIndex':b['message']['merkleMetadata']?.['leafIndex']}));}['clearFailedMessages'](a){a?this['failedMessages']['delete'](a):this['failedMessages']['clear']();}['getWaitingMessageCount'](){return this['waitingMessages']['size'];}}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { X25519KeyPair, Falcon512KeyPair, MLKEMKeyPair } from "./types.js";
|
|
2
|
-
export declare function generateRandomBytes(length: number): Uint8Array;
|
|
3
|
-
export declare function generateX25519KeyPair(): X25519KeyPair;
|
|
4
|
-
export declare function x25519DH(privateKey: Uint8Array, publicKey: Uint8Array): Uint8Array;
|
|
5
|
-
export declare function generateFalcon512KeyPair(): Falcon512KeyPair;
|
|
6
|
-
export declare function falcon512Sign(privateKey: Uint8Array, message: Uint8Array): Uint8Array;
|
|
7
|
-
export declare function falcon512Verify(publicKey: Uint8Array, message: Uint8Array, signature: Uint8Array): boolean;
|
|
8
|
-
export declare function generateMLKEMKeyPair(): MLKEMKeyPair;
|
|
9
|
-
export declare function mlkemEncapsulate(publicKey: Uint8Array): {
|
|
10
|
-
ciphertext: Uint8Array;
|
|
11
|
-
sharedSecret: Uint8Array;
|
|
12
|
-
};
|
|
13
|
-
export declare function mlkemDecapsulate(ciphertext: Uint8Array, secretKey: Uint8Array): Uint8Array;
|
|
14
|
-
export declare function hkdfDerive(inputKeyMaterial: Uint8Array, info: Uint8Array, length: number, salt?: Uint8Array): Uint8Array;
|
|
15
|
-
export declare function hkdfChainKey(chainKey: Uint8Array, dhOutput: Uint8Array): {
|
|
16
|
-
rootKey: Uint8Array;
|
|
17
|
-
chainKey: Uint8Array;
|
|
18
|
-
};
|
|
19
|
-
export declare function hkdfMessageKey(chainKey: Uint8Array): {
|
|
20
|
-
messageKey: Uint8Array;
|
|
21
|
-
nextChainKey: Uint8Array;
|
|
22
|
-
};
|
|
23
|
-
export declare function hmacSha256(key: Uint8Array, data: Uint8Array): Uint8Array;
|
|
24
|
-
export declare function aesGcmEncrypt(key: Uint8Array, plaintext: Uint8Array, associatedData: Uint8Array): {
|
|
25
|
-
ciphertext: Uint8Array;
|
|
26
|
-
iv: Uint8Array;
|
|
27
|
-
tag: Uint8Array;
|
|
28
|
-
};
|
|
29
|
-
export declare function aesGcmDecrypt(key: Uint8Array, ciphertext: Uint8Array, iv: Uint8Array, tag: Uint8Array, associatedData: Uint8Array): Uint8Array;
|
|
30
|
-
export declare function sha256Hash(data: Uint8Array): Uint8Array;
|
|
31
|
-
export declare function constantTimeEqual(a: Uint8Array, b: Uint8Array): boolean;
|
|
32
|
-
export declare function bytesToBase64(bytes: Uint8Array): string;
|
|
33
|
-
export declare function base64ToBytes(base64: string): Uint8Array;
|
|
34
|
-
export declare function bytesToHex(bytes: Uint8Array): string;
|
|
35
|
-
export declare function hexToBytes(hex: string): Uint8Array;
|
|
36
|
-
export declare function concatBytes(...arrays: Uint8Array[]): Uint8Array;
|
|
37
|
-
export declare function deriveRegistrationId(publicKey: Uint8Array): number;
|
|
38
|
-
export declare function generateX25519BindingSignature(falcon512PrivateKey: Uint8Array, x25519PublicKey: Uint8Array): Uint8Array;
|
|
39
|
-
export declare function verifyX25519BindingSignature(falcon512PublicKey: Uint8Array, x25519PublicKey: Uint8Array, signature: Uint8Array): boolean;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{x25519}from'@noble/curves/ed25519';import{falcon512padded}from'@noble/post-quantum/falcon.js';import{sha256}from'@noble/hashes/sha256';import{hmac}from'@noble/hashes/hmac';import{hkdf}from'@noble/hashes/hkdf';import{randomBytes}from'@noble/hashes/utils';import{ml_kem768}from'@noble/post-quantum/ml-kem.js';import a185a from'node:crypto';import{ROOT_KEY_SIZE,CHAIN_KEY_SIZE,MESSAGE_KEY_SIZE,DH_KEY_SIZE,AES_GCM_IV_SIZE}from'./types.js';export function generateRandomBytes(a){return randomBytes(a);}export function generateX25519KeyPair(){const a=randomBytes(DH_KEY_SIZE),b=x25519['getPublicKey'](a);return{'publicKey':b,'privateKey':a};}export function x25519DH(a,b){return x25519['getSharedSecret'](a,b);}export function generateFalcon512KeyPair(){const {publicKey:a,secretKey:b}=falcon512padded['keygen']();return{'publicKey':a,'privateKey':b};}export function falcon512Sign(a,b){return falcon512padded['sign'](b,a);}export function falcon512Verify(a,b,c){try{return falcon512padded['verify'](c,b,a);}catch{return![];}}export function generateMLKEMKeyPair(){const {publicKey:a,secretKey:b}=ml_kem768['keygen']();return{'publicKey':a,'secretKey':b};}export function mlkemEncapsulate(a){const {cipherText:b,sharedSecret:c}=ml_kem768['encapsulate'](a);return{'ciphertext':b,'sharedSecret':c};}export function mlkemDecapsulate(a,b){return ml_kem768['decapsulate'](a,b);}export function hkdfDerive(a,b,c,d){return hkdf(sha256,a,d||new Uint8Array(0x0),b,c);}export function hkdfChainKey(a,b){const c=new Uint8Array(a['length']+b['length']);c['set'](a),c['set'](b,a['length']);const d=hkdfDerive(c,new TextEncoder()['encode']('WowokPQChainKey'),ROOT_KEY_SIZE+CHAIN_KEY_SIZE);return{'rootKey':d['slice'](0x0,ROOT_KEY_SIZE),'chainKey':d['slice'](ROOT_KEY_SIZE,ROOT_KEY_SIZE+CHAIN_KEY_SIZE)};}export function hkdfMessageKey(a){const b=hkdfDerive(a,new TextEncoder()['encode']('WowokPQMessageKey'),MESSAGE_KEY_SIZE+CHAIN_KEY_SIZE);return{'messageKey':b['slice'](0x0,MESSAGE_KEY_SIZE),'nextChainKey':b['slice'](MESSAGE_KEY_SIZE,MESSAGE_KEY_SIZE+CHAIN_KEY_SIZE)};}export function hmacSha256(a,b){return hmac(sha256,a,b);}export function aesGcmEncrypt(a,b,c){const d=randomBytes(AES_GCM_IV_SIZE),e=Buffer['from'](a),f=Buffer['from'](d),g=Buffer['from'](b),h=Buffer['from'](c),i=a185a['createCipheriv']('aes-256-gcm',e,f);i['setAAD'](h);const j=Buffer['concat']([i['update'](g),i['final']()]),k=i['getAuthTag']();return{'ciphertext':new Uint8Array(j),'iv':d,'tag':new Uint8Array(k)};}export function aesGcmDecrypt(a,b,c,d,e){const f=Buffer['from'](a),g=Buffer['from'](c),h=Buffer['from'](b),i=Buffer['from'](d),j=Buffer['from'](e),k=a185a['createDecipheriv']('aes-256-gcm',f,g);k['setAAD'](j),k['setAuthTag'](i);const l=Buffer['concat']([k['update'](h),k['final']()]);return new Uint8Array(l);}export function sha256Hash(a){return sha256(a);}export function constantTimeEqual(c,d){if(c['length']!==d['length'])return![];let e=0x0;for(let f=0x0;f<c['length'];f++){e|=c[f]^d[f];}return e===0x0;}export function bytesToBase64(a){return Buffer['from'](a)['toString']('base64');}export function base64ToBytes(a){return new Uint8Array(Buffer['from'](a,'base64'));}export function bytesToHex(a){return Buffer['from'](a)['toString']('hex');}export function hexToBytes(a){return new Uint8Array(Buffer['from'](a,'hex'));}export function concatBytes(...a){const b=a['reduce']((e,f)=>e+f['length'],0x0),c=new Uint8Array(b);let d=0x0;for(const e of a){c['set'](e,d),d+=e['length'];}return c;}export function deriveRegistrationId(a){const b=(a[0x0]<<0x8|a[0x1])>>>0x0;return b===0x0?0x1:b;}export function generateX25519BindingSignature(a,b){return falcon512Sign(a,b);}export function verifyX25519BindingSignature(a,b,c){return falcon512Verify(a,b,c);}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
declare const DATA_SHARDS = 28;
|
|
2
|
-
declare const PARITY_SHARDS = 28;
|
|
3
|
-
declare const TOTAL_SHARDS = 56;
|
|
4
|
-
declare const SHARD_DATA_SIZE = 44;
|
|
5
|
-
declare const SHARD_HEADER_SIZE = 8;
|
|
6
|
-
declare const SHARD_SIZE: number;
|
|
7
|
-
export declare function encodeShards(data: Uint8Array): Uint8Array[];
|
|
8
|
-
export declare function decodeShards(availableShards: Map<number, Uint8Array>, totalShards: number): Uint8Array;
|
|
9
|
-
export interface SPQRChunkData {
|
|
10
|
-
cycleId: number;
|
|
11
|
-
chunkIndex: number;
|
|
12
|
-
totalChunks: number;
|
|
13
|
-
data: Uint8Array;
|
|
14
|
-
}
|
|
15
|
-
export declare function packChunk(chunk: SPQRChunkData): Uint8Array;
|
|
16
|
-
export declare function unpackChunk(packed: Uint8Array): SPQRChunkData;
|
|
17
|
-
export { DATA_SHARDS, PARITY_SHARDS, TOTAL_SHARDS, SHARD_DATA_SIZE, SHARD_HEADER_SIZE, SHARD_SIZE, };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{PQError,PQErrorCode}from'./types.js';const DATA_SHARDS=0x1c,PARITY_SHARDS=0x1c,TOTAL_SHARDS=0x38,SHARD_DATA_SIZE=0x2c,SHARD_HEADER_SIZE=0x8,SHARD_SIZE=SHARD_DATA_SIZE+SHARD_HEADER_SIZE,EXP_TABLE=new Array(0x200),LOG_TABLE=new Array(0x100);function initGFTables(){if(EXP_TABLE[0x0]!==undefined)return;let a=0x1;for(let b=0x0;b<0xff;b++){EXP_TABLE[b]=a,EXP_TABLE[b+0xff]=a,LOG_TABLE[a]=b,a<<=0x1,a&0x100&&(a^=0x11d);}LOG_TABLE[0x0]=0x0;}function gfMul(c,d){if(c===0x0||d===0x0)return 0x0;return initGFTables(),EXP_TABLE[(LOG_TABLE[c]+LOG_TABLE[d])%0xff];}function gfDiv(c,d){if(c===0x0)return 0x0;if(d===0x0)throw new PQError(PQErrorCode['ERASURE_ERROR'],'Division\x20by\x20zero');initGFTables();const e=(LOG_TABLE[c]-LOG_TABLE[d]+0xff)%0xff;return EXP_TABLE[e];}function buildVandermondeMatrix(a,b,c=0x0){const d=[];for(let e=0x0;e<a;e++){d[e]=[];for(let f=0x0;f<b;f++){d[e][f]=gfPow(c+e,f);}}return d;}function buildEncodingMatrix(a,b){const c=[];for(let f=0x0;f<b;f++){c[f]=new Array(b)['fill'](0x0),c[f][f]=0x1;}const d=a-b,e=buildVandermondeMatrix(d,b,b);for(let g=0x0;g<d;g++){c[b+g]=e[g];}return c;}function gfPow(a,b){if(b===0x0)return 0x1;if(a===0x0)return 0x0;let c=0x1;for(let d=0x0;d<b;d++){c=gfMul(c,a);}return c;}function matrixInvert(a){const b=a['length'],c=[];for(let e=0x0;e<b;e++){c[e]=[...a[e]];for(let f=0x0;f<b;f++){c[e]['push'](e===f?0x1:0x0);}}for(let g=0x0;g<b;g++){let h=g;while(h<b&&c[h][g]===0x0){h++;}if(h===b)throw new PQError(PQErrorCode['ERASURE_ERROR'],'Matrix\x20is\x20singular');h!==g&&([c[g],c[h]]=[c[h],c[g]]);const k=gfDiv(0x1,c[g][g]);for(let l=0x0;l<0x2*b;l++){c[g][l]=gfMul(c[g][l],k);}for(let m=0x0;m<b;m++){if(m!==g){const o=c[m][g];if(o!==0x0)for(let p=0x0;p<0x2*b;p++){c[m][p]^=gfMul(o,c[g][p]);}}}}const d=[];for(let q=0x0;q<b;q++){d[q]=c[q]['slice'](b);}return d;}export function encodeShards(a){const b=DATA_SHARDS*SHARD_DATA_SIZE;if(a['length']>b)throw new PQError(PQErrorCode['ERASURE_ERROR'],'Data\x20too\x20large:\x20'+a['length']+'\x20>\x20'+b);const c=new Uint8Array(b);c['set'](a);const d=[];for(let f=0x0;f<DATA_SHARDS;f++){d[f]=c['slice'](f*SHARD_DATA_SIZE,(f+0x1)*SHARD_DATA_SIZE);}const e=buildVandermondeMatrix(PARITY_SHARDS,DATA_SHARDS,DATA_SHARDS);for(let g=0x0;g<PARITY_SHARDS;g++){const h=new Uint8Array(SHARD_DATA_SIZE);for(let l=0x0;l<SHARD_DATA_SIZE;l++){let m=0x0;for(let n=0x0;n<DATA_SHARDS;n++){m^=gfMul(e[g][n],d[n][l]);}h[l]=m;}d[DATA_SHARDS+g]=h;}return d;}export function decodeShards(a,b){const c=Array['from'](a['keys']())['sort']((l,m)=>l-m);if(c['length']<DATA_SHARDS)throw new PQError(PQErrorCode['ERASURE_ERROR'],'Need\x20at\x20least\x20'+DATA_SHARDS+'\x20shards,\x20got\x20'+c['length']);const d=c['slice'](0x0,DATA_SHARDS),e=buildEncodingMatrix(b,DATA_SHARDS),f=[];for(const l of d){f['push'](e[l]);}const g=matrixInvert(f),h=new Uint8Array(DATA_SHARDS*SHARD_DATA_SIZE);for(let m=0x0;m<DATA_SHARDS;m++){for(let n=0x0;n<SHARD_DATA_SIZE;n++){let o=0x0;for(let p=0x0;p<DATA_SHARDS;p++){const q=a['get'](d[p]);o^=gfMul(g[m][p],q[n]);}h[m*SHARD_DATA_SIZE+n]=o;}}return h;}export function packChunk(a){const b=new Uint8Array(SHARD_SIZE),c=new DataView(b['buffer']);return c['setUint32'](0x0,a['cycleId'],![]),c['setUint16'](0x4,a['chunkIndex'],![]),c['setUint16'](0x6,a['totalChunks'],![]),b['set'](a['data']['slice'](0x0,SHARD_DATA_SIZE),SHARD_HEADER_SIZE),b;}export function unpackChunk(a){if(a['length']<SHARD_SIZE)throw new PQError(PQErrorCode['ERASURE_ERROR'],'Chunk\x20too\x20small:\x20'+a['length']+'\x20<\x20'+SHARD_SIZE);const b=new DataView(a['buffer'],a['byteOffset'],a['byteLength']),c=b['getUint32'](0x0,![]),d=b['getUint16'](0x4,![]),e=b['getUint16'](0x6,![]),f=a['slice'](SHARD_HEADER_SIZE,SHARD_HEADER_SIZE+SHARD_DATA_SIZE);return{'cycleId':c,'chunkIndex':d,'totalChunks':e,'data':f};}export{DATA_SHARDS,PARITY_SHARDS,TOTAL_SHARDS,SHARD_DATA_SIZE,SHARD_HEADER_SIZE,SHARD_SIZE};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from "./types.js";
|
|
2
|
-
export * from "./crypto.js";
|
|
3
|
-
export * from "./pqxdh.js";
|
|
4
|
-
export * from "./ratchet.js";
|
|
5
|
-
export * from "./erasure.js";
|
|
6
|
-
export * from "./spqr.js";
|
|
7
|
-
export * from "./keycombiner.js";
|
|
8
|
-
export * from "./session.js";
|
|
9
|
-
export * from "./store-adapter.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export*from'./types.js';export*from'./crypto.js';export*from'./pqxdh.js';export*from'./ratchet.js';export*from'./erasure.js';export*from'./spqr.js';export*from'./keycombiner.js';export*from'./session.js';export*from'./store-adapter.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function combineKeys(dhMessageKey: Uint8Array, spqrKey: Uint8Array): Uint8Array;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{hkdfDerive,concatBytes}from'./crypto.js';import{MESSAGE_KEY_SIZE}from'./types.js';export function combineKeys(a,b){return hkdfDerive(concatBytes(a,b),new TextEncoder()['encode']('WowokPQCombinedKey'),MESSAGE_KEY_SIZE);}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { X25519KeyPair, MLKEMKeyPair, PQPreKeyBundle, PQXDHResult } from "./types.js";
|
|
2
|
-
export interface PQXDHInitiateResult {
|
|
3
|
-
result: PQXDHResult;
|
|
4
|
-
initialMessage: {
|
|
5
|
-
ephemeralPublicKey: Uint8Array;
|
|
6
|
-
mlkemCiphertext: Uint8Array;
|
|
7
|
-
identityKey: Uint8Array;
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
export declare function pqxdhInitiate(ourIdentityKeyPair: X25519KeyPair, peerBundle: PQPreKeyBundle): PQXDHInitiateResult;
|
|
11
|
-
export declare function pqxdhReceive(ourIdentityKeyPair: X25519KeyPair, ourSignedPreKeyPair: X25519KeyPair, ourOneTimePreKeyPair: X25519KeyPair | null, ourPQPreKeyPair: MLKEMKeyPair, peerEphemeralPublicKey: Uint8Array, peerIdentityKey: Uint8Array, mlkemCiphertext: Uint8Array): PQXDHResult;
|
|
12
|
-
export interface GeneratedPreKeyBundle {
|
|
13
|
-
identityKeyPair: X25519KeyPair;
|
|
14
|
-
falcon512KeyPair: {
|
|
15
|
-
publicKey: Uint8Array;
|
|
16
|
-
privateKey: Uint8Array;
|
|
17
|
-
};
|
|
18
|
-
registrationId: number;
|
|
19
|
-
signedPreKey: {
|
|
20
|
-
keyId: number;
|
|
21
|
-
keyPair: X25519KeyPair;
|
|
22
|
-
signature: Uint8Array;
|
|
23
|
-
};
|
|
24
|
-
oneTimePreKeys: Array<{
|
|
25
|
-
keyId: number;
|
|
26
|
-
keyPair: X25519KeyPair;
|
|
27
|
-
}>;
|
|
28
|
-
pqPreKey: {
|
|
29
|
-
keyId: number;
|
|
30
|
-
keyPair: MLKEMKeyPair;
|
|
31
|
-
signature: Uint8Array;
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export declare function generatePreKeyBundle(identityKeyPair: X25519KeyPair, falcon512KeyPair: {
|
|
35
|
-
publicKey: Uint8Array;
|
|
36
|
-
privateKey: Uint8Array;
|
|
37
|
-
}, signedPreKeyId: number, pqPreKeyId: number, oneTimePreKeyCount: number): GeneratedPreKeyBundle;
|
|
38
|
-
export declare function verifyPreKeyBundle(bundle: PQPreKeyBundle): boolean;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{generateX25519KeyPair,x25519DH,falcon512Sign,falcon512Verify,generateMLKEMKeyPair,mlkemEncapsulate,mlkemDecapsulate,hkdfDerive,concatBytes,deriveRegistrationId}from'./crypto.js';import{ROOT_KEY_SIZE,CHAIN_KEY_SIZE}from'./types.js';export function pqxdhInitiate(a,b){const c=generateX25519KeyPair(),d=x25519DH(c['privateKey'],b['identityKey']),e=x25519DH(a['privateKey'],b['signedPreKey']['publicKey']),f=x25519DH(c['privateKey'],b['signedPreKey']['publicKey']),{ciphertext:g,sharedSecret:h}=mlkemEncapsulate(b['pqPreKey']['publicKey']);let i;if(b['oneTimePreKey']){const m=x25519DH(c['privateKey'],b['oneTimePreKey']['publicKey']);i=concatBytes(d,e,f,m,h);}else i=concatBytes(d,e,f,h);const j=concatBytes(new TextEncoder()['encode']('WowokPQXDH'),a['publicKey'],b['identityKey']),k=hkdfDerive(i,j,ROOT_KEY_SIZE+CHAIN_KEY_SIZE),l={'rootKey':k['slice'](0x0,ROOT_KEY_SIZE),'chainKey':k['slice'](ROOT_KEY_SIZE,ROOT_KEY_SIZE+CHAIN_KEY_SIZE),'ourDHKeyPair':c,'peerDHPublicKey':b['signedPreKey']['publicKey'],'peerIdentityKey':b['identityKey'],'pqSharedSecret':h};return{'result':l,'initialMessage':{'ephemeralPublicKey':c['publicKey'],'mlkemCiphertext':g,'identityKey':a['publicKey']}};}export function pqxdhReceive(a,b,c,d,e,f,g){const h=x25519DH(a['privateKey'],e),i=x25519DH(b['privateKey'],f),j=x25519DH(b['privateKey'],e),k=mlkemDecapsulate(g,d['secretKey']);let l;if(c){const o=x25519DH(c['privateKey'],e);l=concatBytes(h,i,j,o,k);}else l=concatBytes(h,i,j,k);const m=concatBytes(new TextEncoder()['encode']('WowokPQXDH'),f,a['publicKey']),n=hkdfDerive(l,m,ROOT_KEY_SIZE+CHAIN_KEY_SIZE);return{'rootKey':n['slice'](0x0,ROOT_KEY_SIZE),'chainKey':n['slice'](ROOT_KEY_SIZE,ROOT_KEY_SIZE+CHAIN_KEY_SIZE),'ourDHKeyPair':b,'peerDHPublicKey':e,'peerIdentityKey':f,'pqSharedSecret':k};}export function generatePreKeyBundle(a,b,c,d,e){const f=deriveRegistrationId(a['publicKey']),g=generateX25519KeyPair(),h=falcon512Sign(b['privateKey'],g['publicKey']),j=[];for(let m=0x0;m<e;m++){j['push']({'keyId':m+0x1,'keyPair':generateX25519KeyPair()});}const k=generateMLKEMKeyPair(),l=falcon512Sign(b['privateKey'],k['publicKey']);return{'identityKeyPair':a,'falcon512KeyPair':b,'registrationId':f,'signedPreKey':{'keyId':c,'keyPair':g,'signature':h},'oneTimePreKeys':j,'pqPreKey':{'keyId':d,'keyPair':k,'signature':l}};}export function verifyPreKeyBundle(a){if(!a['falcon512PublicKey']||a['falcon512PublicKey']['length']!==0x381)return![];if(!a['signedPreKey'])return![];const b=falcon512Verify(a['falcon512PublicKey'],a['signedPreKey']['publicKey'],a['signedPreKey']['signature']);if(!b)return![];if(!a['pqPreKey'])return![];const c=falcon512Verify(a['falcon512PublicKey'],a['pqPreKey']['publicKey'],a['pqPreKey']['signature']);if(!c)return![];return!![];}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { RatchetState, X25519KeyPair, EncryptedMessage, SerializedRatchetState } from "./types.js";
|
|
2
|
-
export declare function initRatchet(rootKey: Uint8Array, sendingChainKey: Uint8Array, receivingChainKey: Uint8Array, ourDHKeyPair: X25519KeyPair, peerDHPublicKey: Uint8Array): RatchetState;
|
|
3
|
-
export declare function ratchetEncrypt(state: RatchetState, plaintext: Uint8Array): {
|
|
4
|
-
message: EncryptedMessage;
|
|
5
|
-
newState: RatchetState;
|
|
6
|
-
};
|
|
7
|
-
export declare function ratchetDecrypt(state: RatchetState, messageBody: Uint8Array): {
|
|
8
|
-
plaintext: Uint8Array;
|
|
9
|
-
newState: RatchetState;
|
|
10
|
-
};
|
|
11
|
-
export declare function serializeRatchetState(state: RatchetState): SerializedRatchetState;
|
|
12
|
-
export declare function deserializeRatchetState(serialized: SerializedRatchetState): RatchetState;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{generateX25519KeyPair,x25519DH,hkdfChainKey,hkdfMessageKey,aesGcmEncrypt,aesGcmDecrypt,concatBytes}from'./crypto.js';import{MessageType,PQError,PQErrorCode}from'./types.js';function encodeHeader(a){const b=new Uint8Array(0x20+0x4+0x4);b['set'](a['dhPublicKey'],0x0);const c=new DataView(b['buffer']);return c['setUint32'](0x20,a['previousSendingCount'],![]),c['setUint32'](0x24,a['messageCount'],![]),b;}function decodeHeader(a){const b=a['slice'](0x0,0x20),c=new DataView(a['buffer'],a['byteOffset'],a['byteLength']),d=c['getUint32'](0x20,![]),e=c['getUint32'](0x24,![]);return{'dhPublicKey':b,'previousSendingCount':d,'messageCount':e};}function makeSkipKey(a,b){const c=new Uint8Array(a['length']+0x4);return c['set'](a,0x0),new DataView(c['buffer'])['setUint32'](a['length'],b,![]),Buffer['from'](c)['toString']('base64');}export function initRatchet(a,b,c,d,e){return{'rootKey':a,'sendingChainKey':b,'sendingMessageCount':0x0,'receivingChainKey':c,'receivingMessageCount':0x0,'ourDHKeyPair':d,'peerDHPublicKey':e,'previousSendingCount':0x0,'skipMessageKeys':new Map()};}export function ratchetEncrypt(a,b){const c=cloneRatchetState(a),{messageKey:d,nextChainKey:e}=hkdfMessageKey(c['sendingChainKey']);c['sendingChainKey']=e;const f={'dhPublicKey':c['ourDHKeyPair']['publicKey'],'previousSendingCount':c['previousSendingCount'],'messageCount':c['sendingMessageCount']},g=encodeHeader(f),{ciphertext:h,iv:i,tag:j}=aesGcmEncrypt(d,b,g),k=concatBytes(g,i,j,h);return c['sendingMessageCount']+=0x1,{'message':{'type':MessageType['NORMAL_MESSAGE'],'body':k},'newState':c};}export function ratchetDecrypt(a,b){const c=0x20+0x4+0x4;if(b['length']<c+0xc+0x10)throw new PQError(PQErrorCode['DECRYPTION_FAILED'],'Message\x20body\x20too\x20short');const d=b['slice'](0x0,c),e=decodeHeader(d),f=b['slice'](c,c+0xc),g=b['slice'](c+0xc,c+0xc+0x10),h=b['slice'](c+0xc+0x10),i=cloneRatchetState(a);let j;if(i['peerDHPublicKey']&&Buffer['from'](e['dhPublicKey'])['equals'](Buffer['from'](i['peerDHPublicKey']))){if(e['messageCount']<i['receivingMessageCount']){j=trySkippedMessageKeys(i,e);if(!j)throw new PQError(PQErrorCode['DECRYPTION_FAILED'],'Message\x20key\x20not\x20found\x20for\x20old\x20message');}else{while(i['receivingMessageCount']<e['messageCount']){const {messageKey:n,nextChainKey:o}=hkdfMessageKey(i['receivingChainKey']),p=makeSkipKey(e['dhPublicKey'],i['receivingMessageCount']);i['skipMessageKeys']['set'](p,n),i['receivingChainKey']=o,i['receivingMessageCount']+=0x1;}const {messageKey:l,nextChainKey:m}=hkdfMessageKey(i['receivingChainKey']);j=l,i['receivingChainKey']=m,i['receivingMessageCount']+=0x1;}}else{j=trySkippedMessageKeys(i,e);if(!j){const q=dhRatchetStep(i,e);Object['assign'](i,q['newState']),j=q['messageKey'];}}const k=aesGcmDecrypt(j,h,f,g,d);return{'plaintext':k,'newState':i};}function dhRatchetStep(a,b){a['previousSendingCount']=a['sendingMessageCount'];const c=x25519DH(a['ourDHKeyPair']['privateKey'],b['dhPublicKey']),{rootKey:d,chainKey:e}=hkdfChainKey(a['rootKey'],c),f=generateX25519KeyPair(),g=x25519DH(f['privateKey'],b['dhPublicKey']),{rootKey:h,chainKey:i}=hkdfChainKey(d,g),{messageKey:j}=hkdfMessageKey(e);return{'messageKey':j,'newState':{'rootKey':h,'sendingChainKey':e,'sendingMessageCount':0x0,'receivingChainKey':i,'receivingMessageCount':0x1,'ourDHKeyPair':f,'peerDHPublicKey':b['dhPublicKey'],'previousSendingCount':b['previousSendingCount']}};}function trySkippedMessageKeys(a,b){const c=makeSkipKey(b['dhPublicKey'],b['messageCount']),d=a['skipMessageKeys']['get'](c);if(d)return a['skipMessageKeys']['delete'](c),d;return null;}function cloneRatchetState(a){return{'rootKey':new Uint8Array(a['rootKey']),'sendingChainKey':new Uint8Array(a['sendingChainKey']),'sendingMessageCount':a['sendingMessageCount'],'receivingChainKey':new Uint8Array(a['receivingChainKey']),'receivingMessageCount':a['receivingMessageCount'],'ourDHKeyPair':{'publicKey':new Uint8Array(a['ourDHKeyPair']['publicKey']),'privateKey':new Uint8Array(a['ourDHKeyPair']['privateKey'])},'peerDHPublicKey':a['peerDHPublicKey']?new Uint8Array(a['peerDHPublicKey']):null,'previousSendingCount':a['previousSendingCount'],'skipMessageKeys':new Map(a['skipMessageKeys'])};}export function serializeRatchetState(a){const b={};for(const [c,d]of a['skipMessageKeys']){b[c]=Buffer['from'](d)['toString']('base64');}return{'rootKey':Buffer['from'](a['rootKey'])['toString']('base64'),'sendingChainKey':Buffer['from'](a['sendingChainKey'])['toString']('base64'),'sendingMessageCount':a['sendingMessageCount'],'receivingChainKey':Buffer['from'](a['receivingChainKey'])['toString']('base64'),'receivingMessageCount':a['receivingMessageCount'],'ourDHPrivateKey':Buffer['from'](a['ourDHKeyPair']['privateKey'])['toString']('base64'),'ourDHPublicKey':Buffer['from'](a['ourDHKeyPair']['publicKey'])['toString']('base64'),'peerDHPublicKey':a['peerDHPublicKey']?Buffer['from'](a['peerDHPublicKey'])['toString']('base64'):null,'previousSendingCount':a['previousSendingCount'],'skipMessageKeys':b};}export function deserializeRatchetState(a){const b=new Map();for(const [c,d]of Object['entries'](a['skipMessageKeys'])){b['set'](c,new Uint8Array(Buffer['from'](d,'base64')));}return{'rootKey':new Uint8Array(Buffer['from'](a['rootKey'],'base64')),'sendingChainKey':new Uint8Array(Buffer['from'](a['sendingChainKey'],'base64')),'sendingMessageCount':a['sendingMessageCount'],'receivingChainKey':new Uint8Array(Buffer['from'](a['receivingChainKey'],'base64')),'receivingMessageCount':a['receivingMessageCount'],'ourDHKeyPair':{'publicKey':new Uint8Array(Buffer['from'](a['ourDHPublicKey'],'base64')),'privateKey':new Uint8Array(Buffer['from'](a['ourDHPrivateKey'],'base64'))},'peerDHPublicKey':a['peerDHPublicKey']?new Uint8Array(Buffer['from'](a['peerDHPublicKey'],'base64')):null,'previousSendingCount':a['previousSendingCount'],'skipMessageKeys':b};}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { X25519KeyPair, MLKEMKeyPair, PQPreKeyBundle, PQIdentity, EncryptedMessage, SerializedPQSessionState } from "./types.js";
|
|
2
|
-
export interface PQSessionStore {
|
|
3
|
-
getIdentityKeyPair(): Promise<X25519KeyPair | null>;
|
|
4
|
-
setIdentityKeyPair(keyPair: X25519KeyPair): Promise<void>;
|
|
5
|
-
getRegistrationId(): Promise<number | null>;
|
|
6
|
-
setRegistrationId(id: number): Promise<void>;
|
|
7
|
-
getSignedPreKey(keyId: number): Promise<X25519KeyPair | null>;
|
|
8
|
-
setSignedPreKey(keyId: number, keyPair: X25519KeyPair): Promise<void>;
|
|
9
|
-
getSignedPreKeySignature(keyId: number): Promise<Uint8Array | null>;
|
|
10
|
-
setSignedPreKeySignature(keyId: number, sig: Uint8Array): Promise<void>;
|
|
11
|
-
getOneTimePreKey(keyId: number): Promise<X25519KeyPair | null>;
|
|
12
|
-
setOneTimePreKey(keyId: number, keyPair: X25519KeyPair): Promise<void>;
|
|
13
|
-
removeOneTimePreKey(keyId: number): Promise<void>;
|
|
14
|
-
getPQPreKey(keyId: number): Promise<MLKEMKeyPair | null>;
|
|
15
|
-
setPQPreKey(keyId: number, keyPair: MLKEMKeyPair): Promise<void>;
|
|
16
|
-
getPQPreKeySignature(keyId: number): Promise<Uint8Array | null>;
|
|
17
|
-
setPQPreKeySignature(keyId: number, sig: Uint8Array): Promise<void>;
|
|
18
|
-
getSession(peerAddress: string, peerDeviceId: number): Promise<SerializedPQSessionState | null>;
|
|
19
|
-
setSession(peerAddress: string, peerDeviceId: number, state: SerializedPQSessionState): Promise<void>;
|
|
20
|
-
removeSession(peerAddress: string, peerDeviceId: number): Promise<void>;
|
|
21
|
-
getPeerIdentity(peerAddress: string): Promise<Uint8Array | null>;
|
|
22
|
-
setPeerIdentity(peerAddress: string, identityKey: Uint8Array): Promise<void>;
|
|
23
|
-
}
|
|
24
|
-
export declare class PQSessionCipher {
|
|
25
|
-
private store;
|
|
26
|
-
private identity;
|
|
27
|
-
private getFalcon512KeyPair;
|
|
28
|
-
constructor(store: PQSessionStore, getFalcon512KeyPair?: () => Promise<{
|
|
29
|
-
publicKey: Uint8Array;
|
|
30
|
-
privateKey: Uint8Array;
|
|
31
|
-
}>);
|
|
32
|
-
ensureIdentity(): Promise<PQIdentity>;
|
|
33
|
-
generatePreKeyBundle(signedPreKeyId: number, pqPreKeyId: number, oneTimePreKeyCount: number): Promise<import("./pqxdh.js").GeneratedPreKeyBundle>;
|
|
34
|
-
processPreKeyBundle(peerAddress: string, peerDeviceId: number, bundle: PQPreKeyBundle): Promise<void>;
|
|
35
|
-
processInitialMessage(peerAddress: string, peerDeviceId: number, ephemeralPublicKey: Uint8Array, mlkemCiphertext: Uint8Array, peerIdentityKey: Uint8Array, signedPreKeyId: number, oneTimePreKeyId: number | null, pqPreKeyId: number): Promise<void>;
|
|
36
|
-
encryptMessage(peerAddress: string, plaintext: Uint8Array, peerDeviceId?: number): Promise<EncryptedMessage>;
|
|
37
|
-
decryptMessage(peerAddress: string, messageBody: Uint8Array, peerDeviceId?: number): Promise<Uint8Array>;
|
|
38
|
-
hasSession(peerAddress: string, peerDeviceId?: number): Promise<boolean>;
|
|
39
|
-
private loadSession;
|
|
40
|
-
private saveSession;
|
|
41
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{generateX25519KeyPair,concatBytes,deriveRegistrationId,bytesToBase64,base64ToBytes}from'./crypto.js';import{pqxdhInitiate,pqxdhReceive,generatePreKeyBundle,verifyPreKeyBundle}from'./pqxdh.js';import{initRatchet,ratchetEncrypt,ratchetDecrypt,serializeRatchetState,deserializeRatchetState}from'./ratchet.js';import{initSPQR,spqrGetNextChunk,spqrReceiveChunk,spqrOnPeerPQPKReceived,serializeSPQRState,deserializeSPQRState}from'./spqr.js';import{packChunk,SHARD_SIZE}from'./erasure.js';import{MessageType,DEFAULT_DEVICE_ID,CHAIN_KEY_SIZE,PQError,PQErrorCode}from'./types.js';export class PQSessionCipher{['store'];['identity']=null;['getFalcon512KeyPair'];constructor(a,b){this['store']=a,this['getFalcon512KeyPair']=b||(async()=>{throw new PQError(PQErrorCode['HANDSHAKE_FAILED'],'Falcon512\x20key\x20pair\x20not\x20available\x20for\x20signing');});}async['ensureIdentity'](){if(this['identity'])return this['identity'];let a=await this['store']['getIdentityKeyPair'](),b=await this['store']['getRegistrationId']();return(!a||!b)&&(a=generateX25519KeyPair(),b=deriveRegistrationId(a['publicKey']),await this['store']['setIdentityKeyPair'](a),await this['store']['setRegistrationId'](b)),this['identity']={'x25519KeyPair':a,'registrationId':b},this['identity'];}async['generatePreKeyBundle'](a,b,c){const d=await this['ensureIdentity'](),e=await this['getFalcon512KeyPair'](),f=generatePreKeyBundle(d['x25519KeyPair'],e,a,b,c);await this['store']['setSignedPreKey'](a,f['signedPreKey']['keyPair']),await this['store']['setSignedPreKeySignature'](a,f['signedPreKey']['signature']);for(const g of f['oneTimePreKeys']){await this['store']['setOneTimePreKey'](g['keyId'],g['keyPair']);}return await this['store']['setPQPreKey'](b,f['pqPreKey']['keyPair']),await this['store']['setPQPreKeySignature'](b,f['pqPreKey']['signature']),f;}async['processPreKeyBundle'](a,b,c){const d=await this['ensureIdentity']();if(!verifyPreKeyBundle(c))throw new PQError(PQErrorCode['HANDSHAKE_FAILED'],'PreKey\x20bundle\x20signature\x20verification\x20failed');const e=pqxdhInitiate(d['x25519KeyPair'],c),f=initRatchet(e['result']['rootKey'],e['result']['chainKey'],new Uint8Array(CHAIN_KEY_SIZE),e['result']['ourDHKeyPair'],e['result']['peerDHPublicKey']),g=initSPQR(),h={'pqxdhComplete':!![],'ratchetState':f,'spqrState':g,'peerIdentityKey':c['identityKey'],'peerRegistrationId':c['registrationId'],'peerDeviceId':b,'pendingInitialMessage':{'ephemeralPublicKey':e['initialMessage']['ephemeralPublicKey'],'mlkemCiphertext':e['initialMessage']['mlkemCiphertext'],'identityKey':e['initialMessage']['identityKey'],'signedPreKeyId':c['signedPreKey']['keyId'],'oneTimePreKeyId':c['oneTimePreKey']?.['keyId']??null,'pqPreKeyId':c['pqPreKey']['keyId']}};await this['store']['setPeerIdentity'](a,c['identityKey']),await this['saveSession'](a,b,h);}async['processInitialMessage'](a,b,c,d,e,f,g,h){const i=await this['ensureIdentity'](),j=await this['store']['getSignedPreKey'](f);if(!j)throw new PQError(PQErrorCode['HANDSHAKE_FAILED'],'Signed\x20pre-key\x20not\x20found');let k=null;g!==null&&(k=await this['store']['getOneTimePreKey'](g),k&&await this['store']['removeOneTimePreKey'](g));const l=await this['store']['getPQPreKey'](h);if(!l)throw new PQError(PQErrorCode['HANDSHAKE_FAILED'],'PQ\x20pre-key\x20not\x20found');const m=pqxdhReceive(i['x25519KeyPair'],j,k,l,c,e,d),n=initRatchet(m['rootKey'],new Uint8Array(CHAIN_KEY_SIZE),m['chainKey'],m['ourDHKeyPair'],m['peerDHPublicKey']),o=initSPQR(),p={'pqxdhComplete':!![],'ratchetState':n,'spqrState':o,'peerIdentityKey':e,'peerRegistrationId':0x0,'peerDeviceId':b};await this['store']['setPeerIdentity'](a,e),await this['saveSession'](a,b,p);}async['encryptMessage'](a,b,c=DEFAULT_DEVICE_ID){const d=await this['loadSession'](a,c);if(!d)throw new PQError(PQErrorCode['SESSION_NOT_FOUND'],'No\x20session\x20established');const {message:e,newState:f}=ratchetEncrypt(d['ratchetState'],b),g=f['sendingMessageCount']+f['previousSendingCount'],{chunk:h,newState:i}=spqrGetNextChunk(d['spqrState'],g);let j;if(h){const l=packChunk(h);j=concatBytes(new Uint8Array([0x1]),e['body'],l);}else j=concatBytes(new Uint8Array([0x0]),e['body']);const k=d['pendingInitialMessage']!==undefined;if(d['pendingInitialMessage']){const m=d['pendingInitialMessage'],n=m['oneTimePreKeyId']??0xffffffff,o=new Uint8Array(0x20+0x440+0x20+0x4+0x4+0x4),p=new DataView(o['buffer']);o['set'](m['ephemeralPublicKey'],0x0),o['set'](m['mlkemCiphertext'],0x20),o['set'](m['identityKey'],0x20+0x440),p['setUint32'](0x20+0x440+0x20,m['signedPreKeyId'],![]),p['setUint32'](0x20+0x440+0x20+0x4,n,![]),p['setUint32'](0x20+0x440+0x20+0x8,m['pqPreKeyId'],![]),j=concatBytes(o,j),d['pendingInitialMessage']=undefined;}return d['ratchetState']=f,d['spqrState']=i,await this['saveSession'](a,c,d),{'type':k?MessageType['PREKEY_MESSAGE']:MessageType['NORMAL_MESSAGE'],'body':j};}async['decryptMessage'](a,b,c=DEFAULT_DEVICE_ID){const d=0x20+0x440+0x20+0x4+0x4+0x4;let e=await this['loadSession'](a,c);if(!e&&b['length']>=d){const m=new DataView(b['buffer'],b['byteOffset'],b['byteLength']),n=b['slice'](0x0,0x20),o=b['slice'](0x20,0x20+0x440),p=b['slice'](0x20+0x440,0x20+0x440+0x20),q=m['getUint32'](0x20+0x440+0x20,![]),r=m['getUint32'](0x20+0x440+0x20+0x4,![]),s=m['getUint32'](0x20+0x440+0x20+0x8,![]),t=r===0xffffffff?null:r;await this['processInitialMessage'](a,c,n,o,p,q,t,s),b=b['slice'](d),e=await this['loadSession'](a,c);}if(!e)throw new PQError(PQErrorCode['SESSION_NOT_FOUND'],'No\x20session\x20established');if(b['length']<0x1)throw new PQError(PQErrorCode['DECRYPTION_FAILED'],'Message\x20body\x20too\x20short');const f=b[0x0]===0x1,g=b['slice'](0x1);let h=null;if(f){if(g['length']<SHARD_SIZE)throw new PQError(PQErrorCode['DECRYPTION_FAILED'],'SPQR\x20chunk\x20missing');h=g['slice'](g['length']-SHARD_SIZE);}const i=f?g['slice'](0x0,g['length']-SHARD_SIZE):g,{plaintext:j,newState:k}=ratchetDecrypt(e['ratchetState'],i);let l=e['spqrState'];if(h){const u=spqrReceiveChunk(l,h);l=u['newState'];if(u['shouldSendCT']&&u['peerPQPK']){const v=spqrOnPeerPQPKReceived(l,u['peerPQPK']);l=v['newState'];}}return e['ratchetState']=k,e['spqrState']=l,await this['saveSession'](a,c,e),j;}async['hasSession'](a,b=DEFAULT_DEVICE_ID){const c=await this['loadSession'](a,b);return c!==null&&c['pqxdhComplete'];}async['loadSession'](a,b){const c=await this['store']['getSession'](a,b);if(!c)return null;const d={'pqxdhComplete':c['pqxdhComplete'],'ratchetState':deserializeRatchetState(c['ratchetState']),'spqrState':deserializeSPQRState(c['spqrState']),'peerIdentityKey':base64ToBytes(c['peerIdentityKey']),'peerRegistrationId':c['peerRegistrationId'],'peerDeviceId':c['peerDeviceId']};return c['pendingInitialMessage']&&(d['pendingInitialMessage']={'ephemeralPublicKey':base64ToBytes(c['pendingInitialMessage']['ephemeralPublicKey']),'mlkemCiphertext':base64ToBytes(c['pendingInitialMessage']['mlkemCiphertext']),'identityKey':base64ToBytes(c['pendingInitialMessage']['identityKey']),'signedPreKeyId':c['pendingInitialMessage']['signedPreKeyId'],'oneTimePreKeyId':c['pendingInitialMessage']['oneTimePreKeyId'],'pqPreKeyId':c['pendingInitialMessage']['pqPreKeyId']}),d;}async['saveSession'](a,b,c){const d={'pqxdhComplete':c['pqxdhComplete'],'ratchetState':serializeRatchetState(c['ratchetState']),'spqrState':serializeSPQRState(c['spqrState']),'peerIdentityKey':bytesToBase64(c['peerIdentityKey']),'peerRegistrationId':c['peerRegistrationId'],'peerDeviceId':c['peerDeviceId']};c['pendingInitialMessage']&&(d['pendingInitialMessage']={'ephemeralPublicKey':bytesToBase64(c['pendingInitialMessage']['ephemeralPublicKey']),'mlkemCiphertext':bytesToBase64(c['pendingInitialMessage']['mlkemCiphertext']),'identityKey':bytesToBase64(c['pendingInitialMessage']['identityKey']),'signedPreKeyId':c['pendingInitialMessage']['signedPreKeyId'],'oneTimePreKeyId':c['pendingInitialMessage']['oneTimePreKeyId'],'pqPreKeyId':c['pendingInitialMessage']['pqPreKeyId']}),await this['store']['setSession'](a,b,d);}}
|