wowok 2.1.40 → 2.1.41
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 +111 -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 +111 -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
package/dist/cjs/w/call/order.js
CHANGED
|
@@ -1,337 +1 @@
|
|
|
1
|
-
import { toTxObject, PackageAddress, GetObjectExisted, IsValidArgType, serviceFn, } from "../common.js";
|
|
2
|
-
import { W_ERROR, WErrors } from "../exception.js";
|
|
3
|
-
import { GetAccountOrMark_Address, GetManyAccountOrMark_Address, } from "../local/index.js";
|
|
4
|
-
import { LocalMark } from "../local/local.js";
|
|
5
|
-
import { ArbStatus, ObjectType, query_objects } from "../query/object.js";
|
|
6
|
-
import { query_received } from "../query/received.js";
|
|
7
|
-
import { parseObjectType, validObjects } from "../util.js";
|
|
8
|
-
import { description_change, MAX_PROPOSITION_COUNT, objection, principal_confirm, proposition_change, } from "./arb.js";
|
|
9
|
-
import { CallBase } from "./base.js";
|
|
10
|
-
import { accomplish, getMachineNodeForward, hold } from "./progress.js";
|
|
11
|
-
export class CallOrder extends CallBase {
|
|
12
|
-
data;
|
|
13
|
-
object_address = undefined;
|
|
14
|
-
service = undefined;
|
|
15
|
-
constructor(data) {
|
|
16
|
-
super();
|
|
17
|
-
this.data = data;
|
|
18
|
-
}
|
|
19
|
-
async prepare(env) {
|
|
20
|
-
await super.prepare(env);
|
|
21
|
-
if (!this.object_address) {
|
|
22
|
-
this.object_address = await GetObjectExisted(this.data?.object);
|
|
23
|
-
}
|
|
24
|
-
if (this.object_address) {
|
|
25
|
-
this.content = undefined;
|
|
26
|
-
await this.update_content(env, ObjectType.Order, this.object_address);
|
|
27
|
-
if (!this.content) {
|
|
28
|
-
W_ERROR(WErrors.InvalidParam, "CallOrder_Data.data.object:" + this.object_address);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
W_ERROR(WErrors.InvalidParam, "CallOrder_Data.data.object:" + this.data?.object);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async call(env) {
|
|
36
|
-
await this.prepare(env);
|
|
37
|
-
const guards = [];
|
|
38
|
-
const add_guard = (guard) => {
|
|
39
|
-
if (!guards.includes(guard)) {
|
|
40
|
-
guards.push(guard);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
const orderObj = this.content;
|
|
44
|
-
if (this.data.progress != null) {
|
|
45
|
-
if (!orderObj.machine || !orderObj.progress) {
|
|
46
|
-
W_ERROR(WErrors.InvalidParam, "CallOrder_Data.data.progress error on progress not set");
|
|
47
|
-
}
|
|
48
|
-
const r = await query_objects({
|
|
49
|
-
objects: [orderObj.progress],
|
|
50
|
-
no_cache: env.no_cache,
|
|
51
|
-
network: env.network,
|
|
52
|
-
});
|
|
53
|
-
if (!r.objects ||
|
|
54
|
-
r.objects.length !== 1 ||
|
|
55
|
-
r.objects[0].type !== ObjectType.Progress) {
|
|
56
|
-
W_ERROR(WErrors.InvalidParam, "CallOrder_Data.data.progress fetch error");
|
|
57
|
-
}
|
|
58
|
-
const progressObj = r.objects[0];
|
|
59
|
-
const result = await getMachineNodeForward(env, progressObj.machine, progressObj.current, this.data.progress.operation.next_node_name, this.data.progress.operation.forward);
|
|
60
|
-
if (result.error) {
|
|
61
|
-
W_ERROR(WErrors.InvalidParam, `CallOrder_Data.data.progress.operation.forward:${this.data?.progress.operation.forward} validation failed. ${result.error}`);
|
|
62
|
-
}
|
|
63
|
-
if (result.forward?.guard) {
|
|
64
|
-
add_guard(result.forward.guard.guard);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (guards.length > 0) {
|
|
68
|
-
return await this.check_guard_and_call(env, guards);
|
|
69
|
-
}
|
|
70
|
-
return await this.exec(env);
|
|
71
|
-
}
|
|
72
|
-
async get_service(env) {
|
|
73
|
-
if (!this.service && this.content) {
|
|
74
|
-
const service_result = await query_objects({
|
|
75
|
-
objects: [this.content.service],
|
|
76
|
-
no_cache: env.no_cache,
|
|
77
|
-
network: env.network,
|
|
78
|
-
});
|
|
79
|
-
if (service_result.objects && service_result.objects.length === 1) {
|
|
80
|
-
const s = service_result.objects[0];
|
|
81
|
-
if (!s.type || s.type !== ObjectType.Service) {
|
|
82
|
-
W_ERROR(WErrors.IsValidArgType, `object ${this.content.service} type ${s.type} is not Service`);
|
|
83
|
-
}
|
|
84
|
-
const ty = parseObjectType(s.type_raw, "service::Service");
|
|
85
|
-
if (!ty) {
|
|
86
|
-
W_ERROR(WErrors.IsValidArgType, `Service ${this.content.service} type ${s.type_raw} is not valid`);
|
|
87
|
-
}
|
|
88
|
-
this.service = {
|
|
89
|
-
object: s,
|
|
90
|
-
type: ty,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
if (!this.service) {
|
|
95
|
-
W_ERROR(WErrors.InvalidParam, `CallOrder_Data.data.order_required_info error on service ${this.content.service}`);
|
|
96
|
-
}
|
|
97
|
-
return this.service;
|
|
98
|
-
}
|
|
99
|
-
async operate(env, tx, _passport, _submission) {
|
|
100
|
-
const content = this.content;
|
|
101
|
-
if (this.data.agent != null) {
|
|
102
|
-
agent_set(tx, {
|
|
103
|
-
order: toTxObject(tx, this.object_address),
|
|
104
|
-
agents: await GetManyAccountOrMark_Address(this.data.agent),
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
if (this.data.required_info !== undefined) {
|
|
108
|
-
await order_required_info_update(tx, toTxObject(tx, this.object_address), this.data.required_info);
|
|
109
|
-
}
|
|
110
|
-
if (this.data.progress != null) {
|
|
111
|
-
if (!content.machine) {
|
|
112
|
-
W_ERROR(WErrors.InvalidParam, "CallOrder_Data.data.progress fail with machine invalid for this order");
|
|
113
|
-
}
|
|
114
|
-
const r = await query_objects({
|
|
115
|
-
objects: [content.machine],
|
|
116
|
-
no_cache: env.no_cache,
|
|
117
|
-
network: env.network,
|
|
118
|
-
});
|
|
119
|
-
if (r.objects &&
|
|
120
|
-
r.objects.length === 1 &&
|
|
121
|
-
r.objects[0].type === ObjectType.Machine) {
|
|
122
|
-
const machine = r.objects[0];
|
|
123
|
-
if ("hold" in this.data.progress) {
|
|
124
|
-
hold(tx, this.object_address, machine.object, machine.permission, this.data.progress.operation.next_node_name, this.data.progress.operation.forward, this.data.progress.message ?? "", this.data.progress.hold, this.object_address, _passport);
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
accomplish(tx, this.object_address, machine.object, machine.permission, this.data.progress.operation.next_node_name, this.data.progress.operation.forward, this.data.progress.message ?? "", this.object_address, _passport);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
W_ERROR(WErrors.InvalidParam, "CallOrder_Data.data.progress fail with machine invalid for this order");
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
if (this.data.arb_confirm != null) {
|
|
135
|
-
const arb = await this.get_arb(env, this.data.arb_confirm.arb);
|
|
136
|
-
this.check_arb(content, arb, ArbStatus.Principal_confirming);
|
|
137
|
-
if (this.data.arb_confirm.proposition !== undefined) {
|
|
138
|
-
if (this.data.arb_confirm.proposition.length >
|
|
139
|
-
MAX_PROPOSITION_COUNT) {
|
|
140
|
-
W_ERROR(WErrors.InvalidParam, "CallOrder_Data.data.arb_confirm.proposition length must be less than or equal to " +
|
|
141
|
-
MAX_PROPOSITION_COUNT);
|
|
142
|
-
}
|
|
143
|
-
proposition_change(tx, arb.object.object, arb.type, toTxObject(tx, this.object_address), this.data.arb_confirm.proposition, this.data.arb_confirm.description, this.data.arb_confirm.confirm);
|
|
144
|
-
}
|
|
145
|
-
else if (this.data.arb_confirm.description !== undefined) {
|
|
146
|
-
description_change(tx, arb.object.object, arb.type, toTxObject(tx, this.object_address), this.data.arb_confirm.description, this.data.arb_confirm.confirm);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
principal_confirm(tx, arb.object.object, arb.type, toTxObject(tx, this.object_address), this.data.arb_confirm.confirm);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
if (this.data.arb_objection != null) {
|
|
153
|
-
const arb = await this.get_arb(env, this.data.arb_objection.arb);
|
|
154
|
-
this.check_arb(content, arb, ArbStatus.Arbitrated);
|
|
155
|
-
objection(tx, arb.object.object, arb.type, toTxObject(tx, this.object_address), this.data.arb_objection.objection);
|
|
156
|
-
}
|
|
157
|
-
if (this.data.arb_claim_compensation) {
|
|
158
|
-
const arb = await this.get_arb(env, this.data.arb_claim_compensation.arb);
|
|
159
|
-
this.check_arb(content, arb, ArbStatus.Arbitrated);
|
|
160
|
-
const service = await this.get_service(env);
|
|
161
|
-
compensation_claim(tx, {
|
|
162
|
-
service: service.object.object,
|
|
163
|
-
service_type: service.type,
|
|
164
|
-
arbitration_object: arb.object.arbitration,
|
|
165
|
-
arbitration_type: arb.type,
|
|
166
|
-
order: toTxObject(tx, this.object_address),
|
|
167
|
-
arb: arb.object.object,
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
if (this.data.receive != null && this.object_address) {
|
|
171
|
-
if (this.data.receive === "recently") {
|
|
172
|
-
this.data.receive = await query_received({
|
|
173
|
-
object: this.object_address,
|
|
174
|
-
all_type: true,
|
|
175
|
-
no_cache: env.no_cache,
|
|
176
|
-
network: env.network,
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
await owner_receive(tx, toTxObject(tx, this.object_address), this.data.receive);
|
|
180
|
-
}
|
|
181
|
-
if (this.data.transfer_to != null) {
|
|
182
|
-
await owner_change(tx, {
|
|
183
|
-
order: toTxObject(tx, this.object_address),
|
|
184
|
-
new_owner: this.data.transfer_to,
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
async get_arb(env, arb_address) {
|
|
189
|
-
const arb_result = await query_objects({
|
|
190
|
-
objects: [arb_address],
|
|
191
|
-
no_cache: env.no_cache,
|
|
192
|
-
network: env.network,
|
|
193
|
-
});
|
|
194
|
-
if (!arb_result.objects || arb_result.objects.length !== 1) {
|
|
195
|
-
W_ERROR(WErrors.InvalidParam, `Arb ${arb_address} not found`);
|
|
196
|
-
}
|
|
197
|
-
const arb_data = arb_result.objects[0];
|
|
198
|
-
if (!arb_data.type || arb_data.type !== ObjectType.Arb) {
|
|
199
|
-
W_ERROR(WErrors.IsValidArgType, `object ${arb_address} type ${arb_data.type} is not Arb`);
|
|
200
|
-
}
|
|
201
|
-
const ty = parseObjectType(arb_data.type_raw, "arb::Arb");
|
|
202
|
-
if (!ty) {
|
|
203
|
-
W_ERROR(WErrors.IsValidArgType, `Arb ${arb_address} type ${arb_data.type_raw} is not valid`);
|
|
204
|
-
}
|
|
205
|
-
return { object: arb_data, type: ty };
|
|
206
|
-
}
|
|
207
|
-
check_arb(order, arb, status) {
|
|
208
|
-
if (arb.object.status !== status) {
|
|
209
|
-
W_ERROR(WErrors.InvalidParam, `arb ${arb.object.object} status ${arb.object.status} not ${status}`);
|
|
210
|
-
}
|
|
211
|
-
if (arb.object.order !== this.object_address) {
|
|
212
|
-
W_ERROR(WErrors.InvalidParam, `arb ${arb.object.object} order ${arb.object.order} not ${this.object_address}`);
|
|
213
|
-
}
|
|
214
|
-
if (order.claimed_by) {
|
|
215
|
-
W_ERROR(WErrors.InvalidParam, `arb ${arb.object.object} error on order ${this.object_address} already disputed by ${order.claimed_by}`);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
export function orderFn(name) {
|
|
220
|
-
return `${PackageAddress}::order::${name}`;
|
|
221
|
-
}
|
|
222
|
-
export const MAX_AGENT_COUNT = 10;
|
|
223
|
-
export const MAX_DISPUTE_COUNT = 10;
|
|
224
|
-
export function create(tx, order) {
|
|
225
|
-
validObjects([order]);
|
|
226
|
-
return tx.moveCall({
|
|
227
|
-
target: orderFn("create"),
|
|
228
|
-
arguments: [toTxObject(tx, order)],
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
export async function owner_change(tx, param) {
|
|
232
|
-
const new_owner = await GetAccountOrMark_Address(param.new_owner);
|
|
233
|
-
if (!new_owner) {
|
|
234
|
-
W_ERROR(WErrors.InvalidParam, `CallOrder_Data.data.new_owner:${param.new_owner}`);
|
|
235
|
-
}
|
|
236
|
-
validObjects([param.order]);
|
|
237
|
-
tx.moveCall({
|
|
238
|
-
target: orderFn("owner_change"),
|
|
239
|
-
arguments: [toTxObject(tx, param.order), tx.pure.address(new_owner)],
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
export function agent_set(tx, param) {
|
|
243
|
-
validObjects([param.order, ...param.agents]);
|
|
244
|
-
tx.moveCall({
|
|
245
|
-
target: orderFn("agent_set"),
|
|
246
|
-
arguments: [
|
|
247
|
-
toTxObject(tx, param.order),
|
|
248
|
-
tx.pure.vector("address", param.agents),
|
|
249
|
-
],
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
export async function owner_receive(tx, order, param) {
|
|
253
|
-
validObjects([order]);
|
|
254
|
-
if (Array.isArray(param)) {
|
|
255
|
-
for (const item of param) {
|
|
256
|
-
if (!item.type || !IsValidArgType(item.type)) {
|
|
257
|
-
W_ERROR(WErrors.IsValidArgType, `type ${item.type} is invalid`);
|
|
258
|
-
}
|
|
259
|
-
validObjects([item.id]);
|
|
260
|
-
tx.moveCall({
|
|
261
|
-
target: orderFn("owner_receive_object"),
|
|
262
|
-
arguments: [toTxObject(tx, order), toTxObject(tx, item.id)],
|
|
263
|
-
typeArguments: [item.type],
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
else {
|
|
268
|
-
const match = param.token_type.match(/CoinWrapper<([^>]+)>/);
|
|
269
|
-
if (!match) {
|
|
270
|
-
W_ERROR(WErrors.IsValidArgType, `Invalid CoinWrapper type: ${param.token_type}`);
|
|
271
|
-
}
|
|
272
|
-
const t = match[1];
|
|
273
|
-
if (!IsValidArgType(t)) {
|
|
274
|
-
W_ERROR(WErrors.IsValidArgType, `Invalid CoinWrapper type: ${t}`);
|
|
275
|
-
}
|
|
276
|
-
for (const item of param.received) {
|
|
277
|
-
const [r, p] = await Promise.all([
|
|
278
|
-
LocalMark.Instance().get_address(item.id),
|
|
279
|
-
LocalMark.Instance().get_address(item.payment),
|
|
280
|
-
]);
|
|
281
|
-
if (!r || !p) {
|
|
282
|
-
W_ERROR(WErrors.IsValidArgType, `Received ${item.id} or Payment ${item.payment} is invalid`);
|
|
283
|
-
}
|
|
284
|
-
tx.moveCall({
|
|
285
|
-
target: orderFn("owner_receive"),
|
|
286
|
-
arguments: [
|
|
287
|
-
toTxObject(tx, order),
|
|
288
|
-
toTxObject(tx, r),
|
|
289
|
-
toTxObject(tx, p),
|
|
290
|
-
],
|
|
291
|
-
typeArguments: [t],
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
export async function order_required_info_update(tx, order, im_or_proof) {
|
|
297
|
-
validObjects([order]);
|
|
298
|
-
if (im_or_proof !== undefined) {
|
|
299
|
-
im_or_proof =
|
|
300
|
-
(await LocalMark.Instance().get_address(im_or_proof)) ?? null;
|
|
301
|
-
if (!im_or_proof) {
|
|
302
|
-
W_ERROR(WErrors.InvalidParam, `CallOrder_Data.data.required_info ${im_or_proof} not found`);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
tx.moveCall({
|
|
306
|
-
target: orderFn("required_info_update"),
|
|
307
|
-
arguments: [
|
|
308
|
-
toTxObject(tx, order),
|
|
309
|
-
tx.pure.option("address", im_or_proof),
|
|
310
|
-
],
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
export function compensation_claim(tx, param) {
|
|
314
|
-
if (!IsValidArgType(param.service_type)) {
|
|
315
|
-
W_ERROR(WErrors.InvalidParam, `Compensation claim service type ${param.service_type} is not valid`);
|
|
316
|
-
}
|
|
317
|
-
if (!IsValidArgType(param.arbitration_type)) {
|
|
318
|
-
W_ERROR(WErrors.InvalidParam, `Compensation claim arbitration type ${param.arbitration_type} is not valid`);
|
|
319
|
-
}
|
|
320
|
-
validObjects([
|
|
321
|
-
param.service,
|
|
322
|
-
param.arbitration_object,
|
|
323
|
-
param.order,
|
|
324
|
-
param.arb,
|
|
325
|
-
]);
|
|
326
|
-
tx.moveCall({
|
|
327
|
-
target: serviceFn("compensation_claim"),
|
|
328
|
-
arguments: [
|
|
329
|
-
toTxObject(tx, param.service),
|
|
330
|
-
toTxObject(tx, param.arbitration_object),
|
|
331
|
-
toTxObject(tx, param.order),
|
|
332
|
-
toTxObject(tx, param.arb),
|
|
333
|
-
tx.object.clock(),
|
|
334
|
-
],
|
|
335
|
-
typeArguments: [param.service_type, param.arbitration_type],
|
|
336
|
-
});
|
|
337
|
-
}
|
|
1
|
+
import{toTxObject,PackageAddress,GetObjectExisted,IsValidArgType,serviceFn}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';import{GetAccountOrMark_Address,GetManyAccountOrMark_Address}from'../local/index.js';import{LocalMark}from'../local/local.js';import{ArbStatus,ObjectType,query_objects}from'../query/object.js';import{query_received}from'../query/received.js';import{parseObjectType,validObjects}from'../util.js';import{description_change,MAX_PROPOSITION_COUNT,objection,principal_confirm,proposition_change}from'./arb.js';import{CallBase}from'./base.js';import{accomplish,getMachineNodeForward,hold}from'./progress.js';export class CallOrder extends CallBase{['data'];['object_address']=undefined;['service']=undefined;constructor(a){super(),this['data']=a;}async['prepare'](a){await super['prepare'](a),!this['object_address']&&(this['object_address']=await GetObjectExisted(this['data']?.['object'])),this['object_address']?(this['content']=undefined,await this['update_content'](a,ObjectType['Order'],this['object_address']),!this['content']&&W_ERROR(WErrors['InvalidParam'],'CallOrder_Data.data.object:'+this['object_address'])):W_ERROR(WErrors['InvalidParam'],'CallOrder_Data.data.object:'+this['data']?.['object']);}async['call'](a){await this['prepare'](a);const b=[],c=e=>{!b['includes'](e)&&b['push'](e);},d=this['content'];if(this['data']['progress']!=null){(!d['machine']||!d['progress'])&&W_ERROR(WErrors['InvalidParam'],'CallOrder_Data.data.progress\x20error\x20on\x20progress\x20not\x20set');const e=await query_objects({'objects':[d['progress']],'no_cache':a['no_cache'],'network':a['network']});(!e['objects']||e['objects']['length']!==0x1||e['objects'][0x0]['type']!==ObjectType['Progress'])&&W_ERROR(WErrors['InvalidParam'],'CallOrder_Data.data.progress\x20fetch\x20error');const f=e['objects'][0x0],g=await getMachineNodeForward(a,f['machine'],f['current'],this['data']['progress']['operation']['next_node_name'],this['data']['progress']['operation']['forward']);g['error']&&W_ERROR(WErrors['InvalidParam'],'CallOrder_Data.data.progress.operation.forward:'+this['data']?.['progress']['operation']['forward']+'\x20validation\x20failed.\x20'+g['error']),g['forward']?.['guard']&&c(g['forward']['guard']['guard']);}if(b['length']>0x0)return await this['check_guard_and_call'](a,b);return await this['exec'](a);}async['get_service'](a){if(!this['service']&&this['content']){const b=await query_objects({'objects':[this['content']['service']],'no_cache':a['no_cache'],'network':a['network']});if(b['objects']&&b['objects']['length']===0x1){const c=b['objects'][0x0];(!c['type']||c['type']!==ObjectType['Service'])&&W_ERROR(WErrors['IsValidArgType'],'object\x20'+this['content']['service']+'\x20type\x20'+c['type']+'\x20is\x20not\x20Service');const d=parseObjectType(c['type_raw'],'service::Service');!d&&W_ERROR(WErrors['IsValidArgType'],'Service\x20'+this['content']['service']+'\x20type\x20'+c['type_raw']+'\x20is\x20not\x20valid'),this['service']={'object':c,'type':d};}}return!this['service']&&W_ERROR(WErrors['InvalidParam'],'CallOrder_Data.data.order_required_info\x20error\x20on\x20service\x20'+this['content']['service']),this['service'];}async['operate'](a,b,c,d){const e=this['content'];this['data']['agent']!=null&&agent_set(b,{'order':toTxObject(b,this['object_address']),'agents':await GetManyAccountOrMark_Address(this['data']['agent'])});this['data']['required_info']!==undefined&&await order_required_info_update(b,toTxObject(b,this['object_address']),this['data']['required_info']);if(this['data']['progress']!=null){!e['machine']&&W_ERROR(WErrors['InvalidParam'],'CallOrder_Data.data.progress\x20fail\x20with\x20machine\x20invalid\x20for\x20this\x20order');const f=await query_objects({'objects':[e['machine']],'no_cache':a['no_cache'],'network':a['network']});if(f['objects']&&f['objects']['length']===0x1&&f['objects'][0x0]['type']===ObjectType['Machine']){const g=f['objects'][0x0];'hold'in this['data']['progress']?hold(b,this['object_address'],g['object'],g['permission'],this['data']['progress']['operation']['next_node_name'],this['data']['progress']['operation']['forward'],this['data']['progress']['message']??'',this['data']['progress']['hold'],this['object_address'],c):accomplish(b,this['object_address'],g['object'],g['permission'],this['data']['progress']['operation']['next_node_name'],this['data']['progress']['operation']['forward'],this['data']['progress']['message']??'',this['object_address'],c);}else W_ERROR(WErrors['InvalidParam'],'CallOrder_Data.data.progress\x20fail\x20with\x20machine\x20invalid\x20for\x20this\x20order');}if(this['data']['arb_confirm']!=null){const h=await this['get_arb'](a,this['data']['arb_confirm']['arb']);this['check_arb'](e,h,ArbStatus['Principal_confirming']);if(this['data']['arb_confirm']['proposition']!==undefined)this['data']['arb_confirm']['proposition']['length']>MAX_PROPOSITION_COUNT&&W_ERROR(WErrors['InvalidParam'],'CallOrder_Data.data.arb_confirm.proposition\x20length\x20must\x20be\x20less\x20than\x20or\x20equal\x20to\x20'+MAX_PROPOSITION_COUNT),proposition_change(b,h['object']['object'],h['type'],toTxObject(b,this['object_address']),this['data']['arb_confirm']['proposition'],this['data']['arb_confirm']['description'],this['data']['arb_confirm']['confirm']);else this['data']['arb_confirm']['description']!==undefined?description_change(b,h['object']['object'],h['type'],toTxObject(b,this['object_address']),this['data']['arb_confirm']['description'],this['data']['arb_confirm']['confirm']):principal_confirm(b,h['object']['object'],h['type'],toTxObject(b,this['object_address']),this['data']['arb_confirm']['confirm']);}if(this['data']['arb_objection']!=null){const i=await this['get_arb'](a,this['data']['arb_objection']['arb']);this['check_arb'](e,i,ArbStatus['Arbitrated']),objection(b,i['object']['object'],i['type'],toTxObject(b,this['object_address']),this['data']['arb_objection']['objection']);}if(this['data']['arb_claim_compensation']){const j=await this['get_arb'](a,this['data']['arb_claim_compensation']['arb']);this['check_arb'](e,j,ArbStatus['Arbitrated']);const k=await this['get_service'](a);compensation_claim(b,{'service':k['object']['object'],'service_type':k['type'],'arbitration_object':j['object']['arbitration'],'arbitration_type':j['type'],'order':toTxObject(b,this['object_address']),'arb':j['object']['object']});}this['data']['receive']!=null&&this['object_address']&&(this['data']['receive']==='recently'&&(this['data']['receive']=await query_received({'object':this['object_address'],'all_type':!![],'no_cache':a['no_cache'],'network':a['network']})),await owner_receive(b,toTxObject(b,this['object_address']),this['data']['receive'])),this['data']['transfer_to']!=null&&await owner_change(b,{'order':toTxObject(b,this['object_address']),'new_owner':this['data']['transfer_to']});}async['get_arb'](a,b){const c=await query_objects({'objects':[b],'no_cache':a['no_cache'],'network':a['network']});(!c['objects']||c['objects']['length']!==0x1)&&W_ERROR(WErrors['InvalidParam'],'Arb\x20'+b+'\x20not\x20found');const d=c['objects'][0x0];(!d['type']||d['type']!==ObjectType['Arb'])&&W_ERROR(WErrors['IsValidArgType'],'object\x20'+b+'\x20type\x20'+d['type']+'\x20is\x20not\x20Arb');const e=parseObjectType(d['type_raw'],'arb::Arb');return!e&&W_ERROR(WErrors['IsValidArgType'],'Arb\x20'+b+'\x20type\x20'+d['type_raw']+'\x20is\x20not\x20valid'),{'object':d,'type':e};}['check_arb'](a,b,c){b['object']['status']!==c&&W_ERROR(WErrors['InvalidParam'],'arb\x20'+b['object']['object']+'\x20status\x20'+b['object']['status']+'\x20not\x20'+c),b['object']['order']!==this['object_address']&&W_ERROR(WErrors['InvalidParam'],'arb\x20'+b['object']['object']+'\x20order\x20'+b['object']['order']+'\x20not\x20'+this['object_address']),a['claimed_by']&&W_ERROR(WErrors['InvalidParam'],'arb\x20'+b['object']['object']+'\x20error\x20on\x20order\x20'+this['object_address']+'\x20already\x20disputed\x20by\x20'+a['claimed_by']);}}export function orderFn(a){return PackageAddress+'::order::'+a;}export const MAX_AGENT_COUNT=0xa;export const MAX_DISPUTE_COUNT=0xa;export function create(a,b){return validObjects([b]),a['moveCall']({'target':orderFn('create'),'arguments':[toTxObject(a,b)]});}export async function owner_change(a,b){const c=await GetAccountOrMark_Address(b['new_owner']);!c&&W_ERROR(WErrors['InvalidParam'],'CallOrder_Data.data.new_owner:'+b['new_owner']),validObjects([b['order']]),a['moveCall']({'target':orderFn('owner_change'),'arguments':[toTxObject(a,b['order']),a['pure']['address'](c)]});}export function agent_set(a,b){validObjects([b['order'],...b['agents']]),a['moveCall']({'target':orderFn('agent_set'),'arguments':[toTxObject(a,b['order']),a['pure']['vector']('address',b['agents'])]});}export async function owner_receive(a,b,c){validObjects([b]);if(Array['isArray'](c))for(const d of c){(!d['type']||!IsValidArgType(d['type']))&&W_ERROR(WErrors['IsValidArgType'],'type\x20'+d['type']+'\x20is\x20invalid'),validObjects([d['id']]),a['moveCall']({'target':orderFn('owner_receive_object'),'arguments':[toTxObject(a,b),toTxObject(a,d['id'])],'typeArguments':[d['type']]});}else{const e=c['token_type']['match'](/CoinWrapper<([^>]+)>/);!e&&W_ERROR(WErrors['IsValidArgType'],'Invalid\x20CoinWrapper\x20type:\x20'+c['token_type']);const f=e[0x1];!IsValidArgType(f)&&W_ERROR(WErrors['IsValidArgType'],'Invalid\x20CoinWrapper\x20type:\x20'+f);for(const g of c['received']){const [h,i]=await Promise['all']([LocalMark['Instance']()['get_address'](g['id']),LocalMark['Instance']()['get_address'](g['payment'])]);(!h||!i)&&W_ERROR(WErrors['IsValidArgType'],'Received\x20'+g['id']+'\x20or\x20Payment\x20'+g['payment']+'\x20is\x20invalid'),a['moveCall']({'target':orderFn('owner_receive'),'arguments':[toTxObject(a,b),toTxObject(a,h),toTxObject(a,i)],'typeArguments':[f]});}}}export async function order_required_info_update(a,b,c){validObjects([b]),c!==undefined&&(c=await LocalMark['Instance']()['get_address'](c)??null,!c&&W_ERROR(WErrors['InvalidParam'],'CallOrder_Data.data.required_info\x20'+c+'\x20not\x20found')),a['moveCall']({'target':orderFn('required_info_update'),'arguments':[toTxObject(a,b),a['pure']['option']('address',c)]});}export function compensation_claim(a,b){!IsValidArgType(b['service_type'])&&W_ERROR(WErrors['InvalidParam'],'Compensation\x20claim\x20service\x20type\x20'+b['service_type']+'\x20is\x20not\x20valid'),!IsValidArgType(b['arbitration_type'])&&W_ERROR(WErrors['InvalidParam'],'Compensation\x20claim\x20arbitration\x20type\x20'+b['arbitration_type']+'\x20is\x20not\x20valid'),validObjects([b['service'],b['arbitration_object'],b['order'],b['arb']]),a['moveCall']({'target':serviceFn('compensation_claim'),'arguments':[toTxObject(a,b['service']),toTxObject(a,b['arbitration_object']),toTxObject(a,b['order']),toTxObject(a,b['arb']),a['object']['clock']()],'typeArguments':[b['service_type'],b['arbitration_type']]});}
|
|
@@ -1,220 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Transaction } from "../../transactions/index.js";
|
|
3
|
-
import { toTxObject, MAX_GUARD_TABLE_ITEM_LENGTH, PackageAddress, parseValueType, } from "../common.js";
|
|
4
|
-
import { W_ERROR, WErrors } from "../exception.js";
|
|
5
|
-
import { Account } from "../local/account.js";
|
|
6
|
-
import { Config } from "../local/config.js";
|
|
7
|
-
import { ObjectType, query_objects } from "../query/object.js";
|
|
8
|
-
import { valueToBcsBytes } from "../util.js";
|
|
9
|
-
import { getCallEnvAccount } from "./util.js";
|
|
10
|
-
export const MAX_GUARD_COUNT_ONCE = 20;
|
|
11
|
-
export const verify_guard = async (env, guard_info) => {
|
|
12
|
-
if (guard_info.guard.length > MAX_GUARD_COUNT_ONCE) {
|
|
13
|
-
W_ERROR(WErrors.InvalidParam, `guards invalid: guard count exceeds maximum limit ${MAX_GUARD_COUNT_ONCE}`);
|
|
14
|
-
}
|
|
15
|
-
const tx = new Transaction();
|
|
16
|
-
const passport = newPassport(tx);
|
|
17
|
-
for (const v of guard_info.guard) {
|
|
18
|
-
await guardAdd(tx, passport, v.object, guard_info.submission.find((i) => i.guard === v.object)
|
|
19
|
-
?.submission ?? [], v.impack);
|
|
20
|
-
}
|
|
21
|
-
verify(tx, passport);
|
|
22
|
-
freeze(tx, passport);
|
|
23
|
-
let r = await Account.Instance().sign_and_commit(tx, await getCallEnvAccount(env), env.network);
|
|
24
|
-
if (!r) {
|
|
25
|
-
W_ERROR(WErrors.Fail, "sign and commit failed");
|
|
26
|
-
}
|
|
27
|
-
if (r?.digest && !r?.objectChanges) {
|
|
28
|
-
const client = new SuiClient({
|
|
29
|
-
url: getFullnodeUrl(await Config.Instance().network_get(env.network)),
|
|
30
|
-
});
|
|
31
|
-
r = await client.getTransactionBlock({
|
|
32
|
-
digest: r?.digest,
|
|
33
|
-
options: { showObjectChanges: true },
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
return r;
|
|
37
|
-
};
|
|
38
|
-
export const get_guardSubmissions = async (env, guards) => {
|
|
39
|
-
if (guards.length === 0) {
|
|
40
|
-
W_ERROR(WErrors.InvalidParam, "guards invalid: guards empty");
|
|
41
|
-
}
|
|
42
|
-
guards = [...new Set(guards)];
|
|
43
|
-
if (guards.length > MAX_GUARD_COUNT_ONCE) {
|
|
44
|
-
W_ERROR(WErrors.InvalidParam, `guards invalid: guard count exceeds maximum limit ${MAX_GUARD_COUNT_ONCE} once`);
|
|
45
|
-
}
|
|
46
|
-
const objects = await query_objects({
|
|
47
|
-
objects: [...guards],
|
|
48
|
-
no_cache: env.no_cache,
|
|
49
|
-
network: env.network,
|
|
50
|
-
});
|
|
51
|
-
if (!objects.objects || objects.objects.length === 0) {
|
|
52
|
-
W_ERROR(WErrors.InvalidParam, `Guard objects not found: ${guards.join(", ")}`);
|
|
53
|
-
}
|
|
54
|
-
const relies = [];
|
|
55
|
-
const rep_quote = new Map();
|
|
56
|
-
objects.objects.forEach((v) => {
|
|
57
|
-
if (v.type !== ObjectType.Guard) {
|
|
58
|
-
W_ERROR(WErrors.InvalidParam, `guards invalid: guard '${v.object}' is not a guard object`);
|
|
59
|
-
}
|
|
60
|
-
const g = v;
|
|
61
|
-
g.relies?.forEach((rely) => {
|
|
62
|
-
if (!relies.includes(rely)) {
|
|
63
|
-
relies.push(rely);
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
const gRepQuote = g.rep_quote instanceof Map
|
|
67
|
-
? g.rep_quote
|
|
68
|
-
: new Map(Object.entries(g.rep_quote || {}));
|
|
69
|
-
gRepQuote.forEach((policies, rep) => {
|
|
70
|
-
if (rep_quote.has(rep)) {
|
|
71
|
-
const r = rep_quote.get(rep) || [];
|
|
72
|
-
policies.forEach((p) => {
|
|
73
|
-
if (!r.includes(p)) {
|
|
74
|
-
r.push(p);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
rep_quote.set(rep, r);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
rep_quote.set(rep, policies);
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
const reps = await query_objects({
|
|
85
|
-
objects: [...rep_quote.keys()],
|
|
86
|
-
no_cache: env.no_cache,
|
|
87
|
-
network: env.network,
|
|
88
|
-
});
|
|
89
|
-
const rep_gaurds = [];
|
|
90
|
-
reps.objects.forEach((v) => {
|
|
91
|
-
if (v.type !== ObjectType.Repository) {
|
|
92
|
-
W_ERROR(WErrors.InvalidParam, `rep invalid: rep '${v.object}' is not a guard object`);
|
|
93
|
-
}
|
|
94
|
-
const r = v;
|
|
95
|
-
r.policies.forEach((p) => {
|
|
96
|
-
const policies = rep_quote.get(r.object) || [];
|
|
97
|
-
if (policies.includes(p.name) &&
|
|
98
|
-
p.quote_guard &&
|
|
99
|
-
!rep_gaurds.includes(p.quote_guard)) {
|
|
100
|
-
rep_gaurds.push(p.quote_guard);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
const impact = [
|
|
105
|
-
...new Set([...rep_gaurds, ...objects.objects.map((v) => v.object)]),
|
|
106
|
-
];
|
|
107
|
-
const impact_set = new Set(impact);
|
|
108
|
-
const all_guards = [
|
|
109
|
-
...relies
|
|
110
|
-
.filter((v) => !impact_set.has(v))
|
|
111
|
-
.map((v) => ({ object: v, impack: false })),
|
|
112
|
-
...impact.map((v) => ({ object: v, impack: true })),
|
|
113
|
-
];
|
|
114
|
-
if (all_guards.length > MAX_GUARD_COUNT) {
|
|
115
|
-
W_ERROR(WErrors.InvalidParam, `guards invalid: guard count(include relies guards) exceeds maximum limit ${MAX_GUARD_COUNT}`);
|
|
116
|
-
}
|
|
117
|
-
const remain_guards = await query_objects({
|
|
118
|
-
objects: [...relies, ...rep_gaurds],
|
|
119
|
-
no_cache: env.no_cache,
|
|
120
|
-
network: env.network,
|
|
121
|
-
});
|
|
122
|
-
const submission = [];
|
|
123
|
-
remain_guards.objects.forEach((v) => {
|
|
124
|
-
const g = v;
|
|
125
|
-
const items = [];
|
|
126
|
-
g.table?.forEach((item) => {
|
|
127
|
-
if (item.b_submission) {
|
|
128
|
-
items.push(item);
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
if (items.length > 0 &&
|
|
132
|
-
submission.find((i) => i.guard === g.object) === undefined) {
|
|
133
|
-
submission.push({
|
|
134
|
-
guard: g.object,
|
|
135
|
-
submission: items,
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
objects.objects.forEach((v) => {
|
|
140
|
-
const g = v;
|
|
141
|
-
const items = [];
|
|
142
|
-
g.table?.forEach((item) => {
|
|
143
|
-
if (item.b_submission) {
|
|
144
|
-
items.push(item);
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
if (items.length > 0 &&
|
|
148
|
-
submission.find((i) => i.guard === g.object) === undefined) {
|
|
149
|
-
submission.push({
|
|
150
|
-
guard: g.object,
|
|
151
|
-
submission: items,
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
return {
|
|
156
|
-
type: "submission",
|
|
157
|
-
guard: all_guards,
|
|
158
|
-
submission: submission,
|
|
159
|
-
};
|
|
160
|
-
};
|
|
161
|
-
export function passportFn(name) {
|
|
162
|
-
return `${PackageAddress}::passport::${name}`;
|
|
163
|
-
}
|
|
164
|
-
export const MAX_GUARD_COUNT = 20;
|
|
165
|
-
export function newPassport(tx) {
|
|
166
|
-
return tx.moveCall({
|
|
167
|
-
target: passportFn("new"),
|
|
168
|
-
arguments: [tx.object.clock()],
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
export function freeze(tx, passport) {
|
|
172
|
-
tx.moveCall({
|
|
173
|
-
target: passportFn("freezen"),
|
|
174
|
-
arguments: [toTxObject(tx, passport)],
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
export function destroy(tx, passport) {
|
|
178
|
-
tx.moveCall({
|
|
179
|
-
target: passportFn("destroy"),
|
|
180
|
-
arguments: [toTxObject(tx, passport)],
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
export const guardAdd = async (tx, passport, guard, submission, impack) => {
|
|
184
|
-
if (submission.length > MAX_GUARD_TABLE_ITEM_LENGTH) {
|
|
185
|
-
W_ERROR(WErrors.GuardTableItemLengthExceeded, `Submission size exceeds maximum limit ${MAX_GUARD_TABLE_ITEM_LENGTH}`);
|
|
186
|
-
}
|
|
187
|
-
const identfiers = tx.pure.vector("u8", submission.map((item) => item.identifier));
|
|
188
|
-
const value_bcs = [];
|
|
189
|
-
for (let i = 0; i < submission.length; i++) {
|
|
190
|
-
if (!submission[i].value) {
|
|
191
|
-
W_ERROR(WErrors.IsValidValue, `Value is undefined for identifier ${submission[i].identifier}`);
|
|
192
|
-
}
|
|
193
|
-
const valueType = parseValueType(submission[i].value_type);
|
|
194
|
-
const bytes = await valueToBcsBytes(valueType, submission[i].value);
|
|
195
|
-
value_bcs.push(Array.from(bytes));
|
|
196
|
-
}
|
|
197
|
-
const values = tx.pure.vector("vector<u8>", value_bcs);
|
|
198
|
-
tx.moveCall({
|
|
199
|
-
target: passportFn("guard_add"),
|
|
200
|
-
arguments: [
|
|
201
|
-
toTxObject(tx, passport),
|
|
202
|
-
toTxObject(tx, guard),
|
|
203
|
-
identfiers,
|
|
204
|
-
values,
|
|
205
|
-
tx.pure.bool(impack),
|
|
206
|
-
],
|
|
207
|
-
});
|
|
208
|
-
};
|
|
209
|
-
export function guardClear(tx, passport) {
|
|
210
|
-
tx.moveCall({
|
|
211
|
-
target: passportFn("guard_clear"),
|
|
212
|
-
arguments: [toTxObject(tx, passport)],
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
export function verify(tx, passport) {
|
|
216
|
-
return tx.moveCall({
|
|
217
|
-
target: passportFn("verify"),
|
|
218
|
-
arguments: [toTxObject(tx, passport)],
|
|
219
|
-
});
|
|
220
|
-
}
|
|
1
|
+
import{getFullnodeUrl,SuiClient}from'../../client/index.js';import{Transaction}from'../../transactions/index.js';import{toTxObject,MAX_GUARD_TABLE_ITEM_LENGTH,PackageAddress,parseValueType}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';import{Account}from'../local/account.js';import{Config}from'../local/config.js';import{ObjectType,query_objects}from'../query/object.js';import{valueToBcsBytes}from'../util.js';import{getCallEnvAccount}from'./util.js';export const MAX_GUARD_COUNT_ONCE=0x14;export const verify_guard=async(a,b)=>{b['guard']['length']>MAX_GUARD_COUNT_ONCE&&W_ERROR(WErrors['InvalidParam'],'guards\x20invalid:\x20guard\x20count\x20exceeds\x20maximum\x20limit\x20'+MAX_GUARD_COUNT_ONCE);const c=new Transaction(),d=newPassport(c);for(const f of b['guard']){await guardAdd(c,d,f['object'],b['submission']['find'](g=>g['guard']===f['object'])?.['submission']??[],f['impack']);}verify(c,d),freeze(c,d);let e=await Account['Instance']()['sign_and_commit'](c,await getCallEnvAccount(a),a['network']);!e&&W_ERROR(WErrors['Fail'],'sign\x20and\x20commit\x20failed');if(e?.['digest']&&!e?.['objectChanges']){const g=new SuiClient({'url':getFullnodeUrl(await Config['Instance']()['network_get'](a['network']))});e=await g['getTransactionBlock']({'digest':e?.['digest'],'options':{'showObjectChanges':!![]}});}return e;};export const get_guardSubmissions=async(a,b)=>{b['length']===0x0&&W_ERROR(WErrors['InvalidParam'],'guards\x20invalid:\x20guards\x20empty');b=[...new Set(b)];b['length']>MAX_GUARD_COUNT_ONCE&&W_ERROR(WErrors['InvalidParam'],'guards\x20invalid:\x20guard\x20count\x20exceeds\x20maximum\x20limit\x20\x20'+MAX_GUARD_COUNT_ONCE+'\x20once');const c=await query_objects({'objects':[...b],'no_cache':a['no_cache'],'network':a['network']});(!c['objects']||c['objects']['length']===0x0)&&W_ERROR(WErrors['InvalidParam'],'Guard\x20objects\x20not\x20found:\x20'+b['join'](',\x20'));const d=[],e=new Map();c['objects']['forEach'](m=>{m['type']!==ObjectType['Guard']&&W_ERROR(WErrors['InvalidParam'],'guards\x20invalid:\x20guard\x20\x27'+m['object']+'\x27\x20is\x20not\x20a\x20guard\x20object');const n=m;n['relies']?.['forEach'](p=>{!d['includes'](p)&&d['push'](p);});const o=n['rep_quote']instanceof Map?n['rep_quote']:new Map(Object['entries'](n['rep_quote']||{}));o['forEach']((p,q)=>{if(e['has'](q)){const s=e['get'](q)||[];p['forEach'](t=>{!s['includes'](t)&&s['push'](t);}),e['set'](q,s);}else e['set'](q,p);});});const f=await query_objects({'objects':[...e['keys']()],'no_cache':a['no_cache'],'network':a['network']}),g=[];f['objects']['forEach'](m=>{m['type']!==ObjectType['Repository']&&W_ERROR(WErrors['InvalidParam'],'rep\x20invalid:\x20rep\x20\x27'+m['object']+'\x27\x20is\x20not\x20a\x20guard\x20object');const n=m;n['policies']['forEach'](o=>{const q=e['get'](n['object'])||[];q['includes'](o['name'])&&o['quote_guard']&&!g['includes'](o['quote_guard'])&&g['push'](o['quote_guard']);});});const h=[...new Set([...g,...c['objects']['map'](m=>m['object'])])],i=new Set(h),j=[...d['filter'](m=>!i['has'](m))['map'](m=>({'object':m,'impack':![]})),...h['map'](m=>({'object':m,'impack':!![]}))];j['length']>MAX_GUARD_COUNT&&W_ERROR(WErrors['InvalidParam'],'guards\x20invalid:\x20guard\x20count(include\x20relies\x20guards)\x20exceeds\x20maximum\x20limit\x20'+MAX_GUARD_COUNT);const k=await query_objects({'objects':[...d,...g],'no_cache':a['no_cache'],'network':a['network']}),l=[];return k['objects']['forEach'](m=>{const n=m,o=[];n['table']?.['forEach'](p=>{p['b_submission']&&o['push'](p);}),o['length']>0x0&&l['find'](p=>p['guard']===n['object'])===undefined&&l['push']({'guard':n['object'],'submission':o});}),c['objects']['forEach'](m=>{const n=m,o=[];n['table']?.['forEach'](p=>{p['b_submission']&&o['push'](p);}),o['length']>0x0&&l['find'](p=>p['guard']===n['object'])===undefined&&l['push']({'guard':n['object'],'submission':o});}),{'type':'submission','guard':j,'submission':l};};export function passportFn(a){return PackageAddress+'::passport::'+a;}export const MAX_GUARD_COUNT=0x14;export function newPassport(a){return a['moveCall']({'target':passportFn('new'),'arguments':[a['object']['clock']()]});}export function freeze(a,b){a['moveCall']({'target':passportFn('freezen'),'arguments':[toTxObject(a,b)]});}export function destroy(a,b){a['moveCall']({'target':passportFn('destroy'),'arguments':[toTxObject(a,b)]});}export const guardAdd=async(a,b,c,d,e)=>{d['length']>MAX_GUARD_TABLE_ITEM_LENGTH&&W_ERROR(WErrors['GuardTableItemLengthExceeded'],'Submission\x20size\x20exceeds\x20maximum\x20limit\x20'+MAX_GUARD_TABLE_ITEM_LENGTH);const f=a['pure']['vector']('u8',d['map'](j=>j['identifier'])),g=[];for(let j=0x0;j<d['length'];j++){!d[j]['value']&&W_ERROR(WErrors['IsValidValue'],'Value\x20is\x20undefined\x20for\x20identifier\x20'+d[j]['identifier']);const k=parseValueType(d[j]['value_type']),l=await valueToBcsBytes(k,d[j]['value']);g['push'](Array['from'](l));}const h=a['pure']['vector']('vector<u8>',g);a['moveCall']({'target':passportFn('guard_add'),'arguments':[toTxObject(a,b),toTxObject(a,c),f,h,a['pure']['bool'](e)]});};export function guardClear(a,b){a['moveCall']({'target':passportFn('guard_clear'),'arguments':[toTxObject(a,b)]});}export function verify(a,b){return a['moveCall']({'target':passportFn('verify'),'arguments':[toTxObject(a,b)]});}
|