wowok 2.1.40 → 2.2.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/dist/cjs/bcs/bcs.js +1 -253
- package/dist/cjs/bcs/effects.js +1 -199
- package/dist/cjs/bcs/index.js +1 -51
- package/dist/cjs/bcs/pure.js +1 -36
- package/dist/cjs/bcs/type-tag-serializer.js +1 -104
- package/dist/cjs/bcs/types.js +1 -3
- package/dist/cjs/client/index.js +1 -4
- package/dist/cjs/client/network.js +1 -15
- package/dist/cjs/cryptography/index.js +1 -6
- package/dist/cjs/cryptography/intent.js +1 -14
- package/dist/cjs/cryptography/keypair.js +1 -74
- package/dist/cjs/cryptography/mnemonics.js +1 -20
- package/dist/cjs/cryptography/publickey.js +1 -80
- package/dist/cjs/cryptography/signature-scheme.js +1 -22
- package/dist/cjs/cryptography/signature.js +1 -41
- package/dist/cjs/experimental/cache.js +1 -58
- package/dist/cjs/experimental/client.js +1 -19
- package/dist/cjs/experimental/core.js +1 -80
- package/dist/cjs/experimental/errors.js +1 -24
- package/dist/cjs/experimental/index.js +1 -5
- package/dist/cjs/experimental/persistent-storage.js +1 -220
- package/dist/cjs/experimental/persistent-storage.test.js +1 -144
- package/dist/cjs/experimental/transports/utils.js +1 -96
- package/dist/cjs/experimental/types.js +1 -1
- package/dist/cjs/faucet/faucet.js +1 -99
- package/dist/cjs/faucet/index.js +1 -1
- package/dist/cjs/grpc/client.js +1 -42
- package/dist/cjs/grpc/core.js +1 -587
- package/dist/cjs/grpc/index.js +1 -2
- package/dist/cjs/grpc/proto/google/protobuf/any.js +1 -106
- package/dist/cjs/grpc/proto/google/protobuf/duration.js +1 -58
- package/dist/cjs/grpc/proto/google/protobuf/empty.js +1 -7
- package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +1 -47
- package/dist/cjs/grpc/proto/google/protobuf/struct.js +1 -191
- package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +1 -91
- package/dist/cjs/grpc/proto/google/rpc/error_details.js +1 -265
- package/dist/cjs/grpc/proto/google/rpc/status.js +1 -23
- package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +1 -46
- package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +1 -29
- package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +1 -22
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +1 -54
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +1 -60
- package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +1 -144
- package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +1 -271
- package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +1 -64
- package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +1 -6
- package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +1 -62
- package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +1 -64
- package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +1 -481
- package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +1 -40
- package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +1 -61
- package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +1 -57
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +1 -39
- package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +1 -329
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +1 -447
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +1 -27
- package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +1 -206
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +1 -19
- package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +1 -109
- package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +1 -90
- package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +1 -30
- package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +1 -39
- package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +1 -30
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +1 -501
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +1 -10
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +1 -15
- package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +1 -62
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +1 -31
- package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +1 -504
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +1 -15
- package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +1 -37
- package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +1 -709
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1 -950
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +1 -19
- package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +1 -144
- package/dist/cjs/index.js +1 -22
- package/dist/cjs/jsonRpc/client.js +1 -516
- package/dist/cjs/jsonRpc/core.js +1 -587
- package/dist/cjs/jsonRpc/errors.js +1 -38
- package/dist/cjs/jsonRpc/http-transport.js +1 -70
- package/dist/cjs/jsonRpc/index.js +1 -3
- package/dist/cjs/jsonRpc/json-rpc-resolver.js +1 -296
- package/dist/cjs/jsonRpc/rpc-websocket-client.js +1 -155
- package/dist/cjs/jsonRpc/types/chain.js +1 -1
- package/dist/cjs/jsonRpc/types/changes.js +1 -1
- package/dist/cjs/jsonRpc/types/coins.js +1 -1
- package/dist/cjs/jsonRpc/types/common.js +1 -1
- package/dist/cjs/jsonRpc/types/generated.js +1 -1
- package/dist/cjs/jsonRpc/types/index.js +1 -1
- package/dist/cjs/jsonRpc/types/params.js +1 -1
- package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +1 -58
- package/dist/cjs/keypairs/ed25519/index.js +1 -2
- package/dist/cjs/keypairs/ed25519/keypair.js +1 -90
- package/dist/cjs/keypairs/ed25519/publickey.js +1 -50
- package/dist/cjs/keypairs/index.js +1 -4
- package/dist/cjs/keypairs/passkey/index.js +1 -2
- package/dist/cjs/keypairs/passkey/keypair.js +1 -155
- package/dist/cjs/keypairs/passkey/publickey.js +1 -117
- package/dist/cjs/keypairs/passkey/types.js +1 -1
- package/dist/cjs/keypairs/secp256k1/index.js +1 -2
- package/dist/cjs/keypairs/secp256k1/keypair.js +1 -82
- package/dist/cjs/keypairs/secp256k1/publickey.js +1 -51
- package/dist/cjs/keypairs/secp256r1/index.js +1 -2
- package/dist/cjs/keypairs/secp256r1/keypair.js +1 -78
- package/dist/cjs/keypairs/secp256r1/publickey.js +1 -52
- package/dist/cjs/multisig/index.js +1 -2
- package/dist/cjs/multisig/publickey.js +1 -201
- package/dist/cjs/multisig/signer.js +1 -58
- package/dist/cjs/transactions/Arguments.js +1 -9
- package/dist/cjs/transactions/Commands.js +1 -102
- package/dist/cjs/transactions/Inputs.js +1 -52
- package/dist/cjs/transactions/ObjectCache.js +1 -205
- package/dist/cjs/transactions/Transaction.js +1 -574
- package/dist/cjs/transactions/TransactionData.js +1 -409
- package/dist/cjs/transactions/__tests__/Transaction.test.js +1 -160
- package/dist/cjs/transactions/__tests__/bcs.test.js +1 -182
- package/dist/cjs/transactions/data/internal.js +1 -169
- package/dist/cjs/transactions/data/v1.js +1 -469
- package/dist/cjs/transactions/data/v2.js +1 -97
- package/dist/cjs/transactions/executor/caching.js +1 -65
- package/dist/cjs/transactions/executor/parallel.js +1 -347
- package/dist/cjs/transactions/executor/queue.js +1 -59
- package/dist/cjs/transactions/executor/serial.js +1 -99
- package/dist/cjs/transactions/hash.js +1 -8
- package/dist/cjs/transactions/index.js +1 -12
- package/dist/cjs/transactions/intents/CoinWithBalance.js +1 -145
- package/dist/cjs/transactions/object.js +1 -87
- package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +1 -11
- package/dist/cjs/transactions/pure.js +1 -36
- package/dist/cjs/transactions/resolve.js +1 -69
- package/dist/cjs/transactions/serializer.js +1 -167
- package/dist/cjs/transactions/utils.js +1 -121
- package/dist/cjs/utils/constants.js +1 -18
- package/dist/cjs/utils/derived-objects.js +1 -8
- package/dist/cjs/utils/dynamic-fields.js +1 -17
- package/dist/cjs/utils/format.js +1 -11
- package/dist/cjs/utils/index.js +1 -8
- package/dist/cjs/utils/move-registry.js +1 -24
- package/dist/cjs/utils/sui-types.js +1 -66
- package/dist/cjs/utils/suins.js +1 -33
- package/dist/cjs/verify/index.js +1 -1
- package/dist/cjs/verify/verify.js +1 -87
- package/dist/cjs/version.js +1 -2
- package/dist/cjs/w/call/allocation.js +1 -345
- package/dist/cjs/w/call/arb.js +1 -103
- package/dist/cjs/w/call/arbitration.js +1 -1192
- package/dist/cjs/w/call/base.js +1 -293
- package/dist/cjs/w/call/contact.js +1 -345
- package/dist/cjs/w/call/demand.js +1 -681
- package/dist/cjs/w/call/entity.js +1 -173
- package/dist/cjs/w/call/guard-ins.js +1 -4449
- package/dist/cjs/w/call/guard.d.ts +113 -0
- package/dist/cjs/w/call/guard.js +1 -1048
- package/dist/cjs/w/call/index.js +1 -22
- package/dist/cjs/w/call/machine.js +1 -1127
- package/dist/cjs/w/call/order.js +1 -337
- package/dist/cjs/w/call/passport.js +1 -220
- package/dist/cjs/w/call/payment.js +1 -178
- package/dist/cjs/w/call/permission.js +1 -1162
- package/dist/cjs/w/call/personal.js +1 -139
- package/dist/cjs/w/call/progress.js +1 -678
- package/dist/cjs/w/call/proof.js +1 -66
- package/dist/cjs/w/call/repository.js +1 -1024
- package/dist/cjs/w/call/resource.js +1 -108
- package/dist/cjs/w/call/reward.js +1 -675
- package/dist/cjs/w/call/service.js +1 -1960
- package/dist/cjs/w/call/treasury.js +1 -873
- package/dist/cjs/w/call/util.d.ts +1 -0
- package/dist/cjs/w/call/util.js +1 -566
- package/dist/cjs/w/common.js +1 -571
- package/dist/cjs/w/exception.js +1 -618
- package/dist/cjs/w/index.js +1 -8
- package/dist/cjs/w/local/account.js +1 -656
- package/dist/cjs/w/local/cache.js +1 -161
- package/dist/cjs/w/local/config.js +1 -43
- package/dist/cjs/w/local/index.js +1 -228
- package/dist/cjs/w/local/local.js +1 -574
- package/dist/cjs/w/local/storage.js +1 -185
- package/dist/cjs/w/local/token.js +1 -131
- package/dist/cjs/w/local/util.js +1 -26
- package/dist/cjs/w/local/wip.js +1 -864
- package/dist/cjs/w/messenger/crypto.js +1 -380
- package/dist/cjs/w/messenger/index.js +1 -4
- package/dist/cjs/w/messenger/messenger-api.js +1 -1154
- package/dist/cjs/w/messenger/messenger-manager.js +1 -1003
- package/dist/cjs/w/messenger/messenger.js +1 -1093
- package/dist/cjs/w/messenger/server.js +1 -343
- package/dist/cjs/w/messenger/session.js +1 -628
- package/dist/cjs/w/messenger/storage.js +1 -1023
- package/dist/cjs/w/messenger/templates/wts-html-template.js +1 -371
- package/dist/cjs/w/messenger/types.js +1 -76
- package/dist/cjs/w/messenger/utils.js +1 -12
- package/dist/cjs/w/query/bult-in.js +1 -95
- package/dist/cjs/w/query/event.js +1 -137
- package/dist/cjs/w/query/index.js +1 -5
- package/dist/cjs/w/query/object.js +1 -1550
- package/dist/cjs/w/query/received.js +1 -62
- package/dist/cjs/w/query/util.js +1 -49
- package/dist/cjs/w/util.js +1 -587
- package/dist/esm/bcs/bcs.js +1 -253
- package/dist/esm/bcs/effects.js +1 -199
- package/dist/esm/bcs/index.js +1 -51
- package/dist/esm/bcs/pure.js +1 -36
- package/dist/esm/bcs/type-tag-serializer.js +1 -104
- package/dist/esm/bcs/types.js +1 -3
- package/dist/esm/client/index.js +1 -4
- package/dist/esm/client/network.js +1 -15
- package/dist/esm/cryptography/index.js +1 -6
- package/dist/esm/cryptography/intent.js +1 -14
- package/dist/esm/cryptography/keypair.js +1 -74
- package/dist/esm/cryptography/mnemonics.js +1 -20
- package/dist/esm/cryptography/publickey.js +1 -80
- package/dist/esm/cryptography/signature-scheme.js +1 -22
- package/dist/esm/cryptography/signature.js +1 -41
- package/dist/esm/experimental/cache.js +1 -58
- package/dist/esm/experimental/client.js +1 -19
- package/dist/esm/experimental/core.js +1 -80
- package/dist/esm/experimental/errors.js +1 -24
- package/dist/esm/experimental/index.js +1 -5
- package/dist/esm/experimental/persistent-storage.js +1 -220
- package/dist/esm/experimental/persistent-storage.test.js +1 -144
- package/dist/esm/experimental/transports/utils.js +1 -96
- package/dist/esm/experimental/types.js +1 -1
- package/dist/esm/faucet/faucet.js +1 -99
- package/dist/esm/faucet/index.js +1 -1
- package/dist/esm/grpc/client.js +1 -42
- package/dist/esm/grpc/core.js +1 -587
- package/dist/esm/grpc/index.js +1 -2
- package/dist/esm/grpc/proto/google/protobuf/any.js +1 -106
- package/dist/esm/grpc/proto/google/protobuf/duration.js +1 -58
- package/dist/esm/grpc/proto/google/protobuf/empty.js +1 -7
- package/dist/esm/grpc/proto/google/protobuf/field_mask.js +1 -47
- package/dist/esm/grpc/proto/google/protobuf/struct.js +1 -191
- package/dist/esm/grpc/proto/google/protobuf/timestamp.js +1 -91
- package/dist/esm/grpc/proto/google/rpc/error_details.js +1 -265
- package/dist/esm/grpc/proto/google/rpc/status.js +1 -23
- package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +1 -46
- package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +1 -29
- package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +1 -22
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +1 -54
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +1 -60
- package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +1 -144
- package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +1 -271
- package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +1 -64
- package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +1 -6
- package/dist/esm/grpc/proto/sui/rpc/v2/event.js +1 -62
- package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +1 -64
- package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +1 -481
- package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +1 -40
- package/dist/esm/grpc/proto/sui/rpc/v2/input.js +1 -61
- package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +1 -57
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +1 -39
- package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +1 -329
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +1 -447
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +1 -27
- package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +1 -206
- package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +1 -19
- package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +1 -109
- package/dist/esm/grpc/proto/sui/rpc/v2/object.js +1 -90
- package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +1 -30
- package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +1 -39
- package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +1 -30
- package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +1 -501
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +1 -10
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +1 -15
- package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +1 -62
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +1 -31
- package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +1 -504
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +1 -15
- package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +1 -37
- package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +1 -709
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +1 -950
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +1 -19
- package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +1 -144
- package/dist/esm/index.js +1 -22
- package/dist/esm/jsonRpc/client.js +1 -516
- package/dist/esm/jsonRpc/core.js +1 -587
- package/dist/esm/jsonRpc/errors.js +1 -38
- package/dist/esm/jsonRpc/http-transport.js +1 -70
- package/dist/esm/jsonRpc/index.js +1 -3
- package/dist/esm/jsonRpc/json-rpc-resolver.js +1 -296
- package/dist/esm/jsonRpc/rpc-websocket-client.js +1 -155
- package/dist/esm/jsonRpc/types/chain.js +1 -1
- package/dist/esm/jsonRpc/types/changes.js +1 -1
- package/dist/esm/jsonRpc/types/coins.js +1 -1
- package/dist/esm/jsonRpc/types/common.js +1 -1
- package/dist/esm/jsonRpc/types/generated.js +1 -1
- package/dist/esm/jsonRpc/types/index.js +1 -1
- package/dist/esm/jsonRpc/types/params.js +1 -1
- package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +1 -58
- package/dist/esm/keypairs/ed25519/index.js +1 -2
- package/dist/esm/keypairs/ed25519/keypair.js +1 -90
- package/dist/esm/keypairs/ed25519/publickey.js +1 -50
- package/dist/esm/keypairs/index.js +1 -4
- package/dist/esm/keypairs/passkey/index.js +1 -2
- package/dist/esm/keypairs/passkey/keypair.js +1 -155
- package/dist/esm/keypairs/passkey/publickey.js +1 -117
- package/dist/esm/keypairs/passkey/types.js +1 -1
- package/dist/esm/keypairs/secp256k1/index.js +1 -2
- package/dist/esm/keypairs/secp256k1/keypair.js +1 -82
- package/dist/esm/keypairs/secp256k1/publickey.js +1 -51
- package/dist/esm/keypairs/secp256r1/index.js +1 -2
- package/dist/esm/keypairs/secp256r1/keypair.js +1 -78
- package/dist/esm/keypairs/secp256r1/publickey.js +1 -52
- package/dist/esm/multisig/index.js +1 -2
- package/dist/esm/multisig/publickey.js +1 -201
- package/dist/esm/multisig/signer.js +1 -58
- package/dist/esm/transactions/Arguments.js +1 -9
- package/dist/esm/transactions/Commands.js +1 -102
- package/dist/esm/transactions/Inputs.js +1 -52
- package/dist/esm/transactions/ObjectCache.js +1 -205
- package/dist/esm/transactions/Transaction.js +1 -574
- package/dist/esm/transactions/TransactionData.js +1 -409
- package/dist/esm/transactions/__tests__/Transaction.test.js +1 -160
- package/dist/esm/transactions/__tests__/bcs.test.js +1 -182
- package/dist/esm/transactions/data/internal.js +1 -169
- package/dist/esm/transactions/data/v1.js +1 -469
- package/dist/esm/transactions/data/v2.js +1 -97
- package/dist/esm/transactions/executor/caching.js +1 -65
- package/dist/esm/transactions/executor/parallel.js +1 -347
- package/dist/esm/transactions/executor/queue.js +1 -59
- package/dist/esm/transactions/executor/serial.js +1 -99
- package/dist/esm/transactions/hash.js +1 -8
- package/dist/esm/transactions/index.js +1 -12
- package/dist/esm/transactions/intents/CoinWithBalance.js +1 -145
- package/dist/esm/transactions/object.js +1 -87
- package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +1 -11
- package/dist/esm/transactions/pure.js +1 -36
- package/dist/esm/transactions/resolve.js +1 -69
- package/dist/esm/transactions/serializer.js +1 -167
- package/dist/esm/transactions/utils.js +1 -121
- package/dist/esm/utils/constants.js +1 -18
- package/dist/esm/utils/derived-objects.js +1 -8
- package/dist/esm/utils/dynamic-fields.js +1 -17
- package/dist/esm/utils/format.js +1 -11
- package/dist/esm/utils/index.js +1 -8
- package/dist/esm/utils/move-registry.js +1 -24
- package/dist/esm/utils/sui-types.js +1 -66
- package/dist/esm/utils/suins.js +1 -33
- package/dist/esm/verify/index.js +1 -1
- package/dist/esm/verify/verify.js +1 -87
- package/dist/esm/version.js +1 -2
- package/dist/esm/w/call/allocation.js +1 -345
- package/dist/esm/w/call/arb.js +1 -103
- package/dist/esm/w/call/arbitration.js +1 -1192
- package/dist/esm/w/call/base.js +1 -293
- package/dist/esm/w/call/contact.js +1 -345
- package/dist/esm/w/call/demand.js +1 -681
- package/dist/esm/w/call/entity.js +1 -173
- package/dist/esm/w/call/guard-ins.js +1 -4449
- package/dist/esm/w/call/guard.d.ts +113 -0
- package/dist/esm/w/call/guard.js +1 -1048
- package/dist/esm/w/call/index.js +1 -22
- package/dist/esm/w/call/machine.js +1 -1127
- package/dist/esm/w/call/order.js +1 -337
- package/dist/esm/w/call/passport.js +1 -220
- package/dist/esm/w/call/payment.js +1 -178
- package/dist/esm/w/call/permission.js +1 -1162
- package/dist/esm/w/call/personal.js +1 -139
- package/dist/esm/w/call/progress.js +1 -678
- package/dist/esm/w/call/proof.js +1 -66
- package/dist/esm/w/call/repository.js +1 -1024
- package/dist/esm/w/call/resource.js +1 -108
- package/dist/esm/w/call/reward.js +1 -675
- package/dist/esm/w/call/service.js +1 -1960
- package/dist/esm/w/call/treasury.js +1 -873
- package/dist/esm/w/call/util.d.ts +1 -0
- package/dist/esm/w/call/util.js +1 -566
- package/dist/esm/w/common.js +1 -571
- package/dist/esm/w/exception.js +1 -618
- package/dist/esm/w/index.js +1 -8
- package/dist/esm/w/local/account.js +1 -656
- package/dist/esm/w/local/cache.js +1 -161
- package/dist/esm/w/local/config.js +1 -43
- package/dist/esm/w/local/index.js +1 -228
- package/dist/esm/w/local/local.js +1 -574
- package/dist/esm/w/local/storage.js +1 -185
- package/dist/esm/w/local/token.js +1 -131
- package/dist/esm/w/local/util.js +1 -26
- package/dist/esm/w/local/wip.js +1 -864
- package/dist/esm/w/messenger/crypto.js +1 -380
- package/dist/esm/w/messenger/index.js +1 -4
- package/dist/esm/w/messenger/messenger-api.js +1 -1154
- package/dist/esm/w/messenger/messenger-manager.js +1 -1003
- package/dist/esm/w/messenger/messenger.js +1 -1093
- package/dist/esm/w/messenger/server.js +1 -343
- package/dist/esm/w/messenger/session.js +1 -628
- package/dist/esm/w/messenger/storage.js +1 -1023
- package/dist/esm/w/messenger/templates/wts-html-template.js +1 -371
- package/dist/esm/w/messenger/types.js +1 -76
- package/dist/esm/w/messenger/utils.js +1 -12
- package/dist/esm/w/query/bult-in.js +1 -95
- package/dist/esm/w/query/event.js +1 -137
- package/dist/esm/w/query/index.js +1 -5
- package/dist/esm/w/query/object.js +1 -1550
- package/dist/esm/w/query/received.js +1 -62
- package/dist/esm/w/query/util.js +1 -49
- package/dist/esm/w/util.js +1 -587
- package/package.json +5 -2
|
@@ -8,5 +8,6 @@ export declare const checkType: (type: ValueType | ContextType.TypeClock | Conte
|
|
|
8
8
|
export interface RestoreNodeResult {
|
|
9
9
|
root: GuardNode;
|
|
10
10
|
rep_quote: Map<string, string[]>;
|
|
11
|
+
autoGeneratedIdentifiers: number[];
|
|
11
12
|
}
|
|
12
13
|
export declare const restoreNodeFromOutput: (output: Uint8Array, table: GuardTableItem[]) => RestoreNodeResult;
|
package/dist/cjs/w/call/util.js
CHANGED
|
@@ -1,566 +1 @@
|
|
|
1
|
-
import { bcs } from "../../bcs/index.js";
|
|
2
|
-
import { isValueTypeNumber, OperatorType, ValueType, parseValueType, } from "../common.js";
|
|
3
|
-
import { ContextType, MAX_ENV_PERMISSION_GUARD_COUNT } from "../common.js";
|
|
4
|
-
import { W_ERROR, WErrors } from "../exception.js";
|
|
5
|
-
import { Config, GetAccountOrMark_Address } from "../local/index.js";
|
|
6
|
-
import { LocalMark } from "../local/local.js";
|
|
7
|
-
import { GUARDQUERY, getGuardQueryInfo } from "./guard-ins.js";
|
|
8
|
-
export const getCallEnvAccount = async (env) => {
|
|
9
|
-
const acc = await GetAccountOrMark_Address({
|
|
10
|
-
name_or_address: env.account || "",
|
|
11
|
-
});
|
|
12
|
-
if (!acc) {
|
|
13
|
-
W_ERROR(WErrors.InvalidParam, `account ${env.account} not found`);
|
|
14
|
-
}
|
|
15
|
-
env.account = acc;
|
|
16
|
-
return acc;
|
|
17
|
-
};
|
|
18
|
-
function createSingleOperandNode(property, operand) {
|
|
19
|
-
const node = { type: property, node: operand };
|
|
20
|
-
return node;
|
|
21
|
-
}
|
|
22
|
-
export const resolveCallEnv = async (env) => {
|
|
23
|
-
env.network = await Config.Instance().network_get(env?.network);
|
|
24
|
-
const acc = await getCallEnvAccount(env);
|
|
25
|
-
if (env?.permission_guard && env.permission_guard?.length > 0) {
|
|
26
|
-
const guards = await LocalMark.Instance().get_many_address_availables(env.permission_guard);
|
|
27
|
-
if (guards.length !== env.permission_guard.length) {
|
|
28
|
-
const foundGuardSet = new Set(guards);
|
|
29
|
-
const notFoundGuards = env.permission_guard.filter((guard) => !foundGuardSet.has(guard));
|
|
30
|
-
W_ERROR(WErrors.InvalidParam, `permission_guard not found: ${notFoundGuards.join(", ")}`);
|
|
31
|
-
}
|
|
32
|
-
env.permission_guard = [...guards];
|
|
33
|
-
if (env.permission_guard.length > MAX_ENV_PERMISSION_GUARD_COUNT) {
|
|
34
|
-
W_ERROR(WErrors.InvalidParam, `permission_guard length ${env.permission_guard.length} exceeds ${MAX_ENV_PERMISSION_GUARD_COUNT}`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
if (env?.referrer) {
|
|
38
|
-
const r = await GetAccountOrMark_Address({
|
|
39
|
-
name_or_address: env.referrer || "",
|
|
40
|
-
});
|
|
41
|
-
if (r) {
|
|
42
|
-
env.referrer = r;
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
W_ERROR(WErrors.InvalidParam, `referrer ${env.referrer} not found`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return acc;
|
|
49
|
-
};
|
|
50
|
-
export const checkType = (type, type_required, node) => {
|
|
51
|
-
if (type_required === "variable") {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
else if (type_required === "number") {
|
|
55
|
-
if (isValueTypeNumber(type) ||
|
|
56
|
-
type === ContextType.TypeClock ||
|
|
57
|
-
type === ValueType.Value) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
else if (type_required === ValueType.Address) {
|
|
62
|
-
if (type === ContextType.TypeSigner ||
|
|
63
|
-
type === ContextType.TypeGuard ||
|
|
64
|
-
type === ValueType.Value) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
else if (type === ValueType.Value) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
else if (type_required === ValueType.Value) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
else if (type_required === "vec_number") {
|
|
75
|
-
if (type === ValueType.VecU8 ||
|
|
76
|
-
type === ValueType.VecU16 ||
|
|
77
|
-
type === ValueType.VecU32 ||
|
|
78
|
-
type === ValueType.VecU64 ||
|
|
79
|
-
type === ValueType.VecU128 ||
|
|
80
|
-
type === ValueType.VecU256) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else if (type_required === "vec") {
|
|
85
|
-
if (type === ValueType.VecBool ||
|
|
86
|
-
type === ValueType.VecAddress ||
|
|
87
|
-
type === ValueType.VecString ||
|
|
88
|
-
type === ValueType.VecU8 ||
|
|
89
|
-
type === ValueType.VecU16 ||
|
|
90
|
-
type === ValueType.VecU32 ||
|
|
91
|
-
type === ValueType.VecU64 ||
|
|
92
|
-
type === ValueType.VecU128 ||
|
|
93
|
-
type === ValueType.VecU256) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if (type !== type_required) {
|
|
98
|
-
W_ERROR(WErrors.InvalidParam, `checkType: ${type} require type: ${type_required} with node: ${JSON.stringify(node)}`);
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
const parseNode = (parserState) => {
|
|
102
|
-
if (parserState.currentPosition >= parserState.output.length) {
|
|
103
|
-
W_ERROR(WErrors.InvalidParam, "parseNode: Unexpected end of output while parsing node");
|
|
104
|
-
}
|
|
105
|
-
const opCode = parserState.output[parserState.currentPosition];
|
|
106
|
-
parserState.currentPosition++;
|
|
107
|
-
switch (opCode) {
|
|
108
|
-
case ContextType.TypeConstant:
|
|
109
|
-
if (parserState.currentPosition >= parserState.output.length) {
|
|
110
|
-
W_ERROR(WErrors.InvalidParam, "parseNode: Missing identifier after TypeConstant opcode");
|
|
111
|
-
}
|
|
112
|
-
const identifierByte = parserState.output[parserState.currentPosition];
|
|
113
|
-
parserState.currentPosition++;
|
|
114
|
-
return { type: "identifier", identifier: identifierByte };
|
|
115
|
-
case OperatorType.TypeQuery:
|
|
116
|
-
return parseQueryNode(parserState);
|
|
117
|
-
case OperatorType.TypeLogicAsU256GreaterEqual:
|
|
118
|
-
return parseMultiOperandNode(parserState, "logic_as_u256_greater_or_equal");
|
|
119
|
-
case OperatorType.TypeLogicAsU256LesserEqual:
|
|
120
|
-
return parseMultiOperandNode(parserState, "logic_as_u256_lesser_or_equal");
|
|
121
|
-
case OperatorType.TypeLogicAsU256Equal:
|
|
122
|
-
return parseMultiOperandNode(parserState, "logic_as_u256_equal");
|
|
123
|
-
case OperatorType.TypeLogicAsU256Greater:
|
|
124
|
-
return parseMultiOperandNode(parserState, "logic_as_u256_greater");
|
|
125
|
-
case OperatorType.TypeLogicAsU256Lesser:
|
|
126
|
-
return parseMultiOperandNode(parserState, "logic_as_u256_lesser");
|
|
127
|
-
case OperatorType.TypeLogicEqual:
|
|
128
|
-
return parseMultiOperandNode(parserState, "logic_equal");
|
|
129
|
-
case OperatorType.TypeLogicAnd:
|
|
130
|
-
return parseMultiOperandNode(parserState, "logic_and");
|
|
131
|
-
case OperatorType.TypeLogicOr:
|
|
132
|
-
return parseMultiOperandNode(parserState, "logic_or");
|
|
133
|
-
case OperatorType.TypeStringContains:
|
|
134
|
-
return parseMultiOperandNode(parserState, "logic_string_contains");
|
|
135
|
-
case OperatorType.TypeStringNocaseContains:
|
|
136
|
-
return parseMultiOperandNode(parserState, "logic_string_nocase_contains");
|
|
137
|
-
case OperatorType.TypeStringNocaseEqual:
|
|
138
|
-
return parseMultiOperandNode(parserState, "logic_string_nocase_equal");
|
|
139
|
-
case OperatorType.TypeNumberAdd:
|
|
140
|
-
return parseMultiOperandNode(parserState, "calc_number_add");
|
|
141
|
-
case OperatorType.TypeNumberSubtract:
|
|
142
|
-
return parseMultiOperandNode(parserState, "calc_number_subtract");
|
|
143
|
-
case OperatorType.TypeNumberMultiply:
|
|
144
|
-
return parseMultiOperandNode(parserState, "calc_number_multiply");
|
|
145
|
-
case OperatorType.TypeNumberDivide:
|
|
146
|
-
return parseMultiOperandNode(parserState, "calc_number_divide");
|
|
147
|
-
case OperatorType.TypeNumberMod:
|
|
148
|
-
return parseMultiOperandNode(parserState, "calc_number_mod");
|
|
149
|
-
case OperatorType.TypeLogicNot:
|
|
150
|
-
return parseSingleOperandNode(parserState, "logic_not");
|
|
151
|
-
case OperatorType.TypeStringLength:
|
|
152
|
-
return parseSingleOperandNode(parserState, "calc_string_length");
|
|
153
|
-
case OperatorType.TypeNumberAddress:
|
|
154
|
-
return parseSingleOperandNode(parserState, "convert_number_address");
|
|
155
|
-
case OperatorType.TypeAddressNumber:
|
|
156
|
-
return parseSingleOperandNode(parserState, "convert_address_number");
|
|
157
|
-
case OperatorType.TypeNumberString:
|
|
158
|
-
return parseSingleOperandNode(parserState, "convert_number_string");
|
|
159
|
-
case OperatorType.TypeStringNumber:
|
|
160
|
-
return parseSingleOperandNode(parserState, "convert_string_number");
|
|
161
|
-
case OperatorType.TypeSafeU8:
|
|
162
|
-
return parseSingleOperandNode(parserState, "convert_safe_u8");
|
|
163
|
-
case OperatorType.TypeSafeU16:
|
|
164
|
-
return parseSingleOperandNode(parserState, "convert_safe_u16");
|
|
165
|
-
case OperatorType.TypeSafeU32:
|
|
166
|
-
return parseSingleOperandNode(parserState, "convert_safe_u32");
|
|
167
|
-
case OperatorType.TypeSafeU64:
|
|
168
|
-
return parseSingleOperandNode(parserState, "convert_safe_u64");
|
|
169
|
-
case OperatorType.TypeSafeU128:
|
|
170
|
-
return parseSingleOperandNode(parserState, "convert_safe_u128");
|
|
171
|
-
case OperatorType.TypeSafeU256:
|
|
172
|
-
return parseSingleOperandNode(parserState, "convert_safe_u256");
|
|
173
|
-
case OperatorType.TypeStringIndexof:
|
|
174
|
-
return parseTwoOperandNode(parserState, "calc_string_indexof");
|
|
175
|
-
case OperatorType.TypeStringNocaseIndexof:
|
|
176
|
-
return parseTwoOperandNode(parserState, "calc_string_nocase_indexof");
|
|
177
|
-
case OperatorType.TypedValueType:
|
|
178
|
-
return parseSingleOperandNode(parserState, "value_type");
|
|
179
|
-
case OperatorType.TypedValueVecLength:
|
|
180
|
-
return parseSingleOperandNode(parserState, "vec_length");
|
|
181
|
-
case OperatorType.TypedValueVecContains_Bool:
|
|
182
|
-
return parseMultiOperandNode(parserState, "vec_contains_bool");
|
|
183
|
-
case OperatorType.TypedValueVecContains_Address:
|
|
184
|
-
return parseMultiOperandNode(parserState, "vec_contains_address");
|
|
185
|
-
case OperatorType.TypedValueVecContains_String:
|
|
186
|
-
return parseMultiOperandNode(parserState, "vec_contains_string");
|
|
187
|
-
case OperatorType.TypedValueVecContains_StringNoCase:
|
|
188
|
-
return parseMultiOperandNode(parserState, "vec_contains_string_nocase");
|
|
189
|
-
case OperatorType.TypedValueVecContains_Number:
|
|
190
|
-
return parseMultiOperandNode(parserState, "vec_contains_number");
|
|
191
|
-
case OperatorType.TypedValueVecIndexOf_Bool:
|
|
192
|
-
return parseTwoOperandNode(parserState, "vec_indexof_bool");
|
|
193
|
-
case OperatorType.TypedValueVecIndexOf_Address:
|
|
194
|
-
return parseTwoOperandNode(parserState, "vec_indexof_address");
|
|
195
|
-
case OperatorType.TypedValueVecIndexOf_String:
|
|
196
|
-
return parseTwoOperandNode(parserState, "vec_indexof_string");
|
|
197
|
-
case OperatorType.TypedValueVecIndexOf_StringNoCase:
|
|
198
|
-
return parseTwoOperandNode(parserState, "vec_indexof_string_nocase");
|
|
199
|
-
case OperatorType.TypedValueVecIndexOf_Number:
|
|
200
|
-
return parseTwoOperandNode(parserState, "vec_indexof_number");
|
|
201
|
-
case ContextType.TypeSigner:
|
|
202
|
-
return { type: "context", context: "Signer" };
|
|
203
|
-
case ContextType.TypeGuard:
|
|
204
|
-
return { type: "context", context: "Guard" };
|
|
205
|
-
case ContextType.TypeClock:
|
|
206
|
-
return { type: "context", context: "Clock" };
|
|
207
|
-
default:
|
|
208
|
-
throw new Error(`ParseGuardNode: Unknown opcode: ${opCode}`);
|
|
209
|
-
}
|
|
210
|
-
};
|
|
211
|
-
const parseMultiOperandNode = (parserState, nodeProperty) => {
|
|
212
|
-
if (parserState.currentPosition >= parserState.output.length) {
|
|
213
|
-
W_ERROR(WErrors.InvalidParam, "parseMultiOperandNode: Insufficient data for multi-operand operation");
|
|
214
|
-
}
|
|
215
|
-
const operandCount = parserState.output[parserState.currentPosition];
|
|
216
|
-
parserState.currentPosition++;
|
|
217
|
-
const operands = [];
|
|
218
|
-
for (let i = 0; i < operandCount; i++) {
|
|
219
|
-
operands.unshift(parseNode(parserState));
|
|
220
|
-
}
|
|
221
|
-
const node = {
|
|
222
|
-
type: nodeProperty,
|
|
223
|
-
nodes: operands,
|
|
224
|
-
};
|
|
225
|
-
return node;
|
|
226
|
-
};
|
|
227
|
-
const parseSingleOperandNode = (parserState, nodeProperty) => {
|
|
228
|
-
const operand = parseNode(parserState);
|
|
229
|
-
return createSingleOperandNode(nodeProperty, operand);
|
|
230
|
-
};
|
|
231
|
-
const parseTwoOperandNode = (parserState, nodeProperty) => {
|
|
232
|
-
if (parserState.currentPosition >= parserState.output.length) {
|
|
233
|
-
W_ERROR(WErrors.InvalidParam, "parseTwoOperandNode: Missing order byte");
|
|
234
|
-
}
|
|
235
|
-
const orderByte = parserState.output[parserState.currentPosition];
|
|
236
|
-
parserState.currentPosition++;
|
|
237
|
-
const order = orderByte === 0 ? "forward" : "backward";
|
|
238
|
-
const nodeRight = parseNode(parserState);
|
|
239
|
-
const nodeLeft = parseNode(parserState);
|
|
240
|
-
const node = {
|
|
241
|
-
type: nodeProperty,
|
|
242
|
-
nodeLeft,
|
|
243
|
-
nodeRight,
|
|
244
|
-
order,
|
|
245
|
-
};
|
|
246
|
-
return node;
|
|
247
|
-
};
|
|
248
|
-
const parseQueryNode = (parserState) => {
|
|
249
|
-
if (parserState.currentPosition >= parserState.output.length) {
|
|
250
|
-
W_ERROR(WErrors.InvalidParam, "parseQueryNode: Missing witness byte after TypeQuery opcode");
|
|
251
|
-
}
|
|
252
|
-
const witnessByte = parserState.output[parserState.currentPosition];
|
|
253
|
-
parserState.currentPosition++;
|
|
254
|
-
if (parserState.currentPosition >= parserState.output.length) {
|
|
255
|
-
W_ERROR(WErrors.InvalidParam, "parseQueryNode: Missing object identifier after witness byte");
|
|
256
|
-
}
|
|
257
|
-
const objectIdentifier = parserState.output[parserState.currentPosition];
|
|
258
|
-
parserState.currentPosition++;
|
|
259
|
-
const remainingBytes = parserState.output.subarray(parserState.currentPosition);
|
|
260
|
-
if (remainingBytes.length < 2) {
|
|
261
|
-
W_ERROR(WErrors.InvalidParam, "parseQueryNode: Not enough bytes for query ID after object identifier");
|
|
262
|
-
}
|
|
263
|
-
const queryId = bcs.U16.parse(remainingBytes);
|
|
264
|
-
parserState.currentPosition += 2;
|
|
265
|
-
const query = GUARDQUERY.find((q) => q.id === queryId);
|
|
266
|
-
if (!query) {
|
|
267
|
-
W_ERROR(WErrors.InvalidParam, `parseQueryNode: Query with ID ${queryId} not found`);
|
|
268
|
-
}
|
|
269
|
-
const queryInfo = getGuardQueryInfo(queryId);
|
|
270
|
-
if (!queryInfo) {
|
|
271
|
-
W_ERROR(WErrors.InvalidParam, `parseQueryNode: Query name not found for ID ${queryId}`);
|
|
272
|
-
}
|
|
273
|
-
const parameters = [];
|
|
274
|
-
const paramTypes = queryInfo.parameters;
|
|
275
|
-
for (let i = paramTypes.length - 1; i >= 0; i--) {
|
|
276
|
-
parameters.unshift(parseNode(parserState));
|
|
277
|
-
}
|
|
278
|
-
const node = {
|
|
279
|
-
type: "query",
|
|
280
|
-
query: queryInfo.name,
|
|
281
|
-
object: {
|
|
282
|
-
identifier: objectIdentifier,
|
|
283
|
-
...(witnessByte !== ContextType.TypeConstant
|
|
284
|
-
? { convert_witness: witnessByte }
|
|
285
|
-
: {}),
|
|
286
|
-
},
|
|
287
|
-
parameters,
|
|
288
|
-
};
|
|
289
|
-
return node;
|
|
290
|
-
};
|
|
291
|
-
export const restoreNodeFromOutput = (output, table) => {
|
|
292
|
-
try {
|
|
293
|
-
if (!output || output.length === 0) {
|
|
294
|
-
W_ERROR(WErrors.InvalidParam, "restoreNodeFromOutput: output is empty");
|
|
295
|
-
}
|
|
296
|
-
const nodeStack = [];
|
|
297
|
-
const rep_quote = new Map();
|
|
298
|
-
let position = 0;
|
|
299
|
-
const readByte = () => {
|
|
300
|
-
if (position >= output.length) {
|
|
301
|
-
W_ERROR(WErrors.InvalidParam, "readByte: Unexpected end of output");
|
|
302
|
-
}
|
|
303
|
-
return output[position++];
|
|
304
|
-
};
|
|
305
|
-
const readU16 = () => {
|
|
306
|
-
if (position + 2 > output.length) {
|
|
307
|
-
W_ERROR(WErrors.InvalidParam, "readU16: Insufficient bytes for u16");
|
|
308
|
-
}
|
|
309
|
-
const value = output[position] + output[position + 1] * 256;
|
|
310
|
-
position += 2;
|
|
311
|
-
return value;
|
|
312
|
-
};
|
|
313
|
-
while (position < output.length) {
|
|
314
|
-
const opCode = readByte();
|
|
315
|
-
switch (opCode) {
|
|
316
|
-
case ContextType.TypeConstant: {
|
|
317
|
-
const identifier = readByte();
|
|
318
|
-
nodeStack.push({ type: "identifier", identifier });
|
|
319
|
-
break;
|
|
320
|
-
}
|
|
321
|
-
case ContextType.TypeSigner:
|
|
322
|
-
nodeStack.push({ type: "context", context: "Signer" });
|
|
323
|
-
break;
|
|
324
|
-
case ContextType.TypeClock:
|
|
325
|
-
nodeStack.push({ type: "context", context: "Clock" });
|
|
326
|
-
break;
|
|
327
|
-
case ContextType.TypeGuard:
|
|
328
|
-
nodeStack.push({ type: "context", context: "Guard" });
|
|
329
|
-
break;
|
|
330
|
-
case OperatorType.TypeQuery: {
|
|
331
|
-
const witnessByte = readByte();
|
|
332
|
-
const identifier = readByte();
|
|
333
|
-
const queryId = readU16();
|
|
334
|
-
const queryInfo = getGuardQueryInfo(queryId);
|
|
335
|
-
if (!queryInfo) {
|
|
336
|
-
W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Query with ID ${queryId} not found`);
|
|
337
|
-
}
|
|
338
|
-
const parameters = [];
|
|
339
|
-
for (let i = 0; i < queryInfo.parameters.length; i++) {
|
|
340
|
-
if (nodeStack.length === 0) {
|
|
341
|
-
W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Insufficient parameters for query ${queryInfo.name}`);
|
|
342
|
-
}
|
|
343
|
-
parameters.unshift(nodeStack.pop());
|
|
344
|
-
}
|
|
345
|
-
if (queryInfo.id === 1167 &&
|
|
346
|
-
parameters[0].type === "identifier" &&
|
|
347
|
-
parameters[0]?.identifier != null) {
|
|
348
|
-
const rep_item = table.find((item) => item.identifier === identifier &&
|
|
349
|
-
!item.b_submission);
|
|
350
|
-
const policy_item = table.find((item) => item.identifier ===
|
|
351
|
-
parameters[0].identifier &&
|
|
352
|
-
!item.b_submission);
|
|
353
|
-
const repItemValueType = rep_item
|
|
354
|
-
? parseValueType(rep_item.value_type)
|
|
355
|
-
: undefined;
|
|
356
|
-
const policyItemValueType = policy_item
|
|
357
|
-
? parseValueType(policy_item.value_type)
|
|
358
|
-
: undefined;
|
|
359
|
-
if (rep_item &&
|
|
360
|
-
policy_item &&
|
|
361
|
-
repItemValueType === ValueType.Address &&
|
|
362
|
-
policyItemValueType === ValueType.String) {
|
|
363
|
-
if (rep_quote.has(rep_item.value)) {
|
|
364
|
-
if (!rep_quote
|
|
365
|
-
.get(rep_item.value)
|
|
366
|
-
.includes(policy_item.value)) {
|
|
367
|
-
rep_quote
|
|
368
|
-
.get(rep_item.value)
|
|
369
|
-
.push(policy_item.value);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
else {
|
|
373
|
-
rep_quote.set(rep_item.value, [
|
|
374
|
-
policy_item.value,
|
|
375
|
-
]);
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
nodeStack.push({
|
|
380
|
-
type: "query",
|
|
381
|
-
query: queryInfo.name,
|
|
382
|
-
object: {
|
|
383
|
-
identifier,
|
|
384
|
-
...(witnessByte !== ContextType.TypeConstant
|
|
385
|
-
? { convert_witness: witnessByte }
|
|
386
|
-
: {}),
|
|
387
|
-
},
|
|
388
|
-
parameters,
|
|
389
|
-
});
|
|
390
|
-
break;
|
|
391
|
-
}
|
|
392
|
-
case OperatorType.TypeLogicEqual:
|
|
393
|
-
case OperatorType.TypeLogicAnd:
|
|
394
|
-
case OperatorType.TypeLogicOr:
|
|
395
|
-
case OperatorType.TypeLogicAsU256GreaterEqual:
|
|
396
|
-
case OperatorType.TypeLogicAsU256LesserEqual:
|
|
397
|
-
case OperatorType.TypeLogicAsU256Equal:
|
|
398
|
-
case OperatorType.TypeLogicAsU256Greater:
|
|
399
|
-
case OperatorType.TypeLogicAsU256Lesser:
|
|
400
|
-
case OperatorType.TypeStringContains:
|
|
401
|
-
case OperatorType.TypeStringNocaseContains:
|
|
402
|
-
case OperatorType.TypeStringNocaseEqual:
|
|
403
|
-
case OperatorType.TypeNumberAdd:
|
|
404
|
-
case OperatorType.TypeNumberSubtract:
|
|
405
|
-
case OperatorType.TypeNumberMultiply:
|
|
406
|
-
case OperatorType.TypeNumberDivide:
|
|
407
|
-
case OperatorType.TypeNumberMod: {
|
|
408
|
-
const operandCount = readByte();
|
|
409
|
-
const operands = [];
|
|
410
|
-
for (let i = 0; i < operandCount; i++) {
|
|
411
|
-
if (nodeStack.length === 0) {
|
|
412
|
-
W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Insufficient operands for multi-operand operation`);
|
|
413
|
-
}
|
|
414
|
-
operands.push(nodeStack.pop());
|
|
415
|
-
}
|
|
416
|
-
const nodeProperty = getNodePropertyFromOpCode(opCode);
|
|
417
|
-
nodeStack.push({
|
|
418
|
-
type: nodeProperty,
|
|
419
|
-
nodes: operands,
|
|
420
|
-
});
|
|
421
|
-
break;
|
|
422
|
-
}
|
|
423
|
-
case OperatorType.TypeLogicNot:
|
|
424
|
-
case OperatorType.TypeStringLength:
|
|
425
|
-
case OperatorType.TypeNumberAddress:
|
|
426
|
-
case OperatorType.TypeAddressNumber:
|
|
427
|
-
case OperatorType.TypeNumberString:
|
|
428
|
-
case OperatorType.TypeStringNumber:
|
|
429
|
-
case OperatorType.TypeSafeU8:
|
|
430
|
-
case OperatorType.TypeSafeU16:
|
|
431
|
-
case OperatorType.TypeSafeU32:
|
|
432
|
-
case OperatorType.TypeSafeU64:
|
|
433
|
-
case OperatorType.TypeSafeU128:
|
|
434
|
-
case OperatorType.TypeSafeU256:
|
|
435
|
-
case OperatorType.TypedValueType:
|
|
436
|
-
case OperatorType.TypedValueVecLength: {
|
|
437
|
-
if (nodeStack.length === 0) {
|
|
438
|
-
W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Insufficient operand for single-operand operation`);
|
|
439
|
-
}
|
|
440
|
-
const operand = nodeStack.pop();
|
|
441
|
-
const nodeProperty = getNodePropertyFromOpCode(opCode);
|
|
442
|
-
nodeStack.push({
|
|
443
|
-
type: nodeProperty,
|
|
444
|
-
node: operand,
|
|
445
|
-
});
|
|
446
|
-
break;
|
|
447
|
-
}
|
|
448
|
-
case OperatorType.TypeStringIndexof:
|
|
449
|
-
case OperatorType.TypeStringNocaseIndexof:
|
|
450
|
-
case OperatorType.TypedValueVecIndexOf_Bool:
|
|
451
|
-
case OperatorType.TypedValueVecIndexOf_Address:
|
|
452
|
-
case OperatorType.TypedValueVecIndexOf_String:
|
|
453
|
-
case OperatorType.TypedValueVecIndexOf_StringNoCase:
|
|
454
|
-
case OperatorType.TypedValueVecIndexOf_Number: {
|
|
455
|
-
const orderByte = readByte();
|
|
456
|
-
const order = orderByte === 0 ? "forward" : "backward";
|
|
457
|
-
if (nodeStack.length < 2) {
|
|
458
|
-
W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Insufficient operands for two-operand operation`);
|
|
459
|
-
}
|
|
460
|
-
const nodeLeft = nodeStack.pop();
|
|
461
|
-
const nodeRight = nodeStack.pop();
|
|
462
|
-
const nodeProperty = getNodePropertyFromOpCode(opCode);
|
|
463
|
-
nodeStack.push({
|
|
464
|
-
type: nodeProperty,
|
|
465
|
-
nodeLeft,
|
|
466
|
-
nodeRight,
|
|
467
|
-
order,
|
|
468
|
-
});
|
|
469
|
-
break;
|
|
470
|
-
}
|
|
471
|
-
default:
|
|
472
|
-
W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Unknown opcode ${opCode}`);
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
if (nodeStack.length !== 1) {
|
|
476
|
-
W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Expected 1 node in stack, found ${nodeStack.length}`);
|
|
477
|
-
}
|
|
478
|
-
return {
|
|
479
|
-
root: nodeStack[0],
|
|
480
|
-
rep_quote,
|
|
481
|
-
};
|
|
482
|
-
}
|
|
483
|
-
catch (error) {
|
|
484
|
-
throw new Error(`restoreNodeFromOutput: Failed to restore GuardNode from output: ${error.message}`);
|
|
485
|
-
}
|
|
486
|
-
};
|
|
487
|
-
const getNodePropertyFromOpCode = (opCode) => {
|
|
488
|
-
switch (opCode) {
|
|
489
|
-
case OperatorType.TypeLogicEqual:
|
|
490
|
-
return "logic_equal";
|
|
491
|
-
case OperatorType.TypeLogicAnd:
|
|
492
|
-
return "logic_and";
|
|
493
|
-
case OperatorType.TypeLogicOr:
|
|
494
|
-
return "logic_or";
|
|
495
|
-
case OperatorType.TypeLogicAsU256GreaterEqual:
|
|
496
|
-
return "logic_as_u256_greater_or_equal";
|
|
497
|
-
case OperatorType.TypeLogicAsU256LesserEqual:
|
|
498
|
-
return "logic_as_u256_lesser_or_equal";
|
|
499
|
-
case OperatorType.TypeLogicAsU256Equal:
|
|
500
|
-
return "logic_as_u256_equal";
|
|
501
|
-
case OperatorType.TypeLogicAsU256Greater:
|
|
502
|
-
return "logic_as_u256_greater";
|
|
503
|
-
case OperatorType.TypeLogicAsU256Lesser:
|
|
504
|
-
return "logic_as_u256_lesser";
|
|
505
|
-
case OperatorType.TypeStringContains:
|
|
506
|
-
return "logic_string_contains";
|
|
507
|
-
case OperatorType.TypeStringNocaseContains:
|
|
508
|
-
return "logic_string_nocase_contains";
|
|
509
|
-
case OperatorType.TypeStringNocaseEqual:
|
|
510
|
-
return "logic_string_nocase_equal";
|
|
511
|
-
case OperatorType.TypeNumberAdd:
|
|
512
|
-
return "calc_number_add";
|
|
513
|
-
case OperatorType.TypeNumberSubtract:
|
|
514
|
-
return "calc_number_subtract";
|
|
515
|
-
case OperatorType.TypeNumberMultiply:
|
|
516
|
-
return "calc_number_multiply";
|
|
517
|
-
case OperatorType.TypeNumberDivide:
|
|
518
|
-
return "calc_number_divide";
|
|
519
|
-
case OperatorType.TypeNumberMod:
|
|
520
|
-
return "calc_number_mod";
|
|
521
|
-
case OperatorType.TypeLogicNot:
|
|
522
|
-
return "logic_not";
|
|
523
|
-
case OperatorType.TypeStringLength:
|
|
524
|
-
return "calc_string_length";
|
|
525
|
-
case OperatorType.TypeNumberAddress:
|
|
526
|
-
return "convert_number_address";
|
|
527
|
-
case OperatorType.TypeAddressNumber:
|
|
528
|
-
return "convert_address_number";
|
|
529
|
-
case OperatorType.TypeNumberString:
|
|
530
|
-
return "convert_number_string";
|
|
531
|
-
case OperatorType.TypeStringNumber:
|
|
532
|
-
return "convert_string_number";
|
|
533
|
-
case OperatorType.TypeSafeU8:
|
|
534
|
-
return "convert_safe_u8";
|
|
535
|
-
case OperatorType.TypeSafeU16:
|
|
536
|
-
return "convert_safe_u16";
|
|
537
|
-
case OperatorType.TypeSafeU32:
|
|
538
|
-
return "convert_safe_u32";
|
|
539
|
-
case OperatorType.TypeSafeU64:
|
|
540
|
-
return "convert_safe_u64";
|
|
541
|
-
case OperatorType.TypeSafeU128:
|
|
542
|
-
return "convert_safe_u128";
|
|
543
|
-
case OperatorType.TypeSafeU256:
|
|
544
|
-
return "convert_safe_u256";
|
|
545
|
-
case OperatorType.TypedValueType:
|
|
546
|
-
return "value_type";
|
|
547
|
-
case OperatorType.TypedValueVecLength:
|
|
548
|
-
return "vec_length";
|
|
549
|
-
case OperatorType.TypeStringIndexof:
|
|
550
|
-
return "calc_string_indexof";
|
|
551
|
-
case OperatorType.TypeStringNocaseIndexof:
|
|
552
|
-
return "calc_string_nocase_indexof";
|
|
553
|
-
case OperatorType.TypedValueVecIndexOf_Bool:
|
|
554
|
-
return "vec_indexof_bool";
|
|
555
|
-
case OperatorType.TypedValueVecIndexOf_Address:
|
|
556
|
-
return "vec_indexof_address";
|
|
557
|
-
case OperatorType.TypedValueVecIndexOf_String:
|
|
558
|
-
return "vec_indexof_string";
|
|
559
|
-
case OperatorType.TypedValueVecIndexOf_StringNoCase:
|
|
560
|
-
return "vec_indexof_string_nocase";
|
|
561
|
-
case OperatorType.TypedValueVecIndexOf_Number:
|
|
562
|
-
return "vec_indexof_number";
|
|
563
|
-
default:
|
|
564
|
-
return "unknown";
|
|
565
|
-
}
|
|
566
|
-
};
|
|
1
|
+
import{bcs}from'../../bcs/index.js';import{isValueTypeNumber,OperatorType,ValueType,parseValueType}from'../common.js';import{ContextType,MAX_ENV_PERMISSION_GUARD_COUNT}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';import{Config,GetAccountOrMark_Address}from'../local/index.js';import{LocalMark}from'../local/local.js';import{GUARDQUERY,getGuardQueryInfo}from'./guard-ins.js';const ProgressHistoryFindConditionsBCS=bcs['struct']('ProgressHistoryFindConditions',{'node':bcs['option'](bcs['String']),'next_node':bcs['option'](bcs['String']),'time_min':bcs['option'](bcs['U64']),'time_max':bcs['option'](bcs['U64']),'find':bcs['U8']}),ProgressSessionFindConditionsBCS=bcs['struct']('ProgressSessionFindConditions',{'next_node':bcs['option'](bcs['String']),'find':bcs['U8']}),ProgressForwardFindConditionsBCS=bcs['struct']('ProgressForwardFindConditions',{'who':bcs['option'](bcs['Address']),'operation':bcs['option'](bcs['String']),'accomplished':bcs['option'](bcs['Bool']),'time_min':bcs['option'](bcs['U64']),'time_max':bcs['option'](bcs['U64']),'find':bcs['U8']}),StoreFromIdFilterBCS=bcs['struct']('StoreFromIdFilter',{'mode':bcs['U8'],'value':bcs['option'](bcs['Address'])}),RecordQueryConditionsBCS=bcs['struct']('RecordQueryConditions',{'recipient':bcs['Address'],'guard':bcs['option'](bcs['Address']),'time_min':bcs['option'](bcs['U64']),'time_max':bcs['option'](bcs['U64']),'amount_min':bcs['option'](bcs['U64']),'amount_max':bcs['option'](bcs['U64']),'store_from_id':bcs['option'](StoreFromIdFilterBCS)});export const getCallEnvAccount=async a=>{const b=await GetAccountOrMark_Address({'name_or_address':a['account']||''});return!b&&W_ERROR(WErrors['InvalidParam'],'account\x20'+a['account']+'\x20not\x20found'),a['account']=b,b;};function createSingleOperandNode(a,b){const c={'type':a,'node':b};return c;}export const resolveCallEnv=async a=>{a['network']=await Config['Instance']()['network_get'](a?.['network']);const b=await getCallEnvAccount(a);if(a?.['permission_guard']&&a['permission_guard']?.['length']>0x0){const c=await LocalMark['Instance']()['get_many_address_availables'](a['permission_guard']);if(c['length']!==a['permission_guard']['length']){const d=new Set(c),e=a['permission_guard']['filter'](f=>!d['has'](f));W_ERROR(WErrors['InvalidParam'],'permission_guard\x20not\x20found:\x20'+e['join'](',\x20'));}a['permission_guard']=[...c],a['permission_guard']['length']>MAX_ENV_PERMISSION_GUARD_COUNT&&W_ERROR(WErrors['InvalidParam'],'permission_guard\x20length\x20'+a['permission_guard']['length']+'\x20exceeds\x20'+MAX_ENV_PERMISSION_GUARD_COUNT);}if(a?.['referrer']){const f=await GetAccountOrMark_Address({'name_or_address':a['referrer']||''});f?a['referrer']=f:W_ERROR(WErrors['InvalidParam'],'referrer\x20'+a['referrer']+'\x20not\x20found');}return b;};export const checkType=(a,b,c)=>{if(b==='variable')return;else{if(b==='number'){if(isValueTypeNumber(a)||a===ContextType['TypeClock']||a===ValueType['Value'])return;}else{if(b===ValueType['Address']){if(a===ContextType['TypeSigner']||a===ContextType['TypeGuard']||a===ValueType['Value'])return;}else{if(a===ValueType['Value'])return;else{if(b===ValueType['Value'])return;else{if(b==='vec_number'){if(a===ValueType['VecU8']||a===ValueType['VecU16']||a===ValueType['VecU32']||a===ValueType['VecU64']||a===ValueType['VecU128']||a===ValueType['VecU256'])return;}else{if(b==='vec'){if(a===ValueType['VecBool']||a===ValueType['VecAddress']||a===ValueType['VecString']||a===ValueType['VecU8']||a===ValueType['VecU16']||a===ValueType['VecU32']||a===ValueType['VecU64']||a===ValueType['VecU128']||a===ValueType['VecU256'])return;}}}}}}}a!==b&&W_ERROR(WErrors['InvalidParam'],'checkType:\x20'+a+'\x20require\x20type:\x20'+b+'\x20with\x20node:\x20'+JSON['stringify'](c));};const parseNode=a=>{a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseNode:\x20Unexpected\x20end\x20of\x20output\x20while\x20parsing\x20node');const b=a['output'][a['currentPosition']];a['currentPosition']++;switch(b){case ContextType['TypeConstant']:a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseNode:\x20Missing\x20identifier\x20after\x20TypeConstant\x20opcode');const c=a['output'][a['currentPosition']];a['currentPosition']++;return{'type':'identifier','identifier':c};case OperatorType['TypeQuery']:return parseQueryNode(a);case OperatorType['TypeLogicAsU256GreaterEqual']:return parseMultiOperandNode(a,'logic_as_u256_greater_or_equal');case OperatorType['TypeLogicAsU256LesserEqual']:return parseMultiOperandNode(a,'logic_as_u256_lesser_or_equal');case OperatorType['TypeLogicAsU256Equal']:return parseMultiOperandNode(a,'logic_as_u256_equal');case OperatorType['TypeLogicAsU256Greater']:return parseMultiOperandNode(a,'logic_as_u256_greater');case OperatorType['TypeLogicAsU256Lesser']:return parseMultiOperandNode(a,'logic_as_u256_lesser');case OperatorType['TypeLogicEqual']:return parseMultiOperandNode(a,'logic_equal');case OperatorType['TypeLogicAnd']:return parseMultiOperandNode(a,'logic_and');case OperatorType['TypeLogicOr']:return parseMultiOperandNode(a,'logic_or');case OperatorType['TypeStringContains']:return parseMultiOperandNode(a,'logic_string_contains');case OperatorType['TypeStringNocaseContains']:return parseMultiOperandNode(a,'logic_string_nocase_contains');case OperatorType['TypeStringNocaseEqual']:return parseMultiOperandNode(a,'logic_string_nocase_equal');case OperatorType['TypeNumberAdd']:return parseMultiOperandNode(a,'calc_number_add');case OperatorType['TypeNumberSubtract']:return parseMultiOperandNode(a,'calc_number_subtract');case OperatorType['TypeNumberMultiply']:return parseMultiOperandNode(a,'calc_number_multiply');case OperatorType['TypeNumberDivide']:return parseMultiOperandNode(a,'calc_number_divide');case OperatorType['TypeNumberMod']:return parseMultiOperandNode(a,'calc_number_mod');case OperatorType['TypeLogicNot']:return parseSingleOperandNode(a,'logic_not');case OperatorType['TypeStringLength']:return parseSingleOperandNode(a,'calc_string_length');case OperatorType['TypeNumberAddress']:return parseSingleOperandNode(a,'convert_number_address');case OperatorType['TypeAddressNumber']:return parseSingleOperandNode(a,'convert_address_number');case OperatorType['TypeNumberString']:return parseSingleOperandNode(a,'convert_number_string');case OperatorType['TypeStringNumber']:return parseSingleOperandNode(a,'convert_string_number');case OperatorType['TypeSafeU8']:return parseSingleOperandNode(a,'convert_safe_u8');case OperatorType['TypeSafeU16']:return parseSingleOperandNode(a,'convert_safe_u16');case OperatorType['TypeSafeU32']:return parseSingleOperandNode(a,'convert_safe_u32');case OperatorType['TypeSafeU64']:return parseSingleOperandNode(a,'convert_safe_u64');case OperatorType['TypeSafeU128']:return parseSingleOperandNode(a,'convert_safe_u128');case OperatorType['TypeSafeU256']:return parseSingleOperandNode(a,'convert_safe_u256');case OperatorType['TypeStringIndexof']:return parseTwoOperandNode(a,'calc_string_indexof');case OperatorType['TypeStringNocaseIndexof']:return parseTwoOperandNode(a,'calc_string_nocase_indexof');case OperatorType['TypedValueType']:return parseSingleOperandNode(a,'value_type');case OperatorType['TypedValueVecLength']:return parseSingleOperandNode(a,'vec_length');case OperatorType['TypedValueVecContains_Bool']:return parseMultiOperandNode(a,'vec_contains_bool');case OperatorType['TypedValueVecContains_Address']:return parseMultiOperandNode(a,'vec_contains_address');case OperatorType['TypedValueVecContains_String']:return parseMultiOperandNode(a,'vec_contains_string');case OperatorType['TypedValueVecContains_StringNoCase']:return parseMultiOperandNode(a,'vec_contains_string_nocase');case OperatorType['TypedValueVecContains_Number']:return parseMultiOperandNode(a,'vec_contains_number');case OperatorType['TypedValueVecIndexOf_Bool']:return parseTwoOperandNode(a,'vec_indexof_bool');case OperatorType['TypedValueVecIndexOf_Address']:return parseTwoOperandNode(a,'vec_indexof_address');case OperatorType['TypedValueVecIndexOf_String']:return parseTwoOperandNode(a,'vec_indexof_string');case OperatorType['TypedValueVecIndexOf_StringNoCase']:return parseTwoOperandNode(a,'vec_indexof_string_nocase');case OperatorType['TypedValueVecIndexOf_Number']:return parseTwoOperandNode(a,'vec_indexof_number');case ContextType['TypeSigner']:return{'type':'context','context':'Signer'};case ContextType['TypeGuard']:return{'type':'context','context':'Guard'};case ContextType['TypeClock']:return{'type':'context','context':'Clock'};default:throw new Error('ParseGuardNode:\x20Unknown\x20opcode:\x20'+b);}},parseMultiOperandNode=(a,b)=>{a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseMultiOperandNode:\x20Insufficient\x20data\x20for\x20multi-operand\x20operation');const c=a['output'][a['currentPosition']];a['currentPosition']++;const d=[];for(let f=0x0;f<c;f++){d['unshift'](parseNode(a));}const e={'type':b,'nodes':d};return e;},parseSingleOperandNode=(a,b)=>{const c=parseNode(a);return createSingleOperandNode(b,c);},parseTwoOperandNode=(a,b)=>{a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseTwoOperandNode:\x20Missing\x20order\x20byte');const c=a['output'][a['currentPosition']];a['currentPosition']++;const d=c===0x0?'forward':'backward',e=parseNode(a),f=parseNode(a),g={'type':b,'nodeLeft':f,'nodeRight':e,'order':d};return g;},parseQueryNode=a=>{a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseQueryNode:\x20Missing\x20witness\x20byte\x20after\x20TypeQuery\x20opcode');const b=a['output'][a['currentPosition']];a['currentPosition']++;a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseQueryNode:\x20Missing\x20object\x20identifier\x20after\x20witness\x20byte');const c=a['output'][a['currentPosition']];a['currentPosition']++;const d=a['output']['subarray'](a['currentPosition']);d['length']<0x2&&W_ERROR(WErrors['InvalidParam'],'parseQueryNode:\x20Not\x20enough\x20bytes\x20for\x20query\x20ID\x20after\x20object\x20identifier');const e=bcs['U16']['parse'](d);a['currentPosition']+=0x2;const f=GUARDQUERY['find'](m=>m['id']===e);!f&&W_ERROR(WErrors['InvalidParam'],'parseQueryNode:\x20Query\x20with\x20ID\x20'+e+'\x20not\x20found');const g=getGuardQueryInfo(e);!g&&W_ERROR(WErrors['InvalidParam'],'parseQueryNode:\x20Query\x20name\x20not\x20found\x20for\x20ID\x20'+e);const h=[],j=g['parameters'];for(let m=j['length']-0x1;m>=0x0;m--){h['unshift'](parseNode(a));}const k=parseSpecializedQueryNode(e,c,h,a['table']);if(k)return k;const l={'type':'query','query':g['name'],'object':{'identifier':c,...b!==ContextType['TypeConstant']?{'convert_witness':b}:{}},'parameters':h};return l;},parseSpecializedQueryNode=(a,b,c,d)=>{if(a>=0x65a&&a<=0x65d)return parseRewardRecordQueryNode(a,b,c,d);if(a>=0x4fa&&a<=0x4ff)return parseProgressQueryNode(a,b,c,d);return null;},parseRewardRecordQueryNode=(a,b,c,d)=>{if(c['length']!==0x1||c[0x0]['type']!=='identifier')return null;const f=c[0x0]['identifier'];let g,h;switch(a){case 0x65a:g='query_reward_record_find',h='first';break;case 0x65b:g='query_reward_record_find',h='last';break;case 0x65c:g='query_reward_record_count';break;case 0x65d:g='query_reward_record_exists';break;default:return null;}const i=getConditionsFromTable(d,f);let j={};if(i)try{const m=RecordQueryConditionsBCS['parse'](i);j={'recipient':m['recipient'],'guard':m['guard'],'time_min':m['time_min'],'time_max':m['time_max'],'amount_min':m['amount_min'],'amount_max':m['amount_max']};}catch(n){}const k={};if(j['recipient'])k['recipient']=j['recipient'];if(j['guard'])k['guard']=j['guard'];if(j['time_min']!==null&&j['time_min']!==undefined)k['timeMin']=j['time_min']['toString']();if(j['time_max']!==null&&j['time_max']!==undefined)k['timeMax']=j['time_max']['toString']();if(j['amount_min']!==null&&j['amount_min']!==undefined)k['amountMin']=j['amount_min']['toString']();if(j['amount_max']!==null&&j['amount_max']!==undefined)k['amountMax']=j['amount_max']['toString']();const l={'object':{'identifier':b},'recipient':{'type':'identifier','identifier':f},'where':k};if(g==='query_reward_record_find')return{'type':g,...l,'find':h,'conditionsIdentifier':f};return{'type':g,...l,'conditionsIdentifier':f};},parseProgressQueryNode=(a,b,c,d)=>{switch(a){case 0x4fa:return parseProgressHistoryFindNode(b,c,d);case 0x4fb:return parseProgressSessionFindNode(b,c,d);case 0x4fc:return parseProgressForwardFindNode(b,c,d);case 0x4fd:return parseProgressSessionCountNode(b,c,d);case 0x4fe:return parseProgressForwardCountNode(b,c,d);case 0x4ff:return parseProgressRetainedCountNode(b,c,d);default:return null;}},parseProgressHistoryFindNode=(a,b,c)=>{if(b['length']!==0x1||b[0x0]['type']!=='identifier')return null;const d=b[0x0]['identifier'],f=getConditionsFromTable(c,d),g={};let h='first';if(f)try{const i=ProgressHistoryFindConditionsBCS['parse'](f);if(i['node'])g['node']=i['node'];if(i['next_node'])g['nextNode']=i['next_node'];if(i['time_min'])g['timeMin']=i['time_min']['toString']();if(i['time_max'])g['timeMax']=i['time_max']['toString']();h=i['find']===0x1?'last':'first';}catch(j){}return{'type':'query_progress_history_find','object':{'identifier':a},'where':g,'find':h,'conditionsIdentifier':d};},parseProgressSessionFindNode=(a,b,c)=>{if(b['length']!==0x2)return null;const d=b[0x0],f=b[0x1];if(d['type']!=='identifier')return null;if(f['type']!=='identifier'&&!f['type']['startsWith']('query_progress'))return null;const g=d['identifier'],h=getConditionsFromTable(c,g),i={};let j='first';if(h)try{const k=ProgressSessionFindConditionsBCS['parse'](h);if(k['next_node'])i['nextNode']=k['next_node'];j=k['find']===0x1?'last':'first';}catch(l){}return{'type':'query_progress_history_session_find','object':{'identifier':a},'historyIdx':f,'where':i,'find':j};},parseProgressForwardFindNode=(a,b,c)=>{if(b['length']!==0x3)return null;const d=b[0x0],f=b[0x1],g=b[0x2];if(d['type']!=='identifier')return null;const h=m=>m['type']==='identifier'||m['type']['startsWith']('query_progress');if(!h(f)||!h(g))return null;const i=d['identifier'],j=getConditionsFromTable(c,i),k={};let l='first';if(j)try{const m=ProgressForwardFindConditionsBCS['parse'](j);if(m['who'])k['who']=m['who'];if(m['operation'])k['operation']=m['operation'];if(m['accomplished']!==undefined)k['accomplished']=m['accomplished'];if(m['time_min'])k['timeMin']=m['time_min']['toString']();if(m['time_max'])k['timeMax']=m['time_max']['toString']();l=m['find']===0x1?'last':'first';}catch(n){}return{'type':'query_progress_history_session_forward_find','object':{'identifier':a},'historyIdx':g,'sessionIdx':f,'where':k,'find':l};},parseProgressSessionCountNode=(a,b,c)=>{if(b['length']!==0x1)return null;const d=b[0x0];if(d['type']!=='identifier'&&!d['type']['startsWith']('query_progress'))return null;return{'type':'query_progress_history_session_count','object':{'identifier':a},'historyIdx':d};},parseProgressForwardCountNode=(a,b,c)=>{if(b['length']!==0x2)return null;const d=b[0x0],e=b[0x1],f=g=>g['type']==='identifier'||g['type']['startsWith']('query_progress');if(!f(d)||!f(e))return null;return{'type':'query_progress_history_session_forward_count','object':{'identifier':a},'historyIdx':d,'sessionIdx':e};},parseProgressRetainedCountNode=(a,b,c)=>{if(b['length']!==0x3)return null;const d=b[0x0],e=b[0x1],f=b[0x2],g=h=>h['type']==='identifier'||h['type']['startsWith']('query_progress');if(!g(d)||!g(e)||!g(f))return null;return{'type':'query_progress_history_session_forward_retained_submission_count','object':{'identifier':a},'historyIdx':d,'sessionIdx':e,'forwardIdx':f};},getConditionsFromTable=(a,b)=>{const c=a['find'](d=>d['identifier']===b);if(!c||!c['value'])return null;if(Array['isArray'](c['value'])&&c['value']['length']>0x0&&typeof c['value'][0x0]==='number')return new Uint8Array(c['value']);return null;},createQueryNode=(a,b,c,d,e,f)=>{switch(a){case 0x4fa:{const g=parseProgressHistoryFindNode(c,e,f);if(g)return g;break;}case 0x4fb:{const h=parseProgressSessionFindNode(c,e,f);if(h)return h;break;}case 0x4fc:{const i=parseProgressForwardFindNode(c,e,f);if(i)return i;break;}case 0x4fd:{const j=parseProgressSessionCountNode(c,e,f);if(j)return j;break;}case 0x4fe:{const k=parseProgressForwardCountNode(c,e,f);if(k)return k;break;}case 0x4ff:{const l=parseProgressRetainedCountNode(c,e,f);if(l)return l;break;}}return{'type':'query','query':b,'object':{'identifier':c,...d!==ContextType['TypeConstant']?{'convert_witness':d}:{}},'parameters':e};};export const restoreNodeFromOutput=(a,b)=>{try{(!a||a['length']===0x0)&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20output\x20is\x20empty');const c=[],d=new Map();let e=0x0;const f=()=>{return e>=a['length']&&W_ERROR(WErrors['InvalidParam'],'readByte:\x20Unexpected\x20end\x20of\x20output'),a[e++];},g=()=>{e+0x2>a['length']&&W_ERROR(WErrors['InvalidParam'],'readU16:\x20Insufficient\x20bytes\x20for\x20u16');const j=a[e]+a[e+0x1]*0x100;return e+=0x2,j;};while(e<a['length']){const j=f();switch(j){case ContextType['TypeConstant']:{const k=f();c['push']({'type':'identifier','identifier':k});break;}case ContextType['TypeSigner']:c['push']({'type':'context','context':'Signer'});break;case ContextType['TypeClock']:c['push']({'type':'context','context':'Clock'});break;case ContextType['TypeGuard']:c['push']({'type':'context','context':'Guard'});break;case OperatorType['TypeQuery']:{const l=f(),m=f(),n=g(),o=getGuardQueryInfo(n);!o&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Query\x20with\x20ID\x20'+n+'\x20not\x20found');const p=[];for(let r=0x0;r<o['parameters']['length'];r++){c['length']===0x0&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Insufficient\x20parameters\x20for\x20query\x20'+o['name']),p['unshift'](c['pop']());}if(o['id']===0x48f&&p[0x0]['type']==='identifier'&&p[0x0]?.['identifier']!=null){const s=b['find'](w=>w['identifier']===m&&!w['b_submission']),t=b['find'](w=>w['identifier']===p[0x0]['identifier']&&!w['b_submission']),u=s?parseValueType(s['value_type']):undefined,v=t?parseValueType(t['value_type']):undefined;s&&t&&u===ValueType['Address']&&v===ValueType['String']&&(d['has'](s['value'])?!d['get'](s['value'])['includes'](t['value'])&&d['get'](s['value'])['push'](t['value']):d['set'](s['value'],[t['value']]));}const q=createQueryNode(o['id'],o['name'],m,l,p,b);c['push'](q);break;}case OperatorType['TypeLogicEqual']:case OperatorType['TypeLogicAnd']:case OperatorType['TypeLogicOr']:case OperatorType['TypeLogicAsU256GreaterEqual']:case OperatorType['TypeLogicAsU256LesserEqual']:case OperatorType['TypeLogicAsU256Equal']:case OperatorType['TypeLogicAsU256Greater']:case OperatorType['TypeLogicAsU256Lesser']:case OperatorType['TypeStringContains']:case OperatorType['TypeStringNocaseContains']:case OperatorType['TypeStringNocaseEqual']:case OperatorType['TypeNumberAdd']:case OperatorType['TypeNumberSubtract']:case OperatorType['TypeNumberMultiply']:case OperatorType['TypeNumberDivide']:case OperatorType['TypeNumberMod']:{const w=f(),x=[];for(let z=0x0;z<w;z++){c['length']===0x0&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Insufficient\x20operands\x20for\x20multi-operand\x20operation'),x['push'](c['pop']());}const y=getNodePropertyFromOpCode(j);c['push']({'type':y,'nodes':x});break;}case OperatorType['TypeLogicNot']:case OperatorType['TypeStringLength']:case OperatorType['TypeNumberAddress']:case OperatorType['TypeAddressNumber']:case OperatorType['TypeNumberString']:case OperatorType['TypeStringNumber']:case OperatorType['TypeSafeU8']:case OperatorType['TypeSafeU16']:case OperatorType['TypeSafeU32']:case OperatorType['TypeSafeU64']:case OperatorType['TypeSafeU128']:case OperatorType['TypeSafeU256']:case OperatorType['TypedValueType']:case OperatorType['TypedValueVecLength']:{c['length']===0x0&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Insufficient\x20operand\x20for\x20single-operand\x20operation');const A=c['pop'](),B=getNodePropertyFromOpCode(j);c['push']({'type':B,'node':A});break;}case OperatorType['TypeStringIndexof']:case OperatorType['TypeStringNocaseIndexof']:case OperatorType['TypedValueVecIndexOf_Bool']:case OperatorType['TypedValueVecIndexOf_Address']:case OperatorType['TypedValueVecIndexOf_String']:case OperatorType['TypedValueVecIndexOf_StringNoCase']:case OperatorType['TypedValueVecIndexOf_Number']:{const C=f(),D=C===0x0?'forward':'backward';c['length']<0x2&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Insufficient\x20operands\x20for\x20two-operand\x20operation');const E=c['pop'](),F=c['pop'](),G=getNodePropertyFromOpCode(j);c['push']({'type':G,'nodeLeft':E,'nodeRight':F,'order':D});break;}default:W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Unknown\x20opcode\x20'+j);}}c['length']!==0x1&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Expected\x201\x20node\x20in\x20stack,\x20found\x20'+c['length']);const h=collectAutoGeneratedIdentifiers(c[0x0]);return{'root':c[0x0],'rep_quote':d,'autoGeneratedIdentifiers':h};}catch(H){throw new Error('restoreNodeFromOutput:\x20Failed\x20to\x20restore\x20GuardNode\x20from\x20output:\x20'+H['message']);}};const collectAutoGeneratedIdentifiers=a=>{const b=[];switch(a['type']){case'query_progress_history_find':break;case'query_progress_history_session_find':b['push'](...collectAutoGeneratedIdentifiers(a['historyIdx']));break;case'query_progress_history_session_forward_find':b['push'](...collectAutoGeneratedIdentifiers(a['historyIdx'])),b['push'](...collectAutoGeneratedIdentifiers(a['sessionIdx']));break;case'query_progress_history_session_count':b['push'](...collectAutoGeneratedIdentifiers(a['historyIdx']));break;case'query_progress_history_session_forward_count':b['push'](...collectAutoGeneratedIdentifiers(a['historyIdx'])),b['push'](...collectAutoGeneratedIdentifiers(a['sessionIdx']));break;case'query_progress_history_session_forward_retained_submission_count':b['push'](...collectAutoGeneratedIdentifiers(a['historyIdx'])),b['push'](...collectAutoGeneratedIdentifiers(a['sessionIdx'])),b['push'](...collectAutoGeneratedIdentifiers(a['forwardIdx']));break;case'query_reward_record_find':case'query_reward_record_count':case'query_reward_record_exists':a['recipient']['type']==='identifier'&&b['push'](a['recipient']['identifier']);break;case'logic_equal':case'logic_and':case'logic_or':case'logic_as_u256_greater_or_equal':case'logic_as_u256_lesser_or_equal':case'logic_as_u256_equal':case'logic_as_u256_greater':case'logic_as_u256_lesser':case'logic_string_contains':case'logic_string_nocase_contains':case'logic_string_nocase_equal':case'calc_number_add':case'calc_number_multiply':case'calc_number_subtract':case'calc_number_divide':case'calc_number_mod':for(const c of a['nodes']){b['push'](...collectAutoGeneratedIdentifiers(c));}break;case'logic_not':case'calc_string_length':case'convert_number_address':case'convert_address_number':case'convert_number_string':case'convert_string_number':case'convert_safe_u8':case'convert_safe_u16':case'convert_safe_u32':case'convert_safe_u64':case'convert_safe_u128':case'convert_safe_u256':case'value_type':case'vec_length':b['push'](...collectAutoGeneratedIdentifiers(a['node']));break;case'calc_string_indexof':case'calc_string_nocase_indexof':case'vec_indexof_bool':case'vec_indexof_address':case'vec_indexof_string':case'vec_indexof_string_nocase':case'vec_indexof_number':b['push'](...collectAutoGeneratedIdentifiers(a['nodeLeft'])),b['push'](...collectAutoGeneratedIdentifiers(a['nodeRight']));break;case'vec_contains_bool':case'vec_contains_address':case'vec_contains_string':case'vec_contains_string_nocase':case'vec_contains_number':for(const d of a['nodes']){b['push'](...collectAutoGeneratedIdentifiers(d));}break;}return b;},getNodePropertyFromOpCode=a=>{switch(a){case OperatorType['TypeLogicEqual']:return'logic_equal';case OperatorType['TypeLogicAnd']:return'logic_and';case OperatorType['TypeLogicOr']:return'logic_or';case OperatorType['TypeLogicAsU256GreaterEqual']:return'logic_as_u256_greater_or_equal';case OperatorType['TypeLogicAsU256LesserEqual']:return'logic_as_u256_lesser_or_equal';case OperatorType['TypeLogicAsU256Equal']:return'logic_as_u256_equal';case OperatorType['TypeLogicAsU256Greater']:return'logic_as_u256_greater';case OperatorType['TypeLogicAsU256Lesser']:return'logic_as_u256_lesser';case OperatorType['TypeStringContains']:return'logic_string_contains';case OperatorType['TypeStringNocaseContains']:return'logic_string_nocase_contains';case OperatorType['TypeStringNocaseEqual']:return'logic_string_nocase_equal';case OperatorType['TypeNumberAdd']:return'calc_number_add';case OperatorType['TypeNumberSubtract']:return'calc_number_subtract';case OperatorType['TypeNumberMultiply']:return'calc_number_multiply';case OperatorType['TypeNumberDivide']:return'calc_number_divide';case OperatorType['TypeNumberMod']:return'calc_number_mod';case OperatorType['TypeLogicNot']:return'logic_not';case OperatorType['TypeStringLength']:return'calc_string_length';case OperatorType['TypeNumberAddress']:return'convert_number_address';case OperatorType['TypeAddressNumber']:return'convert_address_number';case OperatorType['TypeNumberString']:return'convert_number_string';case OperatorType['TypeStringNumber']:return'convert_string_number';case OperatorType['TypeSafeU8']:return'convert_safe_u8';case OperatorType['TypeSafeU16']:return'convert_safe_u16';case OperatorType['TypeSafeU32']:return'convert_safe_u32';case OperatorType['TypeSafeU64']:return'convert_safe_u64';case OperatorType['TypeSafeU128']:return'convert_safe_u128';case OperatorType['TypeSafeU256']:return'convert_safe_u256';case OperatorType['TypedValueType']:return'value_type';case OperatorType['TypedValueVecLength']:return'vec_length';case OperatorType['TypeStringIndexof']:return'calc_string_indexof';case OperatorType['TypeStringNocaseIndexof']:return'calc_string_nocase_indexof';case OperatorType['TypedValueVecIndexOf_Bool']:return'vec_indexof_bool';case OperatorType['TypedValueVecIndexOf_Address']:return'vec_indexof_address';case OperatorType['TypedValueVecIndexOf_String']:return'vec_indexof_string';case OperatorType['TypedValueVecIndexOf_StringNoCase']:return'vec_indexof_string_nocase';case OperatorType['TypedValueVecIndexOf_Number']:return'vec_indexof_number';default:return'unknown';}};
|