wowok 2.2.5 → 2.2.7
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.d.ts +1 -1
- package/dist/cjs/bcs/bcs.js +1 -1
- package/dist/cjs/bcs/effects.d.ts +4 -4
- package/dist/cjs/bcs/effects.js +1 -1
- package/dist/cjs/bcs/index.d.ts +2 -2
- package/dist/cjs/bcs/index.js +1 -1
- package/dist/cjs/bcs/type-tag-serializer.js +1 -1
- package/dist/cjs/bcs/types.d.ts +4 -4
- package/dist/cjs/client/index.d.ts +4 -4
- package/dist/cjs/client/index.js +1 -1
- package/dist/cjs/cryptography/keypair.d.ts +2 -2
- package/dist/cjs/cryptography/publickey.js +1 -1
- package/dist/cjs/experimental/client.d.ts +4 -4
- package/dist/cjs/experimental/core.d.ts +17 -17
- package/dist/cjs/experimental/core.js +1 -1
- package/dist/cjs/experimental/errors.d.ts +2 -2
- package/dist/cjs/experimental/errors.js +1 -1
- package/dist/cjs/experimental/index.d.ts +2 -2
- package/dist/cjs/experimental/transports/utils.d.ts +3 -3
- package/dist/cjs/experimental/types.d.ts +3 -3
- package/dist/cjs/faucet/faucet.d.ts +3 -3
- package/dist/cjs/faucet/faucet.js +1 -1
- package/dist/cjs/faucet/index.d.ts +1 -1
- package/dist/cjs/faucet/index.js +1 -1
- package/dist/cjs/grpc/client.d.ts +7 -7
- package/dist/cjs/grpc/client.js +1 -1
- package/dist/cjs/grpc/core.d.ts +15 -15
- package/dist/cjs/grpc/core.js +1 -1
- package/dist/cjs/grpc/index.d.ts +2 -2
- package/dist/cjs/grpc/index.js +1 -1
- package/dist/cjs/index.d.ts +3 -3
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/jsonRpc/client.d.ts +24 -24
- package/dist/cjs/jsonRpc/client.js +1 -1
- package/dist/cjs/jsonRpc/core.d.ts +20 -20
- package/dist/cjs/jsonRpc/core.js +1 -1
- package/dist/cjs/jsonRpc/errors.d.ts +3 -3
- package/dist/cjs/jsonRpc/errors.js +1 -1
- package/dist/cjs/jsonRpc/http-transport.js +1 -1
- package/dist/cjs/jsonRpc/index.d.ts +2 -2
- package/dist/cjs/jsonRpc/index.js +1 -1
- package/dist/cjs/jsonRpc/json-rpc-resolver.d.ts +2 -2
- package/dist/cjs/jsonRpc/types/chain.d.ts +4 -4
- package/dist/cjs/jsonRpc/types/changes.d.ts +7 -7
- package/dist/cjs/jsonRpc/types/generated.d.ts +63 -63
- package/dist/cjs/jsonRpc/types/params.d.ts +13 -13
- package/dist/cjs/multisig/publickey.js +1 -1
- package/dist/cjs/transactions/Commands.js +1 -1
- package/dist/cjs/transactions/Inputs.js +1 -1
- package/dist/cjs/transactions/ObjectCache.js +1 -1
- package/dist/cjs/transactions/Transaction.js +1 -1
- package/dist/cjs/transactions/TransactionData.js +1 -1
- package/dist/cjs/transactions/__tests__/bcs.test.js +1 -1
- package/dist/cjs/transactions/data/internal.d.ts +1 -1
- package/dist/cjs/transactions/data/internal.js +1 -1
- package/dist/cjs/transactions/data/v2.js +1 -1
- package/dist/cjs/transactions/executor/caching.d.ts +4 -4
- package/dist/cjs/transactions/executor/parallel.d.ts +4 -4
- package/dist/cjs/transactions/executor/parallel.js +1 -1
- package/dist/cjs/transactions/executor/serial.d.ts +4 -4
- package/dist/cjs/transactions/intents/CoinWithBalance.d.ts +2 -2
- package/dist/cjs/transactions/intents/CoinWithBalance.js +1 -1
- package/dist/cjs/transactions/serializer.d.ts +2 -2
- package/dist/cjs/transactions/serializer.js +1 -1
- package/dist/cjs/transactions/utils.d.ts +4 -4
- package/dist/cjs/transactions/utils.js +1 -1
- package/dist/cjs/utils/constants.d.ts +0 -6
- package/dist/cjs/utils/constants.js +1 -1
- package/dist/cjs/utils/index.d.ts +1 -1
- package/dist/cjs/utils/index.js +1 -1
- package/dist/cjs/verify/index.d.ts +1 -1
- package/dist/cjs/verify/index.js +1 -1
- package/dist/cjs/verify/verify.d.ts +1 -1
- package/dist/cjs/verify/verify.js +1 -1
- package/dist/cjs/w/call/allocation.js +1 -1
- package/dist/cjs/w/call/arbitration.js +1 -1
- package/dist/cjs/w/call/base.d.ts +6 -6
- package/dist/cjs/w/call/base.js +1 -1
- package/dist/cjs/w/call/contact.js +1 -1
- package/dist/cjs/w/call/demand.js +1 -1
- package/dist/cjs/w/call/entity.js +1 -1
- package/dist/cjs/w/call/guard-ins.js +1 -1
- package/dist/cjs/w/call/guard.js +1 -1
- package/dist/cjs/w/call/passport.d.ts +2 -2
- package/dist/cjs/w/call/passport.js +1 -1
- package/dist/cjs/w/common.d.ts +7 -2
- package/dist/cjs/w/common.js +1 -1
- package/dist/cjs/w/local/account.d.ts +3 -3
- package/dist/cjs/w/local/account.js +1 -1
- package/dist/cjs/w/local/index.d.ts +2 -2
- package/dist/cjs/w/local/index.js +1 -1
- package/dist/cjs/w/local/local.js +1 -1
- package/dist/cjs/w/local/token.js +1 -1
- package/dist/cjs/w/messenger/messenger.js +1 -1
- package/dist/cjs/w/query/event.js +1 -1
- package/dist/cjs/w/query/object.js +1 -1
- package/dist/cjs/w/query/received.js +1 -1
- package/dist/cjs/w/util.js +1 -1
- package/dist/esm/bcs/bcs.d.ts +1 -1
- package/dist/esm/bcs/bcs.js +1 -1
- package/dist/esm/bcs/effects.d.ts +4 -4
- package/dist/esm/bcs/effects.js +1 -1
- package/dist/esm/bcs/index.d.ts +2 -2
- package/dist/esm/bcs/index.js +1 -1
- package/dist/esm/bcs/type-tag-serializer.js +1 -1
- package/dist/esm/bcs/types.d.ts +4 -4
- package/dist/esm/client/index.d.ts +4 -4
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/cryptography/keypair.d.ts +2 -2
- package/dist/esm/cryptography/publickey.js +1 -1
- package/dist/esm/experimental/client.d.ts +4 -4
- package/dist/esm/experimental/core.d.ts +17 -17
- package/dist/esm/experimental/core.js +1 -1
- package/dist/esm/experimental/errors.d.ts +2 -2
- package/dist/esm/experimental/errors.js +1 -1
- package/dist/esm/experimental/index.d.ts +2 -2
- package/dist/esm/experimental/transports/utils.d.ts +3 -3
- package/dist/esm/experimental/types.d.ts +3 -3
- package/dist/esm/faucet/faucet.d.ts +3 -3
- package/dist/esm/faucet/faucet.js +1 -1
- package/dist/esm/faucet/index.d.ts +1 -1
- package/dist/esm/faucet/index.js +1 -1
- package/dist/esm/grpc/client.d.ts +7 -7
- package/dist/esm/grpc/client.js +1 -1
- package/dist/esm/grpc/core.d.ts +15 -15
- package/dist/esm/grpc/core.js +1 -1
- package/dist/esm/grpc/index.d.ts +2 -2
- package/dist/esm/grpc/index.js +1 -1
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.js +1 -1
- package/dist/esm/jsonRpc/client.d.ts +24 -24
- package/dist/esm/jsonRpc/client.js +1 -1
- package/dist/esm/jsonRpc/core.d.ts +20 -20
- package/dist/esm/jsonRpc/core.js +1 -1
- package/dist/esm/jsonRpc/errors.d.ts +3 -3
- package/dist/esm/jsonRpc/errors.js +1 -1
- package/dist/esm/jsonRpc/http-transport.js +1 -1
- package/dist/esm/jsonRpc/index.d.ts +2 -2
- package/dist/esm/jsonRpc/index.js +1 -1
- package/dist/esm/jsonRpc/json-rpc-resolver.d.ts +2 -2
- package/dist/esm/jsonRpc/types/chain.d.ts +4 -4
- package/dist/esm/jsonRpc/types/changes.d.ts +7 -7
- package/dist/esm/jsonRpc/types/generated.d.ts +63 -63
- package/dist/esm/jsonRpc/types/params.d.ts +13 -13
- package/dist/esm/multisig/publickey.js +1 -1
- package/dist/esm/transactions/Commands.js +1 -1
- package/dist/esm/transactions/Inputs.js +1 -1
- package/dist/esm/transactions/ObjectCache.js +1 -1
- package/dist/esm/transactions/Transaction.js +1 -1
- package/dist/esm/transactions/TransactionData.js +1 -1
- package/dist/esm/transactions/__tests__/bcs.test.js +1 -1
- package/dist/esm/transactions/data/internal.d.ts +1 -1
- package/dist/esm/transactions/data/internal.js +1 -1
- package/dist/esm/transactions/data/v2.js +1 -1
- package/dist/esm/transactions/executor/caching.d.ts +4 -4
- package/dist/esm/transactions/executor/parallel.d.ts +4 -4
- package/dist/esm/transactions/executor/parallel.js +1 -1
- package/dist/esm/transactions/executor/serial.d.ts +4 -4
- package/dist/esm/transactions/intents/CoinWithBalance.d.ts +2 -2
- package/dist/esm/transactions/intents/CoinWithBalance.js +1 -1
- package/dist/esm/transactions/serializer.d.ts +2 -2
- package/dist/esm/transactions/serializer.js +1 -1
- package/dist/esm/transactions/utils.d.ts +4 -4
- package/dist/esm/transactions/utils.js +1 -1
- package/dist/esm/utils/constants.d.ts +0 -6
- package/dist/esm/utils/constants.js +1 -1
- package/dist/esm/utils/index.d.ts +1 -1
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/verify/index.d.ts +1 -1
- package/dist/esm/verify/index.js +1 -1
- package/dist/esm/verify/verify.d.ts +1 -1
- package/dist/esm/verify/verify.js +1 -1
- package/dist/esm/w/call/allocation.js +1 -1
- package/dist/esm/w/call/arbitration.js +1 -1
- package/dist/esm/w/call/base.d.ts +6 -6
- package/dist/esm/w/call/base.js +1 -1
- package/dist/esm/w/call/contact.js +1 -1
- package/dist/esm/w/call/demand.js +1 -1
- package/dist/esm/w/call/entity.js +1 -1
- package/dist/esm/w/call/guard-ins.js +1 -1
- package/dist/esm/w/call/guard.js +1 -1
- package/dist/esm/w/call/passport.d.ts +2 -2
- package/dist/esm/w/call/passport.js +1 -1
- package/dist/esm/w/common.d.ts +7 -2
- package/dist/esm/w/common.js +1 -1
- package/dist/esm/w/local/account.d.ts +3 -3
- package/dist/esm/w/local/account.js +1 -1
- package/dist/esm/w/local/index.d.ts +2 -2
- package/dist/esm/w/local/index.js +1 -1
- package/dist/esm/w/local/local.js +1 -1
- package/dist/esm/w/local/token.js +1 -1
- package/dist/esm/w/messenger/messenger.js +1 -1
- package/dist/esm/w/query/event.js +1 -1
- package/dist/esm/w/query/object.js +1 -1
- package/dist/esm/w/query/received.js +1 -1
- package/dist/esm/w/util.js +1 -1
- package/package.json +4 -3
- /package/dist/cjs/utils/{sui-types.d.ts → wow-types.d.ts} +0 -0
- /package/dist/cjs/utils/{sui-types.js → wow-types.js} +0 -0
- /package/dist/esm/utils/{sui-types.d.ts → wow-types.d.ts} +0 -0
- /package/dist/esm/utils/{sui-types.js → wow-types.js} +0 -0
package/dist/cjs/grpc/core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Experimental_CoreClient}from'../experimental/index.js';import{Owner_OwnerKind}from'./proto/sui/rpc/v2/owner.js';import{chunk,fromBase64,toBase64}from'../_deps/utils/index.js';import{UnchangedConsensusObject_UnchangedConsensusObjectKind}from'./proto/sui/rpc/v2/effects.js';import{ChangedObject_IdOperation,ChangedObject_InputObjectState,ChangedObject_OutputObjectState}from'./proto/sui/rpc/v2/effects.js';import{TransactionDataBuilder}from'../transactions/index.js';import{bcs}from'../bcs/index.js';import{Ability,FunctionDescriptor_Visibility,OpenSignature_Reference,OpenSignatureBody_Type}from'./proto/sui/rpc/v2/move_package.js';export class GrpcCoreClient extends Experimental_CoreClient{#client;constructor({client:a,...b}){super(b),this.#client=a;}async['getObjects'](a){const b=chunk(a['objectIds'],0x32),c=[];for(const d of b){const e=await this.#client['ledgerService']['batchGetObjects']({'requests':d['map'](f=>({'objectId':f})),'readMask':{'paths':['owner','object_type','bcs','digest','version','object_id','previous_transaction']}});c['push'](...e['response']['objects']['map'](f=>{if(f['result']['oneofKind']==='error')return new Error(f['result']['error']['message']);if(f['result']['oneofKind']!=='object')return new Error('Unexpected\x20result\x20type');const g=f['result']['object'];return{'id':g['objectId'],'version':g['version']?.['toString'](),'digest':g['digest'],'content':Promise['resolve'](g['bcs']?.['value']),'owner':mapOwner(g['owner']),'type':g['objectType'],'previousTransaction':g['previousTransaction']??null};}));}return{'objects':c};}async['getOwnedObjects'](a){const b=await this.#client['stateService']['listOwnedObjects']({'owner':a['address'],'objectType':a['type'],'pageToken':a['cursor']?fromBase64(a['cursor']):undefined,'readMask':{'paths':['owner','object_type','bcs','digest','version','object_id','previous_transaction']}}),c=b['response']['objects']['map'](d=>({'id':d['objectId'],'version':d['version']?.['toString'](),'digest':d['digest'],get 'content'(){return d['bcs']?.['value']?Promise['resolve'](d['bcs']['value']):Promise['reject'](new Error('GRPC\x20does\x20not\x20return\x20object\x20contents\x20when\x20listing\x20owned\x20objects'));},'owner':mapOwner(d['owner']),'type':d['objectType'],'previousTransaction':d['previousTransaction']??null}));return{'objects':c,'cursor':b['response']['nextPageToken']?toBase64(b['response']['nextPageToken']):null,'hasNextPage':b['response']['nextPageToken']!==undefined};}async['getCoins'](a){const b=await this.#client['stateService']['listOwnedObjects']({'owner':a['address'],'objectType':'0x2::coin::Coin<'+a['coinType']+'>','pageToken':a['cursor']?fromBase64(a['cursor']):undefined,'readMask':{'paths':['owner','object_type','bcs','digest','version','object_id','balance','previous_transaction']}});return{'objects':b['response']['objects']['map'](c=>({'id':c['objectId'],'version':c['version']?.['toString'](),'digest':c['digest'],get 'content'(){return c['bcs']?.['value']?Promise['resolve'](c['bcs']['value']):Promise['reject'](new Error('GRPC\x20does\x20not\x20return\x20object\x20contents\x20when\x20listing\x20owned\x20objects'));},'owner':mapOwner(c['owner']),'type':c['objectType'],'balance':c['balance']?.['toString'](),'previousTransaction':c['previousTransaction']??null})),'cursor':b['response']['nextPageToken']?toBase64(b['response']['nextPageToken']):null,'hasNextPage':b['response']['nextPageToken']!==undefined};}async['getBalance'](a){const b=await this.#client['stateService']['getBalance']({'owner':a['address'],'coinType':a['coinType']});return{'balance':{'balance':b['response']['balance']?.['balance']?.['toString']()??'0','coinType':b['response']['balance']?.['coinType']??a['coinType']}};}async['getAllBalances'](a){const b=await this.#client['stateService']['listBalances']({'owner':a['address'],'pageToken':a['cursor']?fromBase64(a['cursor']):undefined,'pageSize':a['limit']});return{'hasNextPage':!!b['response']['nextPageToken'],'cursor':b['response']['nextPageToken']?toBase64(b['response']['nextPageToken']):null,'balances':b['response']['balances']['map'](c=>({'balance':c['balance']?.['toString']()??'0','coinType':c['coinType']}))};}async['getTransaction'](a){const {response:b}=await this.#client['ledgerService']['getTransaction']({'digest':a['digest'],'readMask':{'paths':['digest','transaction','effects','signatures','balance_changes']}});return{'transaction':parseTransaction(b['transaction'])};}async['executeTransaction'](a){const {response:b}=await this.#client['transactionExecutionService']['executeTransaction']({'transaction':{'bcs':{'value':a['transaction']}},'signatures':a['signatures']['map'](c=>({'bcs':{'value':fromBase64(c)},'signature':{'oneofKind':undefined}})),'readMask':{'paths':['transaction.digest','transaction.transaction','transaction.effects','transaction.signatures','transaction.balance_changes']}});return{'transaction':parseTransaction(b['transaction'])};}async['dryRunTransaction'](a){const {response:b}=await this.#client['transactionExecutionService']['simulateTransaction']({'transaction':{'bcs':{'value':a['transaction']}},'readMask':{'paths':['transaction.digest','transaction.transaction','transaction.effects','transaction.signatures','transaction.balance_changes']}});return{'transaction':parseTransaction(b['transaction'])};}async['getReferenceGasPrice'](){const a=await this.#client['ledgerService']['getEpoch']({});return{'referenceGasPrice':a['response']['epoch']?.['referenceGasPrice']?.['toString']()};}async['getDynamicFields'](a){const b=await this.#client['stateService']['listDynamicFields']({'parent':a['parentId'],'pageToken':a['cursor']?fromBase64(a['cursor']):undefined});return{'dynamicFields':b['response']['dynamicFields']['map'](c=>({'id':c['fieldId'],'name':{'type':c['name']?.['name'],'bcs':c['name']?.['value']},'type':c['fieldObject']?'0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<'+c['name']?.['name']+'>,0x2::object::ID>':'0x2::dynamic_field::Field<'+c['name']?.['value']+','+c['valueType']+'>'})),'cursor':b['response']['nextPageToken']?toBase64(b['response']['nextPageToken']):null,'hasNextPage':b['response']['nextPageToken']!==undefined};}async['getMoveFunction'](a){const {response:b}=await this.#client['movePackageService']['getFunction']({'packageId':a['packageId'],'moduleName':a['moduleName'],'name':a['name']});let c='unknown';switch(b['function']?.['visibility']){case FunctionDescriptor_Visibility['PUBLIC']:c='public';break;case FunctionDescriptor_Visibility['PRIVATE']:c='private';break;case FunctionDescriptor_Visibility['FRIEND']:c='friend';break;}return{'function':{'packageId':a['packageId'],'moduleName':a['moduleName'],'name':b['function']?.['name'],'visibility':c,'isEntry':b['function']?.['isEntry']??![],'typeParameters':b['function']?.['typeParameters']?.['map'](({constraints:d})=>({'isPhantom':![],'constraints':d['map'](e=>{switch(e){case Ability['COPY']:return'copy';case Ability['DROP']:return'drop';case Ability['STORE']:return'store';case Ability['KEY']:return'key';default:return'unknown';}})??[]}))??[],'parameters':b['function']?.['parameters']?.['map'](d=>parseNormalizedSuiMoveType(d))??[],'returns':b['function']?.['returns']?.['map'](d=>parseNormalizedSuiMoveType(d))??[]}};}['resolveTransactionPlugin'](){return async function a(b,c,d){throw new Error('Transaction\x20resolution\x20is\x20not\x20supported\x20with\x20the\x20GRPC\x20client');};}}function mapOwner(a){if(!a)return null;if(a['kind']===Owner_OwnerKind['IMMUTABLE'])return{'$kind':'Immutable','Immutable':!![]};if(a['kind']===Owner_OwnerKind['ADDRESS'])return{'AddressOwner':a['address'],'$kind':'AddressOwner'};if(a['kind']===Owner_OwnerKind['OBJECT'])return{'$kind':'ObjectOwner','ObjectOwner':a['address']};if(a['kind']===Owner_OwnerKind['SHARED']){if(a['address'])return{'$kind':'ConsensusAddressOwner','ConsensusAddressOwner':{'owner':a['address'],'startVersion':a['version']?.['toString']()}};return{'$kind':'Shared','Shared':{'initialSharedVersion':a['version']?.['toString']()}};}throw new Error('Unknown\x20owner\x20kind');}function mapIdOperation(a){if(a==null)return null;switch(a){case ChangedObject_IdOperation['CREATED']:return'Created';case ChangedObject_IdOperation['DELETED']:return'Deleted';case ChangedObject_IdOperation['NONE']:case ChangedObject_IdOperation['ID_OPERATION_UNKNOWN']:return'None';default:a;return'Unknown';}}function mapInputObjectState(a){if(a==null)return null;switch(a){case ChangedObject_InputObjectState['EXISTS']:return'Exists';case ChangedObject_InputObjectState['DOES_NOT_EXIST']:return'DoesNotExist';case ChangedObject_InputObjectState['UNKNOWN']:return'Unknown';default:a;return'Unknown';}}function mapOutputObjectState(a){if(a==null)return null;switch(a){case ChangedObject_OutputObjectState['OBJECT_WRITE']:return'ObjectWrite';case ChangedObject_OutputObjectState['PACKAGE_WRITE']:return'PackageWrite';case ChangedObject_OutputObjectState['DOES_NOT_EXIST']:return'DoesNotExist';case ChangedObject_OutputObjectState['UNKNOWN']:return'Unknown';default:a;return'Unknown';}}function mapUnchangedConsensusObjectKind(a){if(a==null)return null;switch(a){case UnchangedConsensusObject_UnchangedConsensusObjectKind['UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN']:return'Unknown';case UnchangedConsensusObject_UnchangedConsensusObjectKind['READ_ONLY_ROOT']:return'ReadOnlyRoot';case UnchangedConsensusObject_UnchangedConsensusObjectKind['MUTATE_CONSENSUS_STREAM_ENDED']:return'MutateConsensusStreamEnded';case UnchangedConsensusObject_UnchangedConsensusObjectKind['READ_CONSENSUS_STREAM_ENDED']:return'ReadConsensusStreamEnded';case UnchangedConsensusObject_UnchangedConsensusObjectKind['CANCELED']:return'Cancelled';case UnchangedConsensusObject_UnchangedConsensusObjectKind['PER_EPOCH_CONFIG']:return'PerEpochConfig';default:a;return'Unknown';}}export function parseTransactionEffects({effects:a}){if(!a)return null;const b=a['changedObjects']['map'](c=>{return{'id':c['objectId'],'inputState':mapInputObjectState(c['inputState']),'inputVersion':c['inputVersion']?.['toString']()??null,'inputDigest':c['inputDigest']??null,'inputOwner':mapOwner(c['inputOwner']),'outputState':mapOutputObjectState(c['outputState']),'outputVersion':c['outputVersion']?.['toString']()??null,'outputDigest':c['outputDigest']??null,'outputOwner':mapOwner(c['outputOwner']),'idOperation':mapIdOperation(c['idOperation'])};});return{'bcs':a['bcs']?.['value'],'digest':a['digest'],'version':0x2,'status':a['status']?.['success']?{'success':!![],'error':null}:{'success':![],'error':JSON['stringify'](a['status']?.['error'])},'gasUsed':{'computationCost':a['gasUsed']?.['computationCost']?.['toString'](),'storageCost':a['gasUsed']?.['storageCost']?.['toString'](),'storageRebate':a['gasUsed']?.['storageRebate']?.['toString'](),'nonRefundableStorageFee':a['gasUsed']?.['nonRefundableStorageFee']?.['toString']()},'transactionDigest':a['transactionDigest'],'gasObject':{'id':a['gasObject']?.['objectId'],'inputState':mapInputObjectState(a['gasObject']?.['inputState']),'inputVersion':a['gasObject']?.['inputVersion']?.['toString']()??null,'inputDigest':a['gasObject']?.['inputDigest']??null,'inputOwner':mapOwner(a['gasObject']?.['inputOwner']),'outputState':mapOutputObjectState(a['gasObject']?.['outputState']),'outputVersion':a['gasObject']?.['outputVersion']?.['toString']()??null,'outputDigest':a['gasObject']?.['outputDigest']??null,'outputOwner':mapOwner(a['gasObject']?.['outputOwner']),'idOperation':mapIdOperation(a['gasObject']?.['idOperation'])},'eventsDigest':a['eventsDigest']??null,'dependencies':a['dependencies'],'lamportVersion':a['lamportVersion']?.['toString']()??null,'changedObjects':b,'unchangedConsensusObjects':a['unchangedConsensusObjects']['map'](c=>{return{'kind':mapUnchangedConsensusObjectKind(c['kind']),'objectId':c['objectId'],'version':c['version']?.['toString']()??null,'digest':c['digest']??null};}),'auxiliaryDataDigest':a['auxiliaryDataDigest']??null};}function parseTransaction(a){const b=bcs['SenderSignedData']['parse'](a['transaction']?.['bcs']?.['value'])[0x0],c=bcs['TransactionData']['serialize'](b['intentMessage']['value'])['toBytes'](),d=TransactionDataBuilder['restore']({'version':0x2,'sender':b['intentMessage']['value']['V1']['sender'],'expiration':b['intentMessage']['value']['V1']['expiration'],'gasData':b['intentMessage']['value']['V1']['gasData'],'inputs':b['intentMessage']['value']['V1']['kind']['ProgrammableTransaction']['inputs'],'commands':b['intentMessage']['value']['V1']['kind']['ProgrammableTransaction']['commands']}),e={};a['objects']?.['objects']['forEach'](g=>{g['objectId']&&g['objectType']&&(e[g['objectId']]=g['objectType']);});const f=parseTransactionEffects({'effects':a['effects']});return{'digest':a['digest'],'epoch':a['effects']?.['epoch']?.['toString']()??null,'effects':f,'objectTypes':Promise['resolve'](e),'transaction':{'gasData':d['gasData'],'sender':d['sender'],'expiration':d['expiration'],'commands':d['commands'],'inputs':d['inputs'],'version':d['version'],'bcs':c},'signatures':b['txSignatures'],'balanceChanges':a['balanceChanges']?.['map'](g=>({'coinType':g['coinType'],'address':g['address'],'amount':g['amount']}))??[]};}function parseNormalizedSuiMoveType(a){let b=null;if(a['reference']===OpenSignature_Reference['IMMUTABLE'])b='immutable';else a['reference']===OpenSignature_Reference['MUTABLE']&&(b='mutable');return{'reference':b,'body':parseNormalizedSuiMoveTypeBody(a['body'])};}function parseNormalizedSuiMoveTypeBody(a){switch(a['type']){case OpenSignatureBody_Type['TYPE_UNKNOWN']:return{'$kind':'unknown'};case OpenSignatureBody_Type['ADDRESS']:return{'$kind':'address'};case OpenSignatureBody_Type['BOOL']:return{'$kind':'bool'};case OpenSignatureBody_Type['U8']:return{'$kind':'u8'};case OpenSignatureBody_Type['U16']:return{'$kind':'u16'};case OpenSignatureBody_Type['U32']:return{'$kind':'u32'};case OpenSignatureBody_Type['U64']:return{'$kind':'u64'};case OpenSignatureBody_Type['U128']:return{'$kind':'u128'};case OpenSignatureBody_Type['U256']:return{'$kind':'u256'};case OpenSignatureBody_Type['VECTOR']:return{'$kind':'vector','vector':parseNormalizedSuiMoveTypeBody(a['typeParameterInstantiation'][0x0])};case OpenSignatureBody_Type['DATATYPE']:return{'$kind':'datatype','datatype':{'typeName':a['typeName'],'typeParameters':a['typeParameterInstantiation']['map'](b=>parseNormalizedSuiMoveTypeBody(b))}};case OpenSignatureBody_Type['TYPE_PARAMETER']:return{'$kind':'typeParameter','index':a['typeParameter']};default:return{'$kind':'unknown'};}}
|
|
1
|
+
import{Experimental_CoreClient}from'../experimental/index.js';import{Owner_OwnerKind}from'./proto/sui/rpc/v2/owner.js';import{chunk,fromBase64,toBase64}from'../_deps/utils/index.js';import{UnchangedConsensusObject_UnchangedConsensusObjectKind}from'./proto/sui/rpc/v2/effects.js';import{ChangedObject_IdOperation,ChangedObject_InputObjectState,ChangedObject_OutputObjectState}from'./proto/sui/rpc/v2/effects.js';import{TransactionDataBuilder}from'../transactions/index.js';import{bcs}from'../bcs/index.js';import{Ability,FunctionDescriptor_Visibility,OpenSignature_Reference,OpenSignatureBody_Type}from'./proto/sui/rpc/v2/move_package.js';export class GrpcCoreClient extends Experimental_CoreClient{#client;constructor({client:a,...b}){super(b),this.#client=a;}async['getObjects'](a){const b=chunk(a['objectIds'],0x32),c=[];for(const d of b){const e=await this.#client['ledgerService']['batchGetObjects']({'requests':d['map'](f=>({'objectId':f})),'readMask':{'paths':['owner','object_type','bcs','digest','version','object_id','previous_transaction']}});c['push'](...e['response']['objects']['map'](f=>{if(f['result']['oneofKind']==='error')return new Error(f['result']['error']['message']);if(f['result']['oneofKind']!=='object')return new Error('Unexpected\x20result\x20type');const g=f['result']['object'];return{'id':g['objectId'],'version':g['version']?.['toString'](),'digest':g['digest'],'content':Promise['resolve'](g['bcs']?.['value']),'owner':mapOwner(g['owner']),'type':g['objectType'],'previousTransaction':g['previousTransaction']??null};}));}return{'objects':c};}async['getOwnedObjects'](a){const b=await this.#client['stateService']['listOwnedObjects']({'owner':a['address'],'objectType':a['type'],'pageToken':a['cursor']?fromBase64(a['cursor']):undefined,'readMask':{'paths':['owner','object_type','bcs','digest','version','object_id','previous_transaction']}}),c=b['response']['objects']['map'](d=>({'id':d['objectId'],'version':d['version']?.['toString'](),'digest':d['digest'],get 'content'(){return d['bcs']?.['value']?Promise['resolve'](d['bcs']['value']):Promise['reject'](new Error('GRPC\x20does\x20not\x20return\x20object\x20contents\x20when\x20listing\x20owned\x20objects'));},'owner':mapOwner(d['owner']),'type':d['objectType'],'previousTransaction':d['previousTransaction']??null}));return{'objects':c,'cursor':b['response']['nextPageToken']?toBase64(b['response']['nextPageToken']):null,'hasNextPage':b['response']['nextPageToken']!==undefined};}async['getCoins'](a){const b=await this.#client['stateService']['listOwnedObjects']({'owner':a['address'],'objectType':'0x2::coin::Coin<'+a['coinType']+'>','pageToken':a['cursor']?fromBase64(a['cursor']):undefined,'readMask':{'paths':['owner','object_type','bcs','digest','version','object_id','balance','previous_transaction']}});return{'objects':b['response']['objects']['map'](c=>({'id':c['objectId'],'version':c['version']?.['toString'](),'digest':c['digest'],get 'content'(){return c['bcs']?.['value']?Promise['resolve'](c['bcs']['value']):Promise['reject'](new Error('GRPC\x20does\x20not\x20return\x20object\x20contents\x20when\x20listing\x20owned\x20objects'));},'owner':mapOwner(c['owner']),'type':c['objectType'],'balance':c['balance']?.['toString'](),'previousTransaction':c['previousTransaction']??null})),'cursor':b['response']['nextPageToken']?toBase64(b['response']['nextPageToken']):null,'hasNextPage':b['response']['nextPageToken']!==undefined};}async['getBalance'](a){const b=await this.#client['stateService']['getBalance']({'owner':a['address'],'coinType':a['coinType']});return{'balance':{'balance':b['response']['balance']?.['balance']?.['toString']()??'0','coinType':b['response']['balance']?.['coinType']??a['coinType']}};}async['getAllBalances'](a){const b=await this.#client['stateService']['listBalances']({'owner':a['address'],'pageToken':a['cursor']?fromBase64(a['cursor']):undefined,'pageSize':a['limit']});return{'hasNextPage':!!b['response']['nextPageToken'],'cursor':b['response']['nextPageToken']?toBase64(b['response']['nextPageToken']):null,'balances':b['response']['balances']['map'](c=>({'balance':c['balance']?.['toString']()??'0','coinType':c['coinType']}))};}async['getTransaction'](a){const {response:b}=await this.#client['ledgerService']['getTransaction']({'digest':a['digest'],'readMask':{'paths':['digest','transaction','effects','signatures','balance_changes']}});return{'transaction':parseTransaction(b['transaction'])};}async['executeTransaction'](a){const {response:b}=await this.#client['transactionExecutionService']['executeTransaction']({'transaction':{'bcs':{'value':a['transaction']}},'signatures':a['signatures']['map'](c=>({'bcs':{'value':fromBase64(c)},'signature':{'oneofKind':undefined}})),'readMask':{'paths':['transaction.digest','transaction.transaction','transaction.effects','transaction.signatures','transaction.balance_changes']}});return{'transaction':parseTransaction(b['transaction'])};}async['dryRunTransaction'](a){const {response:b}=await this.#client['transactionExecutionService']['simulateTransaction']({'transaction':{'bcs':{'value':a['transaction']}},'readMask':{'paths':['transaction.digest','transaction.transaction','transaction.effects','transaction.signatures','transaction.balance_changes']}});return{'transaction':parseTransaction(b['transaction'])};}async['getReferenceGasPrice'](){const a=await this.#client['ledgerService']['getEpoch']({});return{'referenceGasPrice':a['response']['epoch']?.['referenceGasPrice']?.['toString']()};}async['getDynamicFields'](a){const b=await this.#client['stateService']['listDynamicFields']({'parent':a['parentId'],'pageToken':a['cursor']?fromBase64(a['cursor']):undefined});return{'dynamicFields':b['response']['dynamicFields']['map'](c=>({'id':c['fieldId'],'name':{'type':c['name']?.['name'],'bcs':c['name']?.['value']},'type':c['fieldObject']?'0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<'+c['name']?.['name']+'>,0x2::object::ID>':'0x2::dynamic_field::Field<'+c['name']?.['value']+','+c['valueType']+'>'})),'cursor':b['response']['nextPageToken']?toBase64(b['response']['nextPageToken']):null,'hasNextPage':b['response']['nextPageToken']!==undefined};}async['getMoveFunction'](a){const {response:b}=await this.#client['movePackageService']['getFunction']({'packageId':a['packageId'],'moduleName':a['moduleName'],'name':a['name']});let c='unknown';switch(b['function']?.['visibility']){case FunctionDescriptor_Visibility['PUBLIC']:c='public';break;case FunctionDescriptor_Visibility['PRIVATE']:c='private';break;case FunctionDescriptor_Visibility['FRIEND']:c='friend';break;}return{'function':{'packageId':a['packageId'],'moduleName':a['moduleName'],'name':b['function']?.['name'],'visibility':c,'isEntry':b['function']?.['isEntry']??![],'typeParameters':b['function']?.['typeParameters']?.['map'](({constraints:d})=>({'isPhantom':![],'constraints':d['map'](e=>{switch(e){case Ability['COPY']:return'copy';case Ability['DROP']:return'drop';case Ability['STORE']:return'store';case Ability['KEY']:return'key';default:return'unknown';}})??[]}))??[],'parameters':b['function']?.['parameters']?.['map'](d=>parseNormalizedWowMoveType(d))??[],'returns':b['function']?.['returns']?.['map'](d=>parseNormalizedWowMoveType(d))??[]}};}['resolveTransactionPlugin'](){return async function a(b,c,d){throw new Error('Transaction\x20resolution\x20is\x20not\x20supported\x20with\x20the\x20GRPC\x20client');};}}function mapOwner(a){if(!a)return null;if(a['kind']===Owner_OwnerKind['IMMUTABLE'])return{'$kind':'Immutable','Immutable':!![]};if(a['kind']===Owner_OwnerKind['ADDRESS'])return{'AddressOwner':a['address'],'$kind':'AddressOwner'};if(a['kind']===Owner_OwnerKind['OBJECT'])return{'$kind':'ObjectOwner','ObjectOwner':a['address']};if(a['kind']===Owner_OwnerKind['SHARED']){if(a['address'])return{'$kind':'ConsensusAddressOwner','ConsensusAddressOwner':{'owner':a['address'],'startVersion':a['version']?.['toString']()}};return{'$kind':'Shared','Shared':{'initialSharedVersion':a['version']?.['toString']()}};}throw new Error('Unknown\x20owner\x20kind');}function mapIdOperation(a){if(a==null)return null;switch(a){case ChangedObject_IdOperation['CREATED']:return'Created';case ChangedObject_IdOperation['DELETED']:return'Deleted';case ChangedObject_IdOperation['NONE']:case ChangedObject_IdOperation['ID_OPERATION_UNKNOWN']:return'None';default:a;return'Unknown';}}function mapInputObjectState(a){if(a==null)return null;switch(a){case ChangedObject_InputObjectState['EXISTS']:return'Exists';case ChangedObject_InputObjectState['DOES_NOT_EXIST']:return'DoesNotExist';case ChangedObject_InputObjectState['UNKNOWN']:return'Unknown';default:a;return'Unknown';}}function mapOutputObjectState(a){if(a==null)return null;switch(a){case ChangedObject_OutputObjectState['OBJECT_WRITE']:return'ObjectWrite';case ChangedObject_OutputObjectState['PACKAGE_WRITE']:return'PackageWrite';case ChangedObject_OutputObjectState['DOES_NOT_EXIST']:return'DoesNotExist';case ChangedObject_OutputObjectState['UNKNOWN']:return'Unknown';default:a;return'Unknown';}}function mapUnchangedConsensusObjectKind(a){if(a==null)return null;switch(a){case UnchangedConsensusObject_UnchangedConsensusObjectKind['UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN']:return'Unknown';case UnchangedConsensusObject_UnchangedConsensusObjectKind['READ_ONLY_ROOT']:return'ReadOnlyRoot';case UnchangedConsensusObject_UnchangedConsensusObjectKind['MUTATE_CONSENSUS_STREAM_ENDED']:return'MutateConsensusStreamEnded';case UnchangedConsensusObject_UnchangedConsensusObjectKind['READ_CONSENSUS_STREAM_ENDED']:return'ReadConsensusStreamEnded';case UnchangedConsensusObject_UnchangedConsensusObjectKind['CANCELED']:return'Cancelled';case UnchangedConsensusObject_UnchangedConsensusObjectKind['PER_EPOCH_CONFIG']:return'PerEpochConfig';default:a;return'Unknown';}}export function parseTransactionEffects({effects:a}){if(!a)return null;const b=a['changedObjects']['map'](c=>{return{'id':c['objectId'],'inputState':mapInputObjectState(c['inputState']),'inputVersion':c['inputVersion']?.['toString']()??null,'inputDigest':c['inputDigest']??null,'inputOwner':mapOwner(c['inputOwner']),'outputState':mapOutputObjectState(c['outputState']),'outputVersion':c['outputVersion']?.['toString']()??null,'outputDigest':c['outputDigest']??null,'outputOwner':mapOwner(c['outputOwner']),'idOperation':mapIdOperation(c['idOperation'])};});return{'bcs':a['bcs']?.['value'],'digest':a['digest'],'version':0x2,'status':a['status']?.['success']?{'success':!![],'error':null}:{'success':![],'error':JSON['stringify'](a['status']?.['error'])},'gasUsed':{'computationCost':a['gasUsed']?.['computationCost']?.['toString'](),'storageCost':a['gasUsed']?.['storageCost']?.['toString'](),'storageRebate':a['gasUsed']?.['storageRebate']?.['toString'](),'nonRefundableStorageFee':a['gasUsed']?.['nonRefundableStorageFee']?.['toString']()},'transactionDigest':a['transactionDigest'],'gasObject':{'id':a['gasObject']?.['objectId'],'inputState':mapInputObjectState(a['gasObject']?.['inputState']),'inputVersion':a['gasObject']?.['inputVersion']?.['toString']()??null,'inputDigest':a['gasObject']?.['inputDigest']??null,'inputOwner':mapOwner(a['gasObject']?.['inputOwner']),'outputState':mapOutputObjectState(a['gasObject']?.['outputState']),'outputVersion':a['gasObject']?.['outputVersion']?.['toString']()??null,'outputDigest':a['gasObject']?.['outputDigest']??null,'outputOwner':mapOwner(a['gasObject']?.['outputOwner']),'idOperation':mapIdOperation(a['gasObject']?.['idOperation'])},'eventsDigest':a['eventsDigest']??null,'dependencies':a['dependencies'],'lamportVersion':a['lamportVersion']?.['toString']()??null,'changedObjects':b,'unchangedConsensusObjects':a['unchangedConsensusObjects']['map'](c=>{return{'kind':mapUnchangedConsensusObjectKind(c['kind']),'objectId':c['objectId'],'version':c['version']?.['toString']()??null,'digest':c['digest']??null};}),'auxiliaryDataDigest':a['auxiliaryDataDigest']??null};}function parseTransaction(a){const b=bcs['SenderSignedData']['parse'](a['transaction']?.['bcs']?.['value'])[0x0],c=bcs['TransactionData']['serialize'](b['intentMessage']['value'])['toBytes'](),d=TransactionDataBuilder['restore']({'version':0x2,'sender':b['intentMessage']['value']['V1']['sender'],'expiration':b['intentMessage']['value']['V1']['expiration'],'gasData':b['intentMessage']['value']['V1']['gasData'],'inputs':b['intentMessage']['value']['V1']['kind']['ProgrammableTransaction']['inputs'],'commands':b['intentMessage']['value']['V1']['kind']['ProgrammableTransaction']['commands']}),e={};a['objects']?.['objects']['forEach'](g=>{g['objectId']&&g['objectType']&&(e[g['objectId']]=g['objectType']);});const f=parseTransactionEffects({'effects':a['effects']});return{'digest':a['digest'],'epoch':a['effects']?.['epoch']?.['toString']()??null,'effects':f,'objectTypes':Promise['resolve'](e),'transaction':{'gasData':d['gasData'],'sender':d['sender'],'expiration':d['expiration'],'commands':d['commands'],'inputs':d['inputs'],'version':d['version'],'bcs':c},'signatures':b['txSignatures'],'balanceChanges':a['balanceChanges']?.['map'](g=>({'coinType':g['coinType'],'address':g['address'],'amount':g['amount']}))??[]};}function parseNormalizedWowMoveType(a){let b=null;if(a['reference']===OpenSignature_Reference['IMMUTABLE'])b='immutable';else a['reference']===OpenSignature_Reference['MUTABLE']&&(b='mutable');return{'reference':b,'body':parseNormalizedWowMoveTypeBody(a['body'])};}function parseNormalizedWowMoveTypeBody(a){switch(a['type']){case OpenSignatureBody_Type['TYPE_UNKNOWN']:return{'$kind':'unknown'};case OpenSignatureBody_Type['ADDRESS']:return{'$kind':'address'};case OpenSignatureBody_Type['BOOL']:return{'$kind':'bool'};case OpenSignatureBody_Type['U8']:return{'$kind':'u8'};case OpenSignatureBody_Type['U16']:return{'$kind':'u16'};case OpenSignatureBody_Type['U32']:return{'$kind':'u32'};case OpenSignatureBody_Type['U64']:return{'$kind':'u64'};case OpenSignatureBody_Type['U128']:return{'$kind':'u128'};case OpenSignatureBody_Type['U256']:return{'$kind':'u256'};case OpenSignatureBody_Type['VECTOR']:return{'$kind':'vector','vector':parseNormalizedWowMoveTypeBody(a['typeParameterInstantiation'][0x0])};case OpenSignatureBody_Type['DATATYPE']:return{'$kind':'datatype','datatype':{'typeName':a['typeName'],'typeParameters':a['typeParameterInstantiation']['map'](b=>parseNormalizedWowMoveTypeBody(b))}};case OpenSignatureBody_Type['TYPE_PARAMETER']:return{'$kind':'typeParameter','index':a['typeParameter']};default:return{'$kind':'unknown'};}}
|
package/dist/cjs/grpc/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { WowGrpcClient } from "./client.js";
|
|
2
2
|
export { GrpcCoreClient } from "./core.js";
|
|
3
|
-
export type {
|
|
3
|
+
export type { WowGrpcClientOptions } from "./client.js";
|
|
4
4
|
export type { GrpcCoreClientOptions } from "./core.js";
|
package/dist/cjs/grpc/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{WowGrpcClient}from'./client.js';export{GrpcCoreClient}from'./core.js';
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * from "./w/common.js";
|
|
2
2
|
export * from "./w/query/object.js";
|
|
3
3
|
export * from "./bcs/index.js";
|
|
4
|
-
export { ENTRYPOINT, getFullnodeUrl,
|
|
5
|
-
export type {
|
|
4
|
+
export { ENTRYPOINT, getFullnodeUrl, WowClient, type WowTransport, type WowTransportRequestOptions, type WowTransportSubscribeOptions, type HttpHeaders, type WowHTTPTransportOptions, WowHTTPTransport, WowHTTPStatusError, WowHTTPTransportError, JsonRpcError, } from "./client/index.js";
|
|
5
|
+
export type { WowObjectData, WowObjectResponse, WowObjectRef, WowParsedData, WowEvent, WowTransactionBlockResponse, ExecutionStatus, GasCostSummary, ObjectOwner, Balance, BalanceChange, Checkpoint, EpochInfo, MoveCallParams, WowMoveFunctionArgType, MoveStruct, MoveValue, MultiSig, WowObjectDataFilter, WowObjectDataOptions, SuiTransaction, SuiValidatorSummary, WowSystemStateSummary, } from "./jsonRpc/types/index.js";
|
|
6
6
|
export type { MultiSigPublicKey } from "./jsonRpc/types/index.js";
|
|
7
7
|
export { type SerializeSignatureInput, toSerializedSignature, parseSerializedSignature, SIGNATURE_SCHEME_TO_FLAG, SIGNATURE_SCHEME_TO_SIZE, SIGNATURE_FLAG_TO_SCHEME, type SignatureScheme, type SignatureFlag, isValidHardenedPath, isValidBIP32Path, mnemonicToSeed, mnemonicToSeedHex, messageWithIntent, type IntentScope, PRIVATE_KEY_SIZE, FALCON512_PRIVATE_KEY_SIZE, W_PRIVATE_KEY_PREFIX, type ParsedKeypair, type SignatureWithBytes, Signer, Keypair, decodeWowPrivateKey, encodeWowPrivateKey, PublicKey as CryptoPublicKey, } from "./cryptography/index.js";
|
|
8
8
|
export * from "./experimental/index.js";
|
|
@@ -22,4 +22,4 @@ export { ValueType, ObjectType, isValidName, isValidDescription, isValidLongName
|
|
|
22
22
|
export type { CallEnv, NamedObject, NamedObjectWithDescription, NamedObjectWithPermission, TypeNamedObject, TypeNamedObjectWithPermission, DescriptionObject, WithPermissionObject, TypedPermissionObject, TypedDescriptionObject, NormalObject, } from "./w/common.js";
|
|
23
23
|
export { ResponseData } from "./w/call/base.js";
|
|
24
24
|
export { BUITIN_IDS, isValidAddress } from "./w/local/local.js";
|
|
25
|
-
export { isValidWowAddress } from "./utils/
|
|
25
|
+
export { isValidWowAddress } from "./utils/wow-types.js";
|
package/dist/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export*from'./w/common.js';export*from'./w/query/object.js';export*from'./bcs/index.js';export{ENTRYPOINT,getFullnodeUrl,
|
|
1
|
+
export*from'./w/common.js';export*from'./w/query/object.js';export*from'./bcs/index.js';export{ENTRYPOINT,getFullnodeUrl,WowClient,WowHTTPTransport,WowHTTPStatusError,WowHTTPTransportError,JsonRpcError}from'./client/index.js';export{toSerializedSignature,parseSerializedSignature,SIGNATURE_SCHEME_TO_FLAG,SIGNATURE_SCHEME_TO_SIZE,SIGNATURE_FLAG_TO_SCHEME,isValidHardenedPath,isValidBIP32Path,mnemonicToSeed,mnemonicToSeedHex,messageWithIntent,PRIVATE_KEY_SIZE,FALCON512_PRIVATE_KEY_SIZE,W_PRIVATE_KEY_PREFIX,Signer,Keypair,decodeWowPrivateKey,encodeWowPrivateKey,PublicKey as CryptoPublicKey}from'./cryptography/index.js';export*from'./experimental/index.js';export*from'./faucet/index.js';export*from'./grpc/index.js';export*from'./jsonRpc/index.js';export*from'./keypairs/index.js';export{MultiSigSigner}from'./multisig/signer.js';export{parsePartialSignatures}from'./multisig/publickey.js';export{MultiSigPublicKey as MultisigPublicKey}from'./multisig/publickey.js';export*from'./transactions/index.js';export*from'./utils/index.js';export*from'./verify/index.js';export*from'./w/index.js';export{parseGuardFile,parseGuardFromMarkdown,validateGuardNode,formatGuardParseErrors}from'./w/call/guard.js';export{ValueType,ObjectType,isValidName,isValidDescription,isValidLongName,MAX_DESCRIPTION_LENGTH,MAX_LONG_NAME_LENGTH,MAX_NAME_LENGTH,IsValidArgType,GetObjectExisted,GetObjectDescription,GetObject}from'./w/common.js';export{ResponseData}from'./w/call/base.js';export{BUITIN_IDS,isValidAddress}from'./w/local/local.js';export{isValidWowAddress}from'./utils/wow-types.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Signer } from "../cryptography/index.js";
|
|
2
2
|
import { Experimental_BaseClient } from "../experimental/client.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Experimental_WowClientTypes } from "../experimental/types.js";
|
|
4
4
|
import type { Transaction } from "../transactions/Transaction.js";
|
|
5
5
|
import type { JsonRpcTransport } from "./http-transport.js";
|
|
6
|
-
import type { AddressMetrics, AllEpochsAddressMetrics, Checkpoint, CheckpointPage, CoinBalance, CoinMetadata, CoinSupply, CommitteeInfo, DelegatedStake, DevInspectResults, DevInspectTransactionBlockParams, DryRunTransactionBlockParams, DryRunTransactionBlockResponse, DynamicFieldPage, EpochInfo, EpochMetricsPage, EpochPage, ExecuteTransactionBlockParams, GetAllBalancesParams, GetAllCoinsParams, GetBalanceParams, GetCheckpointParams, GetCheckpointsParams, GetCoinMetadataParams, GetCoinsParams, GetCommitteeInfoParams, GetDynamicFieldObjectParams, GetDynamicFieldsParams, GetLatestCheckpointSequenceNumberParams,
|
|
6
|
+
import type { AddressMetrics, AllEpochsAddressMetrics, Checkpoint, CheckpointPage, CoinBalance, CoinMetadata, CoinSupply, CommitteeInfo, DelegatedStake, DevInspectResults, DevInspectTransactionBlockParams, DryRunTransactionBlockParams, DryRunTransactionBlockResponse, DynamicFieldPage, EpochInfo, EpochMetricsPage, EpochPage, ExecuteTransactionBlockParams, GetAllBalancesParams, GetAllCoinsParams, GetBalanceParams, GetCheckpointParams, GetCheckpointsParams, GetCoinMetadataParams, GetCoinsParams, GetCommitteeInfoParams, GetDynamicFieldObjectParams, GetDynamicFieldsParams, GetLatestCheckpointSequenceNumberParams, GetLatestWowSystemStateParams, ObjectRead, GetMoveFunctionArgTypesParams, GetNormalizedMoveFunctionParams, GetNormalizedMoveModuleParams, GetNormalizedMoveModulesByPackageParams, GetNormalizedMoveStructParams, GetObjectParams, GetOwnedObjectsParams, GetProtocolConfigParams, GetReferenceGasPriceParams, GetStakesByIdsParams, GetStakesParams, GetTotalSupplyParams, GetTransactionBlockParams, MoveCallMetrics, MultiGetObjectsParams, MultiGetTransactionBlocksParams, NetworkMetrics, Order, PaginatedCoins, PaginatedEvents, PaginatedObjectsResponse, PaginatedTransactionResponse, ProtocolConfig, QueryEventsParams, QueryTransactionBlocksParams, SubscribeEventParams, SubscribeTransactionParams, WowEvent, WowMoveFunctionArgType, WowMoveNormalizedFunction, WowMoveNormalizedModule, WowMoveNormalizedModules, WowMoveNormalizedStruct, WowObjectResponse, WowSystemStateSummary, WowTransactionBlockResponse, TransactionEffects, TryGetPastObjectParams, Unsubscribe, ValidatorsApy } from "./types/index.js";
|
|
7
7
|
import { JSONRpcCoreClient } from "./core.js";
|
|
8
8
|
export interface PaginationArguments<Cursor> {
|
|
9
9
|
cursor?: Cursor;
|
|
@@ -12,8 +12,8 @@ export interface PaginationArguments<Cursor> {
|
|
|
12
12
|
export interface OrderArguments {
|
|
13
13
|
order?: Order | null;
|
|
14
14
|
}
|
|
15
|
-
export type
|
|
16
|
-
network?:
|
|
15
|
+
export type WowJsonRpcClientOptions = NetworkOrTransport & {
|
|
16
|
+
network?: Experimental_WowClientTypes.Network;
|
|
17
17
|
};
|
|
18
18
|
type NetworkOrTransport = {
|
|
19
19
|
url: string;
|
|
@@ -22,14 +22,14 @@ type NetworkOrTransport = {
|
|
|
22
22
|
transport: JsonRpcTransport;
|
|
23
23
|
url?: never;
|
|
24
24
|
};
|
|
25
|
-
declare const
|
|
26
|
-
export declare function
|
|
27
|
-
export declare class
|
|
28
|
-
[
|
|
25
|
+
declare const WOW_CLIENT_BRAND: never;
|
|
26
|
+
export declare function isWowJsonRpcClient(client: unknown): client is WowJsonRpcClient;
|
|
27
|
+
export declare class WowJsonRpcClient extends Experimental_BaseClient {
|
|
28
|
+
[WOW_CLIENT_BRAND]: boolean;
|
|
29
29
|
core: JSONRpcCoreClient;
|
|
30
30
|
jsonRpc: this;
|
|
31
31
|
protected transport: JsonRpcTransport;
|
|
32
|
-
constructor(options:
|
|
32
|
+
constructor(options: WowJsonRpcClientOptions);
|
|
33
33
|
getRpcApiVersion({ signal }?: {
|
|
34
34
|
signal?: AbortSignal;
|
|
35
35
|
}): Promise<string | undefined>;
|
|
@@ -42,33 +42,33 @@ export declare class SuiJsonRpcClient extends Experimental_BaseClient {
|
|
|
42
42
|
call<T = unknown>(method: string, params: unknown[], { signal }?: {
|
|
43
43
|
signal?: AbortSignal;
|
|
44
44
|
}): Promise<T>;
|
|
45
|
-
getMoveFunctionArgTypes({ package: pkg, module, function: fn, signal, }: GetMoveFunctionArgTypesParams): Promise<
|
|
46
|
-
getNormalizedMoveModulesByPackage({ package: pkg, signal, }: GetNormalizedMoveModulesByPackageParams): Promise<
|
|
47
|
-
getNormalizedMoveModule({ package: pkg, module, signal, }: GetNormalizedMoveModuleParams): Promise<
|
|
48
|
-
getNormalizedMoveFunction({ package: pkg, module, function: fn, signal, }: GetNormalizedMoveFunctionParams): Promise<
|
|
49
|
-
getNormalizedMoveStruct({ package: pkg, module, struct, signal, }: GetNormalizedMoveStructParams): Promise<
|
|
45
|
+
getMoveFunctionArgTypes({ package: pkg, module, function: fn, signal, }: GetMoveFunctionArgTypesParams): Promise<WowMoveFunctionArgType[]>;
|
|
46
|
+
getNormalizedMoveModulesByPackage({ package: pkg, signal, }: GetNormalizedMoveModulesByPackageParams): Promise<WowMoveNormalizedModules>;
|
|
47
|
+
getNormalizedMoveModule({ package: pkg, module, signal, }: GetNormalizedMoveModuleParams): Promise<WowMoveNormalizedModule>;
|
|
48
|
+
getNormalizedMoveFunction({ package: pkg, module, function: fn, signal, }: GetNormalizedMoveFunctionParams): Promise<WowMoveNormalizedFunction>;
|
|
49
|
+
getNormalizedMoveStruct({ package: pkg, module, struct, signal, }: GetNormalizedMoveStructParams): Promise<WowMoveNormalizedStruct>;
|
|
50
50
|
getOwnedObjects(input: GetOwnedObjectsParams): Promise<PaginatedObjectsResponse>;
|
|
51
|
-
getObject(input: GetObjectParams): Promise<
|
|
51
|
+
getObject(input: GetObjectParams): Promise<WowObjectResponse>;
|
|
52
52
|
tryGetPastObject(input: TryGetPastObjectParams): Promise<ObjectRead>;
|
|
53
|
-
multiGetObjects(input: MultiGetObjectsParams): Promise<
|
|
53
|
+
multiGetObjects(input: MultiGetObjectsParams): Promise<WowObjectResponse[]>;
|
|
54
54
|
queryTransactionBlocks({ filter, options, cursor, limit, order, signal, }: QueryTransactionBlocksParams): Promise<PaginatedTransactionResponse>;
|
|
55
|
-
getTransactionBlock(input: GetTransactionBlockParams): Promise<
|
|
56
|
-
multiGetTransactionBlocks(input: MultiGetTransactionBlocksParams): Promise<
|
|
57
|
-
executeTransactionBlock({ transactionBlock, signature, options, requestType, signal, }: ExecuteTransactionBlockParams): Promise<
|
|
55
|
+
getTransactionBlock(input: GetTransactionBlockParams): Promise<WowTransactionBlockResponse>;
|
|
56
|
+
multiGetTransactionBlocks(input: MultiGetTransactionBlocksParams): Promise<WowTransactionBlockResponse[]>;
|
|
57
|
+
executeTransactionBlock({ transactionBlock, signature, options, requestType, signal, }: ExecuteTransactionBlockParams): Promise<WowTransactionBlockResponse>;
|
|
58
58
|
signAndExecuteTransaction({ transaction, signer, ...input }: {
|
|
59
59
|
transaction: Uint8Array | Transaction;
|
|
60
60
|
signer: Signer;
|
|
61
|
-
} & Omit<ExecuteTransactionBlockParams, "transactionBlock" | "signature">): Promise<
|
|
61
|
+
} & Omit<ExecuteTransactionBlockParams, "transactionBlock" | "signature">): Promise<WowTransactionBlockResponse>;
|
|
62
62
|
getTotalTransactionBlocks({ signal, }?: {
|
|
63
63
|
signal?: AbortSignal;
|
|
64
64
|
}): Promise<bigint>;
|
|
65
65
|
getReferenceGasPrice({ signal, }?: GetReferenceGasPriceParams): Promise<bigint>;
|
|
66
66
|
getStakes(input: GetStakesParams): Promise<DelegatedStake[]>;
|
|
67
67
|
getStakesByIds(input: GetStakesByIdsParams): Promise<DelegatedStake[]>;
|
|
68
|
-
|
|
68
|
+
getLatestWowSystemState({ signal, }?: GetLatestWowSystemStateParams): Promise<WowSystemStateSummary>;
|
|
69
69
|
queryEvents({ query, cursor, limit, order, signal, }: QueryEventsParams): Promise<PaginatedEvents>;
|
|
70
70
|
subscribeEvent(input: SubscribeEventParams & {
|
|
71
|
-
onMessage: (event:
|
|
71
|
+
onMessage: (event: WowEvent) => void;
|
|
72
72
|
}): Promise<Unsubscribe>;
|
|
73
73
|
subscribeTransaction(input: SubscribeTransactionParams & {
|
|
74
74
|
onMessage: (event: TransactionEffects) => void;
|
|
@@ -76,7 +76,7 @@ export declare class SuiJsonRpcClient extends Experimental_BaseClient {
|
|
|
76
76
|
devInspectTransactionBlock(input: DevInspectTransactionBlockParams): Promise<DevInspectResults>;
|
|
77
77
|
dryRunTransactionBlock(input: DryRunTransactionBlockParams): Promise<DryRunTransactionBlockResponse>;
|
|
78
78
|
getDynamicFields(input: GetDynamicFieldsParams): Promise<DynamicFieldPage>;
|
|
79
|
-
getDynamicFieldObject(input: GetDynamicFieldObjectParams): Promise<
|
|
79
|
+
getDynamicFieldObject(input: GetDynamicFieldObjectParams): Promise<WowObjectResponse>;
|
|
80
80
|
getLatestCheckpointSequenceNumber({ signal, }?: GetLatestCheckpointSequenceNumberParams): Promise<string>;
|
|
81
81
|
getCheckpoint(input: GetCheckpointParams): Promise<Checkpoint>;
|
|
82
82
|
getCheckpoints(input: PaginationArguments<CheckpointPage["nextCursor"]> & GetCheckpointsParams): Promise<CheckpointPage>;
|
|
@@ -116,6 +116,6 @@ export declare class SuiJsonRpcClient extends Experimental_BaseClient {
|
|
|
116
116
|
signal?: AbortSignal;
|
|
117
117
|
timeout?: number;
|
|
118
118
|
pollInterval?: number;
|
|
119
|
-
} & Parameters<
|
|
119
|
+
} & Parameters<WowJsonRpcClient["getTransactionBlock"]>[0]): Promise<WowTransactionBlockResponse>;
|
|
120
120
|
}
|
|
121
121
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fromBase58,toBase64,toHex}from'../_deps/bcs/index.js';import{Experimental_BaseClient}from'../experimental/client.js';import{isTransaction}from'../transactions/Transaction.js';import{isValidWowAddress,isValidWowObjectId,isValidTransactionDigest,normalizeWowAddress,normalizeWowObjectId}from'../utils/sui-types.js';import{JsonRpcHTTPTransport}from'./http-transport.js';import{JSONRpcCoreClient}from'./core.js';const SUI_CLIENT_BRAND=Symbol['for']('@mysten/SuiClient');export function isSuiJsonRpcClient(a){return typeof a==='object'&&a!==null&&a[SUI_CLIENT_BRAND]===!![];}export class SuiJsonRpcClient extends Experimental_BaseClient{['core'];['jsonRpc']=this;['transport'];get[SUI_CLIENT_BRAND](){return!![];}constructor(a){super({'network':a['network']??'unknown'}),this['transport']=a['transport']??new JsonRpcHTTPTransport({'url':a['url']}),this['core']=new JSONRpcCoreClient({'jsonRpcClient':this});}async['getRpcApiVersion']({signal:a}={}){const b=await this['transport']['request']({'method':'rpc.discover','params':[],'signal':a});return b['info']['version'];}async['getCoins']({coinType:a,owner:b,cursor:c,limit:d,signal:e}){if(!b||!isValidWowAddress(normalizeWowAddress(b)))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getCoins','params':[b,a,c,d],'signal':e});}async['getAllCoins'](a){if(!a['owner']||!isValidWowAddress(normalizeWowAddress(a['owner'])))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getAllCoins','params':[a['owner'],a['cursor'],a['limit']],'signal':a['signal']});}async['getBalance']({owner:a,coinType:b,signal:c}){if(!a||!isValidWowAddress(normalizeWowAddress(a)))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getBalance','params':[a,b],'signal':c});}async['getAllBalances'](a){if(!a['owner']||!isValidWowAddress(normalizeWowAddress(a['owner'])))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getAllBalances','params':[a['owner']],'signal':a['signal']});}async['getCoinMetadata']({coinType:a,signal:b}){return await this['transport']['request']({'method':'wx_getCoinMetadata','params':[a],'signal':b});}async['getTotalSupply']({coinType:a,signal:b}){return await this['transport']['request']({'method':'wx_getTotalSupply','params':[a],'signal':b});}async['call'](a,b,{signal:c}={}){return await this['transport']['request']({'method':a,'params':b,'signal':c});}async['getMoveFunctionArgTypes']({package:a,module:b,function:c,signal:d}){return await this['transport']['request']({'method':'w_getMoveFunctionArgTypes','params':[a,b,c],'signal':d});}async['getNormalizedMoveModulesByPackage']({package:a,signal:b}){return await this['transport']['request']({'method':'w_getNormalizedMoveModulesByPackage','params':[a],'signal':b});}async['getNormalizedMoveModule']({package:a,module:b,signal:c}){return await this['transport']['request']({'method':'w_getNormalizedMoveModule','params':[a,b],'signal':c});}async['getNormalizedMoveFunction']({package:a,module:b,function:c,signal:d}){return await this['transport']['request']({'method':'w_getNormalizedMoveFunction','params':[a,b,c],'signal':d});}async['getNormalizedMoveStruct']({package:a,module:b,struct:c,signal:d}){return await this['transport']['request']({'method':'w_getNormalizedMoveStruct','params':[a,b,c],'signal':d});}async['getOwnedObjects'](a){if(!a['owner']||!isValidWowAddress(normalizeWowAddress(a['owner'])))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getOwnedObjects','params':[a['owner'],{'filter':a['filter'],'options':a['options']},a['cursor'],a['limit']],'signal':a['signal']});}async['getObject'](a){if(!a['id']||!isValidWowObjectId(normalizeWowObjectId(a['id'])))throw new Error('Invalid\x20object\x20ID');return await this['transport']['request']({'method':'w_getObject','params':[a['id'],a['options']],'signal':a['signal']});}async['tryGetPastObject'](a){return await this['transport']['request']({'method':'w_tryGetPastObject','params':[a['id'],a['version'],a['options']],'signal':a['signal']});}async['multiGetObjects'](a){a['ids']['forEach'](c=>{if(!c||!isValidWowObjectId(normalizeWowObjectId(c)))throw new Error('Invalid\x20object\x20ID\x20'+c);});const b=a['ids']['length']!==new Set(a['ids'])['size'];if(b)throw new Error('Duplicate\x20object\x20ids\x20in\x20batch\x20call\x20'+a['ids']);return await this['transport']['request']({'method':'w_multiGetObjects','params':[a['ids'],a['options']],'signal':a['signal']});}async['queryTransactionBlocks']({filter:a,options:b,cursor:c,limit:d,order:e,signal:f}){return await this['transport']['request']({'method':'wx_queryTransactionBlocks','params':[{'filter':a,'options':b},c,d,(e||'descending')==='descending'],'signal':f});}async['getTransactionBlock'](a){if(!isValidTransactionDigest(a['digest']))throw new Error('Invalid\x20Transaction\x20digest');return await this['transport']['request']({'method':'w_getTransactionBlock','params':[a['digest'],a['options']],'signal':a['signal']});}async['multiGetTransactionBlocks'](a){a['digests']['forEach'](c=>{if(!isValidTransactionDigest(c))throw new Error('Invalid\x20Transaction\x20digest\x20'+c);});const b=a['digests']['length']!==new Set(a['digests'])['size'];if(b)throw new Error('Duplicate\x20digests\x20in\x20batch\x20call\x20'+a['digests']);return await this['transport']['request']({'method':'w_multiGetTransactionBlocks','params':[a['digests'],a['options']],'signal':a['signal']});}async['executeTransactionBlock']({transactionBlock:a,signature:b,options:c,requestType:d,signal:f}){const g=await this['transport']['request']({'method':'w_executeTransactionBlock','params':[typeof a==='string'?a:toBase64(a),Array['isArray'](b)?b:[b],c],'signal':f});if(d==='WaitForLocalExecution')try{await this['waitForTransaction']({'digest':g['digest'],'signal':f});}catch(h){}return g;}async['signAndExecuteTransaction']({transaction:a,signer:b,...c}){let d;a instanceof Uint8Array?d=a:(a['setSenderIfNotSet'](b['toWAddress']()),d=await a['build']({'client':this}));const {signature:e,bytes:f}=await b['signTransaction'](d);return this['executeTransactionBlock']({'transactionBlock':f,'signature':e,...c});}async['getTotalTransactionBlocks']({signal:a}={}){const b=await this['transport']['request']({'method':'w_getTotalTransactionBlocks','params':[],'signal':a});return BigInt(b);}async['getReferenceGasPrice']({signal:a}={}){const b=await this['transport']['request']({'method':'wx_getReferenceGasPrice','params':[],'signal':a});return BigInt(b);}async['getStakes'](a){if(!a['owner']||!isValidWowAddress(normalizeWowAddress(a['owner'])))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getStakes','params':[a['owner']],'signal':a['signal']});}async['getStakesByIds'](a){return a['stakedSuiIds']['forEach'](b=>{if(!b||!isValidWowObjectId(normalizeWowObjectId(b)))throw new Error('Invalid\x20Wow\x20Stake\x20id\x20'+b);}),await this['transport']['request']({'method':'wx_getStakesByIds','params':[a['stakedSuiIds']],'signal':a['signal']});}async['getLatestSuiSystemState']({signal:a}={}){return await this['transport']['request']({'method':'wx_getLatestSuiSystemState','params':[],'signal':a});}async['queryEvents']({query:a,cursor:b,limit:c,order:d,signal:e}){return await this['transport']['request']({'method':'wx_queryEvents','params':[a,b,c,(d||'descending')==='descending'],'signal':e});}async['subscribeEvent'](a){return this['transport']['subscribe']({'method':'wx_subscribeEvent','unsubscribe':'wx_unsubscribeEvent','params':[a['filter']],'onMessage':a['onMessage'],'signal':a['signal']});}async['subscribeTransaction'](a){return this['transport']['subscribe']({'method':'wx_subscribeTransaction','unsubscribe':'wx_unsubscribeTransaction','params':[a['filter']],'onMessage':a['onMessage'],'signal':a['signal']});}async['devInspectTransactionBlock'](a){let b;if(isTransaction(a['transactionBlock']))a['transactionBlock']['setSenderIfNotSet'](a['sender']),b=toBase64(await a['transactionBlock']['build']({'client':this,'onlyTransactionKind':!![]}));else{if(typeof a['transactionBlock']==='string')b=a['transactionBlock'];else{if(a['transactionBlock']instanceof Uint8Array)b=toBase64(a['transactionBlock']);else throw new Error('Unknown\x20transaction\x20block\x20format.');}}return a['signal']?.['throwIfAborted'](),await this['transport']['request']({'method':'w_devInspectTransactionBlock','params':[a['sender'],b,a['gasPrice']?.['toString'](),a['epoch']],'signal':a['signal']});}async['dryRunTransactionBlock'](a){return await this['transport']['request']({'method':'w_dryRunTransactionBlock','params':[typeof a['transactionBlock']==='string'?a['transactionBlock']:toBase64(a['transactionBlock'])]});}async['getDynamicFields'](a){if(!a['parentId']||!isValidWowObjectId(normalizeWowObjectId(a['parentId'])))throw new Error('Invalid\x20Sui\x20Object\x20id');return await this['transport']['request']({'method':'wx_getDynamicFields','params':[a['parentId'],a['cursor'],a['limit']],'signal':a['signal']});}async['getDynamicFieldObject'](a){return await this['transport']['request']({'method':'wx_getDynamicFieldObject','params':[a['parentId'],a['name']],'signal':a['signal']});}async['getLatestCheckpointSequenceNumber']({signal:a}={}){const b=await this['transport']['request']({'method':'w_getLatestCheckpointSequenceNumber','params':[],'signal':a});return String(b);}async['getCheckpoint'](a){return await this['transport']['request']({'method':'w_getCheckpoint','params':[a['id']],'signal':a['signal']});}async['getCheckpoints'](a){return await this['transport']['request']({'method':'w_getCheckpoints','params':[a['cursor'],a?.['limit'],a['descendingOrder']],'signal':a['signal']});}async['getCommitteeInfo'](a){return await this['transport']['request']({'method':'wx_getCommitteeInfo','params':[a?.['epoch']],'signal':a?.['signal']});}async['getNetworkMetrics']({signal:a}={}){return await this['transport']['request']({'method':'wx_getNetworkMetrics','params':[],'signal':a});}async['getAddressMetrics']({signal:a}={}){return await this['transport']['request']({'method':'wx_getLatestAddressMetrics','params':[],'signal':a});}async['getEpochMetrics'](a){return await this['transport']['request']({'method':'wx_getEpochMetrics','params':[a?.['cursor'],a?.['limit'],a?.['descendingOrder']],'signal':a?.['signal']});}async['getAllEpochAddressMetrics'](a){return await this['transport']['request']({'method':'wx_getAllEpochAddressMetrics','params':[a?.['descendingOrder']],'signal':a?.['signal']});}async['getEpochs'](a){return await this['transport']['request']({'method':'wx_getEpochs','params':[a?.['cursor'],a?.['limit'],a?.['descendingOrder']],'signal':a?.['signal']});}async['getMoveCallMetrics']({signal:a}={}){return await this['transport']['request']({'method':'wx_getMoveCallMetrics','params':[],'signal':a});}async['getCurrentEpoch']({signal:a}={}){return await this['transport']['request']({'method':'wx_getCurrentEpoch','params':[],'signal':a});}async['getValidatorsApy']({signal:a}={}){return await this['transport']['request']({'method':'wx_getValidatorsApy','params':[],'signal':a});}async['getChainIdentifier']({signal:a}={}){const b=await this['getCheckpoint']({'id':'0','signal':a}),c=fromBase58(b['digest']);return toHex(c['slice'](0x0,0x4));}async['getProtocolConfig'](a){return await this['transport']['request']({'method':'w_getProtocolConfig','params':[a?.['version']],'signal':a?.['signal']});}async['waitForTransaction']({signal:a,timeout:timeout=0x3c*0x3e8,pollInterval:pollInterval=0x2*0x3e8,...b}){const c=AbortSignal['timeout'](timeout),d=new Promise((e,f)=>{c['addEventListener']('abort',()=>f(c['reason']));});d['catch'](()=>{});while(!c['aborted']){a?.['throwIfAborted']();try{return await this['getTransactionBlock'](b);}catch{await Promise['race']([new Promise(e=>setTimeout(e,pollInterval)),d]);}}c['throwIfAborted']();throw new Error('Unexpected\x20error\x20while\x20waiting\x20for\x20transaction\x20block.');}}
|
|
1
|
+
import{fromBase58,toBase64,toHex}from'../_deps/bcs/index.js';import{Experimental_BaseClient}from'../experimental/client.js';import{isTransaction}from'../transactions/Transaction.js';import{isValidWowAddress,isValidWowObjectId,isValidTransactionDigest,normalizeWowAddress,normalizeWowObjectId}from'../utils/wow-types.js';import{JsonRpcHTTPTransport}from'./http-transport.js';import{JSONRpcCoreClient}from'./core.js';const WOW_CLIENT_BRAND=Symbol['for']('https://wowok.net@WowClient');export function isWowJsonRpcClient(a){return typeof a==='object'&&a!==null&&a[WOW_CLIENT_BRAND]===!![];}export class WowJsonRpcClient extends Experimental_BaseClient{['core'];['jsonRpc']=this;['transport'];get[WOW_CLIENT_BRAND](){return!![];}constructor(a){super({'network':a['network']??'unknown'}),this['transport']=a['transport']??new JsonRpcHTTPTransport({'url':a['url']}),this['core']=new JSONRpcCoreClient({'jsonRpcClient':this});}async['getRpcApiVersion']({signal:a}={}){const b=await this['transport']['request']({'method':'rpc.discover','params':[],'signal':a});return b['info']['version'];}async['getCoins']({coinType:a,owner:b,cursor:c,limit:d,signal:e}){if(!b||!isValidWowAddress(normalizeWowAddress(b)))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getCoins','params':[b,a,c,d],'signal':e});}async['getAllCoins'](a){if(!a['owner']||!isValidWowAddress(normalizeWowAddress(a['owner'])))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getAllCoins','params':[a['owner'],a['cursor'],a['limit']],'signal':a['signal']});}async['getBalance']({owner:a,coinType:b,signal:c}){if(!a||!isValidWowAddress(normalizeWowAddress(a)))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getBalance','params':[a,b],'signal':c});}async['getAllBalances'](a){if(!a['owner']||!isValidWowAddress(normalizeWowAddress(a['owner'])))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getAllBalances','params':[a['owner']],'signal':a['signal']});}async['getCoinMetadata']({coinType:a,signal:b}){return await this['transport']['request']({'method':'wx_getCoinMetadata','params':[a],'signal':b});}async['getTotalSupply']({coinType:a,signal:b}){return await this['transport']['request']({'method':'wx_getTotalSupply','params':[a],'signal':b});}async['call'](a,b,{signal:c}={}){return await this['transport']['request']({'method':a,'params':b,'signal':c});}async['getMoveFunctionArgTypes']({package:a,module:b,function:c,signal:d}){return await this['transport']['request']({'method':'w_getMoveFunctionArgTypes','params':[a,b,c],'signal':d});}async['getNormalizedMoveModulesByPackage']({package:a,signal:b}){return await this['transport']['request']({'method':'w_getNormalizedMoveModulesByPackage','params':[a],'signal':b});}async['getNormalizedMoveModule']({package:a,module:b,signal:c}){return await this['transport']['request']({'method':'w_getNormalizedMoveModule','params':[a,b],'signal':c});}async['getNormalizedMoveFunction']({package:a,module:b,function:c,signal:d}){return await this['transport']['request']({'method':'w_getNormalizedMoveFunction','params':[a,b,c],'signal':d});}async['getNormalizedMoveStruct']({package:a,module:b,struct:c,signal:d}){return await this['transport']['request']({'method':'w_getNormalizedMoveStruct','params':[a,b,c],'signal':d});}async['getOwnedObjects'](a){if(!a['owner']||!isValidWowAddress(normalizeWowAddress(a['owner'])))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getOwnedObjects','params':[a['owner'],{'filter':a['filter'],'options':a['options']},a['cursor'],a['limit']],'signal':a['signal']});}async['getObject'](a){if(!a['id']||!isValidWowObjectId(normalizeWowObjectId(a['id'])))throw new Error('Invalid\x20object\x20ID');return await this['transport']['request']({'method':'w_getObject','params':[a['id'],a['options']],'signal':a['signal']});}async['tryGetPastObject'](a){return await this['transport']['request']({'method':'w_tryGetPastObject','params':[a['id'],a['version'],a['options']],'signal':a['signal']});}async['multiGetObjects'](a){a['ids']['forEach'](c=>{if(!c||!isValidWowObjectId(normalizeWowObjectId(c)))throw new Error('Invalid\x20object\x20ID\x20'+c);});const b=a['ids']['length']!==new Set(a['ids'])['size'];if(b)throw new Error('Duplicate\x20object\x20ids\x20in\x20batch\x20call\x20'+a['ids']);return await this['transport']['request']({'method':'w_multiGetObjects','params':[a['ids'],a['options']],'signal':a['signal']});}async['queryTransactionBlocks']({filter:a,options:b,cursor:c,limit:d,order:e,signal:f}){return await this['transport']['request']({'method':'wx_queryTransactionBlocks','params':[{'filter':a,'options':b},c,d,(e||'descending')==='descending'],'signal':f});}async['getTransactionBlock'](a){if(!isValidTransactionDigest(a['digest']))throw new Error('Invalid\x20Transaction\x20digest');return await this['transport']['request']({'method':'w_getTransactionBlock','params':[a['digest'],a['options']],'signal':a['signal']});}async['multiGetTransactionBlocks'](a){a['digests']['forEach'](c=>{if(!isValidTransactionDigest(c))throw new Error('Invalid\x20Transaction\x20digest\x20'+c);});const b=a['digests']['length']!==new Set(a['digests'])['size'];if(b)throw new Error('Duplicate\x20digests\x20in\x20batch\x20call\x20'+a['digests']);return await this['transport']['request']({'method':'w_multiGetTransactionBlocks','params':[a['digests'],a['options']],'signal':a['signal']});}async['executeTransactionBlock']({transactionBlock:a,signature:b,options:c,requestType:d,signal:f}){const g=await this['transport']['request']({'method':'w_executeTransactionBlock','params':[typeof a==='string'?a:toBase64(a),Array['isArray'](b)?b:[b],c],'signal':f});if(d==='WaitForLocalExecution')try{await this['waitForTransaction']({'digest':g['digest'],'signal':f});}catch(h){}return g;}async['signAndExecuteTransaction']({transaction:a,signer:b,...c}){let d;a instanceof Uint8Array?d=a:(a['setSenderIfNotSet'](b['toWAddress']()),d=await a['build']({'client':this}));const {signature:e,bytes:f}=await b['signTransaction'](d);return this['executeTransactionBlock']({'transactionBlock':f,'signature':e,...c});}async['getTotalTransactionBlocks']({signal:a}={}){const b=await this['transport']['request']({'method':'w_getTotalTransactionBlocks','params':[],'signal':a});return BigInt(b);}async['getReferenceGasPrice']({signal:a}={}){const b=await this['transport']['request']({'method':'wx_getReferenceGasPrice','params':[],'signal':a});return BigInt(b);}async['getStakes'](a){if(!a['owner']||!isValidWowAddress(normalizeWowAddress(a['owner'])))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getStakes','params':[a['owner']],'signal':a['signal']});}async['getStakesByIds'](a){return a['stakedWowIds']['forEach'](b=>{if(!b||!isValidWowObjectId(normalizeWowObjectId(b)))throw new Error('Invalid\x20Wow\x20Stake\x20id\x20'+b);}),await this['transport']['request']({'method':'wx_getStakesByIds','params':[a['stakedWowIds']],'signal':a['signal']});}async['getLatestWowSystemState']({signal:a}={}){return await this['transport']['request']({'method':'wx_getLatestWowSystemState','params':[],'signal':a});}async['queryEvents']({query:a,cursor:b,limit:c,order:d,signal:e}){return await this['transport']['request']({'method':'wx_queryEvents','params':[a,b,c,(d||'descending')==='descending'],'signal':e});}async['subscribeEvent'](a){return this['transport']['subscribe']({'method':'wx_subscribeEvent','unsubscribe':'wx_unsubscribeEvent','params':[a['filter']],'onMessage':a['onMessage'],'signal':a['signal']});}async['subscribeTransaction'](a){return this['transport']['subscribe']({'method':'wx_subscribeTransaction','unsubscribe':'wx_unsubscribeTransaction','params':[a['filter']],'onMessage':a['onMessage'],'signal':a['signal']});}async['devInspectTransactionBlock'](a){let b;if(isTransaction(a['transactionBlock']))a['transactionBlock']['setSenderIfNotSet'](a['sender']),b=toBase64(await a['transactionBlock']['build']({'client':this,'onlyTransactionKind':!![]}));else{if(typeof a['transactionBlock']==='string')b=a['transactionBlock'];else{if(a['transactionBlock']instanceof Uint8Array)b=toBase64(a['transactionBlock']);else throw new Error('Unknown\x20transaction\x20block\x20format.');}}return a['signal']?.['throwIfAborted'](),await this['transport']['request']({'method':'w_devInspectTransactionBlock','params':[a['sender'],b,a['gasPrice']?.['toString'](),a['epoch']],'signal':a['signal']});}async['dryRunTransactionBlock'](a){return await this['transport']['request']({'method':'w_dryRunTransactionBlock','params':[typeof a['transactionBlock']==='string'?a['transactionBlock']:toBase64(a['transactionBlock'])]});}async['getDynamicFields'](a){if(!a['parentId']||!isValidWowObjectId(normalizeWowObjectId(a['parentId'])))throw new Error('Invalid\x20WOW\x20Object\x20id');return await this['transport']['request']({'method':'wx_getDynamicFields','params':[a['parentId'],a['cursor'],a['limit']],'signal':a['signal']});}async['getDynamicFieldObject'](a){return await this['transport']['request']({'method':'wx_getDynamicFieldObject','params':[a['parentId'],a['name']],'signal':a['signal']});}async['getLatestCheckpointSequenceNumber']({signal:a}={}){const b=await this['transport']['request']({'method':'w_getLatestCheckpointSequenceNumber','params':[],'signal':a});return String(b);}async['getCheckpoint'](a){return await this['transport']['request']({'method':'w_getCheckpoint','params':[a['id']],'signal':a['signal']});}async['getCheckpoints'](a){return await this['transport']['request']({'method':'w_getCheckpoints','params':[a['cursor'],a?.['limit'],a['descendingOrder']],'signal':a['signal']});}async['getCommitteeInfo'](a){return await this['transport']['request']({'method':'wx_getCommitteeInfo','params':[a?.['epoch']],'signal':a?.['signal']});}async['getNetworkMetrics']({signal:a}={}){return await this['transport']['request']({'method':'wx_getNetworkMetrics','params':[],'signal':a});}async['getAddressMetrics']({signal:a}={}){return await this['transport']['request']({'method':'wx_getLatestAddressMetrics','params':[],'signal':a});}async['getEpochMetrics'](a){return await this['transport']['request']({'method':'wx_getEpochMetrics','params':[a?.['cursor'],a?.['limit'],a?.['descendingOrder']],'signal':a?.['signal']});}async['getAllEpochAddressMetrics'](a){return await this['transport']['request']({'method':'wx_getAllEpochAddressMetrics','params':[a?.['descendingOrder']],'signal':a?.['signal']});}async['getEpochs'](a){return await this['transport']['request']({'method':'wx_getEpochs','params':[a?.['cursor'],a?.['limit'],a?.['descendingOrder']],'signal':a?.['signal']});}async['getMoveCallMetrics']({signal:a}={}){return await this['transport']['request']({'method':'wx_getMoveCallMetrics','params':[],'signal':a});}async['getCurrentEpoch']({signal:a}={}){return await this['transport']['request']({'method':'wx_getCurrentEpoch','params':[],'signal':a});}async['getValidatorsApy']({signal:a}={}){return await this['transport']['request']({'method':'wx_getValidatorsApy','params':[],'signal':a});}async['getChainIdentifier']({signal:a}={}){const b=await this['getCheckpoint']({'id':'0','signal':a}),c=fromBase58(b['digest']);return toHex(c['slice'](0x0,0x4));}async['getProtocolConfig'](a){return await this['transport']['request']({'method':'w_getProtocolConfig','params':[a?.['version']],'signal':a?.['signal']});}async['waitForTransaction']({signal:a,timeout:timeout=0x3c*0x3e8,pollInterval:pollInterval=0x2*0x3e8,...b}){const c=AbortSignal['timeout'](timeout),d=new Promise((e,f)=>{c['addEventListener']('abort',()=>f(c['reason']));});d['catch'](()=>{});while(!c['aborted']){a?.['throwIfAborted']();try{return await this['getTransactionBlock'](b);}catch{await Promise['race']([new Promise(e=>setTimeout(e,pollInterval)),d]);}}c['throwIfAborted']();throw new Error('Unexpected\x20error\x20while\x20waiting\x20for\x20transaction\x20block.');}}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { TransactionDataBuilder } from "../transactions/TransactionData.js";
|
|
2
2
|
import { Experimental_CoreClient } from "../experimental/core.js";
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
3
|
+
import type { Experimental_WowClientTypes } from "../experimental/types.js";
|
|
4
|
+
import type { WowJsonRpcClient } from "./client.js";
|
|
5
5
|
export declare class JSONRpcCoreClient extends Experimental_CoreClient {
|
|
6
6
|
#private;
|
|
7
7
|
constructor({ jsonRpcClient }: {
|
|
8
|
-
jsonRpcClient:
|
|
8
|
+
jsonRpcClient: WowJsonRpcClient;
|
|
9
9
|
});
|
|
10
|
-
getObjects(options:
|
|
11
|
-
objects: (Error |
|
|
10
|
+
getObjects(options: Experimental_WowClientTypes.GetObjectsOptions): Promise<{
|
|
11
|
+
objects: (Error | Experimental_WowClientTypes.ObjectResponse)[];
|
|
12
12
|
}>;
|
|
13
|
-
getOwnedObjects(options:
|
|
14
|
-
objects:
|
|
13
|
+
getOwnedObjects(options: Experimental_WowClientTypes.GetOwnedObjectsOptions): Promise<{
|
|
14
|
+
objects: Experimental_WowClientTypes.ObjectResponse[];
|
|
15
15
|
hasNextPage: boolean;
|
|
16
16
|
cursor: string;
|
|
17
17
|
}>;
|
|
18
|
-
getCoins(options:
|
|
18
|
+
getCoins(options: Experimental_WowClientTypes.GetCoinsOptions): Promise<{
|
|
19
19
|
objects: {
|
|
20
20
|
id: string;
|
|
21
21
|
version: string;
|
|
@@ -32,13 +32,13 @@ export declare class JSONRpcCoreClient extends Experimental_CoreClient {
|
|
|
32
32
|
hasNextPage: boolean;
|
|
33
33
|
cursor: string;
|
|
34
34
|
}>;
|
|
35
|
-
getBalance(options:
|
|
35
|
+
getBalance(options: Experimental_WowClientTypes.GetBalanceOptions): Promise<{
|
|
36
36
|
balance: {
|
|
37
37
|
coinType: string;
|
|
38
38
|
balance: string;
|
|
39
39
|
};
|
|
40
40
|
}>;
|
|
41
|
-
getAllBalances(options:
|
|
41
|
+
getAllBalances(options: Experimental_WowClientTypes.GetAllBalancesOptions): Promise<{
|
|
42
42
|
balances: {
|
|
43
43
|
coinType: string;
|
|
44
44
|
balance: string;
|
|
@@ -46,20 +46,20 @@ export declare class JSONRpcCoreClient extends Experimental_CoreClient {
|
|
|
46
46
|
hasNextPage: boolean;
|
|
47
47
|
cursor: any;
|
|
48
48
|
}>;
|
|
49
|
-
getTransaction(options:
|
|
50
|
-
transaction:
|
|
49
|
+
getTransaction(options: Experimental_WowClientTypes.GetTransactionOptions): Promise<{
|
|
50
|
+
transaction: Experimental_WowClientTypes.TransactionResponse;
|
|
51
51
|
}>;
|
|
52
|
-
executeTransaction(options:
|
|
53
|
-
transaction:
|
|
52
|
+
executeTransaction(options: Experimental_WowClientTypes.ExecuteTransactionOptions): Promise<{
|
|
53
|
+
transaction: Experimental_WowClientTypes.TransactionResponse;
|
|
54
54
|
}>;
|
|
55
|
-
dryRunTransaction(options:
|
|
55
|
+
dryRunTransaction(options: Experimental_WowClientTypes.DryRunTransactionOptions): Promise<{
|
|
56
56
|
transaction: {
|
|
57
57
|
digest: string;
|
|
58
58
|
epoch: any;
|
|
59
|
-
effects:
|
|
59
|
+
effects: Experimental_WowClientTypes.TransactionEffects;
|
|
60
60
|
objectTypes: Promise<Record<string, string>>;
|
|
61
61
|
signatures: any[];
|
|
62
|
-
transaction:
|
|
62
|
+
transaction: Experimental_WowClientTypes.TransactionData;
|
|
63
63
|
balanceChanges: {
|
|
64
64
|
coinType: string;
|
|
65
65
|
address: string;
|
|
@@ -67,10 +67,10 @@ export declare class JSONRpcCoreClient extends Experimental_CoreClient {
|
|
|
67
67
|
}[];
|
|
68
68
|
};
|
|
69
69
|
}>;
|
|
70
|
-
getReferenceGasPrice(options?:
|
|
70
|
+
getReferenceGasPrice(options?: Experimental_WowClientTypes.GetReferenceGasPriceOptions): Promise<{
|
|
71
71
|
referenceGasPrice: string;
|
|
72
72
|
}>;
|
|
73
|
-
getDynamicFields(options:
|
|
73
|
+
getDynamicFields(options: Experimental_WowClientTypes.GetDynamicFieldsOptions): Promise<{
|
|
74
74
|
dynamicFields: {
|
|
75
75
|
id: string;
|
|
76
76
|
type: string;
|
|
@@ -83,5 +83,5 @@ export declare class JSONRpcCoreClient extends Experimental_CoreClient {
|
|
|
83
83
|
cursor: string;
|
|
84
84
|
}>;
|
|
85
85
|
resolveTransactionPlugin(): (transactionData: TransactionDataBuilder, options: import("../index.js").BuildTransactionOptions, next: () => Promise<void>) => Promise<void>;
|
|
86
|
-
getMoveFunction(options:
|
|
86
|
+
getMoveFunction(options: Experimental_WowClientTypes.GetMoveFunctionOptions): Promise<Experimental_WowClientTypes.GetMoveFunctionResponse>;
|
|
87
87
|
}
|
package/dist/cjs/jsonRpc/core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fromBase64}from'../_deps/bcs/index.js';import{bcs}from'../bcs/index.js';import{Transaction}from'../transactions/Transaction.js';import{jsonRpcClientResolveTransactionPlugin}from'./json-rpc-resolver.js';import{TransactionDataBuilder}from'../transactions/TransactionData.js';import{chunk}from'../_deps/utils/index.js';import{normalizeWowAddress}from'../utils/sui-types.js';import{Experimental_CoreClient}from'../experimental/core.js';import{ObjectError}from'../experimental/errors.js';import{parseTransactionBcs,parseTransactionEffectsBcs}from'../experimental/index.js';export class JSONRpcCoreClient extends Experimental_CoreClient{#jsonRpcClient;constructor({jsonRpcClient:a}){super({'network':a['network'],'base':a}),this.#jsonRpcClient=a;}async['getObjects'](a){const b=chunk(a['objectIds'],0x32),c=[];for(const d of b){const e=await this.#jsonRpcClient['multiGetObjects']({'ids':d,'options':{'showOwner':!![],'showType':!![],'showBcs':!![],'showPreviousTransaction':!![]},'signal':a['signal']});for(const [f,g]of e['entries']()){g['error']?c['push'](ObjectError['fromResponse'](g['error'],d[f])):c['push'](parseObject(g['data']));}}return{'objects':c};}async['getOwnedObjects'](a){const b=await this.#jsonRpcClient['getOwnedObjects']({'owner':a['address'],'limit':a['limit'],'cursor':a['cursor'],'options':{'showOwner':!![],'showType':!![],'showBcs':!![],'showPreviousTransaction':!![]},'filter':a['type']?{'StructType':a['type']}:null,'signal':a['signal']});return{'objects':b['data']['map'](c=>{if(c['error'])throw ObjectError['fromResponse'](c['error']);return parseObject(c['data']);}),'hasNextPage':b['hasNextPage'],'cursor':b['nextCursor']??null};}async['getCoins'](a){const b=await this.#jsonRpcClient['getCoins']({'owner':a['address'],'coinType':a['coinType'],'limit':a['limit'],'cursor':a['cursor'],'signal':a['signal']});return{'objects':b['data']['map'](c=>{return{'id':c['coinObjectId'],'version':c['version'],'digest':c['digest'],'balance':c['balance'],'type':'0x2::coin::Coin<'+c['coinType']+'>','content':Promise['resolve'](Coin['serialize']({'id':c['coinObjectId'],'balance':{'value':c['balance']}})['toBytes']()),'owner':{'$kind':'ObjectOwner','ObjectOwner':a['address']},'previousTransaction':c['previousTransaction']};}),'hasNextPage':b['hasNextPage'],'cursor':b['nextCursor']??null};}async['getBalance'](a){const b=await this.#jsonRpcClient['getBalance']({'owner':a['address'],'coinType':a['coinType'],'signal':a['signal']});return{'balance':{'coinType':b['coinType'],'balance':b['totalBalance']}};}async['getAllBalances'](a){const b=await this.#jsonRpcClient['getAllBalances']({'owner':a['address'],'signal':a['signal']});return{'balances':b['map'](c=>({'coinType':c['coinType'],'balance':c['totalBalance']})),'hasNextPage':![],'cursor':null};}async['getTransaction'](a){const b=await this.#jsonRpcClient['getTransactionBlock']({'digest':a['digest'],'options':{'showRawInput':!![],'showObjectChanges':!![],'showRawEffects':!![],'showEvents':!![],'showEffects':!![],'showBalanceChanges':!![]},'signal':a['signal']});return{'transaction':parseTransaction(b)};}async['executeTransaction'](a){const b=await this.#jsonRpcClient['executeTransactionBlock']({'transactionBlock':a['transaction'],'signature':a['signatures'],'options':{'showRawEffects':!![],'showEvents':!![],'showObjectChanges':!![],'showRawInput':!![],'showEffects':!![],'showBalanceChanges':!![]},'signal':a['signal']});return{'transaction':parseTransaction(b)};}async['dryRunTransaction'](a){const b=Transaction['from'](a['transaction']),c=await this.#jsonRpcClient['dryRunTransactionBlock']({'transactionBlock':a['transaction'],'signal':a['signal']}),{effects:d,objectTypes:e}=parseTransactionEffectsJson({'effects':c['effects'],'objectChanges':c['objectChanges']});return{'transaction':{'digest':await b['getDigest'](),'epoch':null,'effects':d,'objectTypes':Promise['resolve'](e),'signatures':[],'transaction':parseTransactionBcs(a['transaction']),'balanceChanges':c['balanceChanges']['map'](f=>({'coinType':f['coinType'],'address':parseOwnerAddress(f['owner']),'amount':f['amount']}))}};}async['getReferenceGasPrice'](a){const b=await this.#jsonRpcClient['getReferenceGasPrice']({'signal':a?.['signal']});return{'referenceGasPrice':String(b)};}async['getDynamicFields'](a){const b=await this.#jsonRpcClient['getDynamicFields']({'parentId':a['parentId'],'limit':a['limit'],'cursor':a['cursor']});return{'dynamicFields':b['data']['map'](c=>{return{'id':c['objectId'],'type':c['objectType'],'name':{'type':c['name']['type'],'bcs':fromBase64(c['bcsName'])}};}),'hasNextPage':b['hasNextPage'],'cursor':b['nextCursor']};}['resolveTransactionPlugin'](){return jsonRpcClientResolveTransactionPlugin(this.#jsonRpcClient);}async['getMoveFunction'](a){const b=await this.#jsonRpcClient['getNormalizedMoveFunction']({'package':a['packageId'],'module':a['moduleName'],'function':a['name']});return{'function':{'packageId':normalizeWowAddress(a['packageId']),'moduleName':a['moduleName'],'name':a['name'],'visibility':parseVisibility(b['visibility']),'isEntry':b['isEntry'],'typeParameters':b['typeParameters']['map'](c=>({'isPhantom':![],'constraints':parseAbilities(c)})),'parameters':b['parameters']['map'](c=>parseNormalizedSuiMoveType(c)),'returns':b['return']['map'](c=>parseNormalizedSuiMoveType(c))}};}}function parseObject(a){return{'id':a['objectId'],'version':a['version'],'digest':a['digest'],'type':a['type'],'content':Promise['resolve'](a['bcs']?.['dataType']==='moveObject'?fromBase64(a['bcs']['bcsBytes']):new Uint8Array()),'owner':parseOwner(a['owner']),'previousTransaction':a['previousTransaction']??null};}function parseOwner(a){if(a==='Immutable')return{'$kind':'Immutable','Immutable':!![]};if('ConsensusAddressOwner'in a)return{'$kind':'ConsensusAddressOwner','ConsensusAddressOwner':{'owner':a['ConsensusAddressOwner']['owner'],'startVersion':a['ConsensusAddressOwner']['start_version']}};if('AddressOwner'in a)return{'$kind':'AddressOwner','AddressOwner':a['AddressOwner']};if('ObjectOwner'in a)return{'$kind':'ObjectOwner','ObjectOwner':a['ObjectOwner']};if('Shared'in a)return{'$kind':'Shared','Shared':{'initialSharedVersion':a['Shared']['initial_shared_version']}};throw new Error('Unknown\x20owner\x20type:\x20'+JSON['stringify'](a));}function parseOwnerAddress(a){if(a==='Immutable')return null;if('ConsensusAddressOwner'in a)return a['ConsensusAddressOwner']['owner'];if('AddressOwner'in a)return a['AddressOwner'];if('ObjectOwner'in a)return a['ObjectOwner'];if('Shared'in a)return null;throw new Error('Unknown\x20owner\x20type:\x20'+JSON['stringify'](a));}function parseTransaction(a){const b=bcs['SenderSignedData']['parse'](fromBase64(a['rawTransaction']))[0x0],c={};a['objectChanges']?.['forEach'](f=>{f['type']!=='published'&&(c[f['objectId']]=f['objectType']);});const d=bcs['TransactionData']['serialize'](b['intentMessage']['value'])['toBytes'](),e=TransactionDataBuilder['restore']({'version':0x2,'sender':b['intentMessage']['value']['V1']['sender'],'expiration':b['intentMessage']['value']['V1']['expiration'],'gasData':b['intentMessage']['value']['V1']['gasData'],'inputs':b['intentMessage']['value']['V1']['kind']['ProgrammableTransaction']['inputs'],'commands':b['intentMessage']['value']['V1']['kind']['ProgrammableTransaction']['commands']});return{'digest':a['digest'],'epoch':a['effects']?.['executedEpoch']??null,'effects':parseTransactionEffectsBcs(new Uint8Array(a['rawEffects'])),'objectTypes':Promise['resolve'](c),'transaction':{...e,'bcs':d},'signatures':b['txSignatures'],'balanceChanges':a['balanceChanges']?.['map'](f=>({'coinType':f['coinType'],'address':parseOwnerAddress(f['owner']),'amount':f['amount']}))??[]};}function parseTransactionEffectsJson({bytes:a,effects:b,objectChanges:c}){const d=[],e=[],f={};return c?.['forEach'](g=>{switch(g['type']){case'published':d['push']({'id':g['packageId'],'inputState':'DoesNotExist','inputVersion':null,'inputDigest':null,'inputOwner':null,'outputState':'PackageWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':null,'idOperation':'Created'});break;case'transferred':d['push']({'id':g['objectId'],'inputState':'Exists','inputVersion':g['version'],'inputDigest':g['digest'],'inputOwner':{'$kind':'AddressOwner','AddressOwner':g['sender']},'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':parseOwner(g['recipient']),'idOperation':'None'}),f[g['objectId']]=g['objectType'];break;case'mutated':d['push']({'id':g['objectId'],'inputState':'Exists','inputVersion':g['previousVersion'],'inputDigest':null,'inputOwner':parseOwner(g['owner']),'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':parseOwner(g['owner']),'idOperation':'None'}),f[g['objectId']]=g['objectType'];break;case'deleted':d['push']({'id':g['objectId'],'inputState':'Exists','inputVersion':g['version'],'inputDigest':b['deleted']?.['find'](h=>h['objectId']===g['objectId'])?.['digest']??null,'inputOwner':null,'outputState':'DoesNotExist','outputVersion':null,'outputDigest':null,'outputOwner':null,'idOperation':'Deleted'}),f[g['objectId']]=g['objectType'];break;case'wrapped':d['push']({'id':g['objectId'],'inputState':'Exists','inputVersion':g['version'],'inputDigest':null,'inputOwner':{'$kind':'AddressOwner','AddressOwner':g['sender']},'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':b['wrapped']?.['find'](h=>h['objectId']===g['objectId'])?.['digest']??null,'outputOwner':{'$kind':'ObjectOwner','ObjectOwner':g['sender']},'idOperation':'None'}),f[g['objectId']]=g['objectType'];break;case'created':d['push']({'id':g['objectId'],'inputState':'DoesNotExist','inputVersion':null,'inputDigest':null,'inputOwner':null,'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':parseOwner(g['owner']),'idOperation':'Created'}),f[g['objectId']]=g['objectType'];break;}}),{'objectTypes':f,'effects':{'bcs':a??null,'digest':b['transactionDigest'],'version':0x2,'status':b['status']['status']==='success'?{'success':!![],'error':null}:{'success':![],'error':b['status']['error']},'gasUsed':b['gasUsed'],'transactionDigest':b['transactionDigest'],'gasObject':{'id':b['gasObject']?.['reference']['objectId'],'inputState':'Exists','inputVersion':null,'inputDigest':null,'inputOwner':null,'outputState':'ObjectWrite','outputVersion':b['gasObject']['reference']['version'],'outputDigest':b['gasObject']['reference']['digest'],'outputOwner':parseOwner(b['gasObject']['owner']),'idOperation':'None'},'eventsDigest':b['eventsDigest']??null,'dependencies':b['dependencies']??[],'lamportVersion':b['gasObject']['reference']['version'],'changedObjects':d,'unchangedConsensusObjects':e,'auxiliaryDataDigest':null}};}const Balance=bcs['struct']('Balance',{'value':bcs['u64']()}),Coin=bcs['struct']('Coin',{'id':bcs['Address'],'balance':Balance});function parseNormalizedSuiMoveType(a){if(typeof a!=='string'){if('Reference'in a)return{'reference':'immutable','body':parseNormalizedSuiMoveTypeBody(a['Reference'])};if('MutableReference'in a)return{'reference':'mutable','body':parseNormalizedSuiMoveTypeBody(a['MutableReference'])};}return{'reference':null,'body':parseNormalizedSuiMoveTypeBody(a)};}function parseNormalizedSuiMoveTypeBody(a){switch(a){case'Address':return{'$kind':'address'};case'Bool':return{'$kind':'bool'};case'U8':return{'$kind':'u8'};case'U16':return{'$kind':'u16'};case'U32':return{'$kind':'u32'};case'U64':return{'$kind':'u64'};case'U128':return{'$kind':'u128'};case'U256':return{'$kind':'u256'};}if(typeof a==='string')throw new Error('Unknown\x20type:\x20'+a);if('Vector'in a)return{'$kind':'vector','vector':parseNormalizedSuiMoveTypeBody(a['Vector'])};if('Struct'in a)return{'$kind':'datatype','datatype':{'typeName':normalizeWowAddress(a['Struct']['address'])+'::'+a['Struct']['module']+'::'+a['Struct']['name'],'typeParameters':a['Struct']['typeArguments']['map'](b=>parseNormalizedSuiMoveTypeBody(b))}};if('TypeParameter'in a)return{'$kind':'typeParameter','index':a['TypeParameter']};throw new Error('Unknown\x20type:\x20'+JSON['stringify'](a));}function parseAbilities(a){return a['abilities']['map'](b=>{switch(b){case'Copy':return'copy';case'Drop':return'drop';case'Store':return'store';case'Key':return'key';default:return'unknown';}});}function parseVisibility(a){switch(a){case'Public':return'public';case'Private':return'private';case'Friend':return'friend';default:return'unknown';}}
|
|
1
|
+
import{fromBase64}from'../_deps/bcs/index.js';import{bcs}from'../bcs/index.js';import{Transaction}from'../transactions/Transaction.js';import{jsonRpcClientResolveTransactionPlugin}from'./json-rpc-resolver.js';import{TransactionDataBuilder}from'../transactions/TransactionData.js';import{chunk}from'../_deps/utils/index.js';import{normalizeWowAddress}from'../utils/wow-types.js';import{Experimental_CoreClient}from'../experimental/core.js';import{ObjectError}from'../experimental/errors.js';import{parseTransactionBcs,parseTransactionEffectsBcs}from'../experimental/index.js';export class JSONRpcCoreClient extends Experimental_CoreClient{#jsonRpcClient;constructor({jsonRpcClient:a}){super({'network':a['network'],'base':a}),this.#jsonRpcClient=a;}async['getObjects'](a){const b=chunk(a['objectIds'],0x32),c=[];for(const d of b){const e=await this.#jsonRpcClient['multiGetObjects']({'ids':d,'options':{'showOwner':!![],'showType':!![],'showBcs':!![],'showPreviousTransaction':!![]},'signal':a['signal']});for(const [f,g]of e['entries']()){g['error']?c['push'](ObjectError['fromResponse'](g['error'],d[f])):c['push'](parseObject(g['data']));}}return{'objects':c};}async['getOwnedObjects'](a){const b=await this.#jsonRpcClient['getOwnedObjects']({'owner':a['address'],'limit':a['limit'],'cursor':a['cursor'],'options':{'showOwner':!![],'showType':!![],'showBcs':!![],'showPreviousTransaction':!![]},'filter':a['type']?{'StructType':a['type']}:null,'signal':a['signal']});return{'objects':b['data']['map'](c=>{if(c['error'])throw ObjectError['fromResponse'](c['error']);return parseObject(c['data']);}),'hasNextPage':b['hasNextPage'],'cursor':b['nextCursor']??null};}async['getCoins'](a){const b=await this.#jsonRpcClient['getCoins']({'owner':a['address'],'coinType':a['coinType'],'limit':a['limit'],'cursor':a['cursor'],'signal':a['signal']});return{'objects':b['data']['map'](c=>{return{'id':c['coinObjectId'],'version':c['version'],'digest':c['digest'],'balance':c['balance'],'type':'0x2::coin::Coin<'+c['coinType']+'>','content':Promise['resolve'](Coin['serialize']({'id':c['coinObjectId'],'balance':{'value':c['balance']}})['toBytes']()),'owner':{'$kind':'ObjectOwner','ObjectOwner':a['address']},'previousTransaction':c['previousTransaction']};}),'hasNextPage':b['hasNextPage'],'cursor':b['nextCursor']??null};}async['getBalance'](a){const b=await this.#jsonRpcClient['getBalance']({'owner':a['address'],'coinType':a['coinType'],'signal':a['signal']});return{'balance':{'coinType':b['coinType'],'balance':b['totalBalance']}};}async['getAllBalances'](a){const b=await this.#jsonRpcClient['getAllBalances']({'owner':a['address'],'signal':a['signal']});return{'balances':b['map'](c=>({'coinType':c['coinType'],'balance':c['totalBalance']})),'hasNextPage':![],'cursor':null};}async['getTransaction'](a){const b=await this.#jsonRpcClient['getTransactionBlock']({'digest':a['digest'],'options':{'showRawInput':!![],'showObjectChanges':!![],'showRawEffects':!![],'showEvents':!![],'showEffects':!![],'showBalanceChanges':!![]},'signal':a['signal']});return{'transaction':parseTransaction(b)};}async['executeTransaction'](a){const b=await this.#jsonRpcClient['executeTransactionBlock']({'transactionBlock':a['transaction'],'signature':a['signatures'],'options':{'showRawEffects':!![],'showEvents':!![],'showObjectChanges':!![],'showRawInput':!![],'showEffects':!![],'showBalanceChanges':!![]},'signal':a['signal']});return{'transaction':parseTransaction(b)};}async['dryRunTransaction'](a){const b=Transaction['from'](a['transaction']),c=await this.#jsonRpcClient['dryRunTransactionBlock']({'transactionBlock':a['transaction'],'signal':a['signal']}),{effects:d,objectTypes:e}=parseTransactionEffectsJson({'effects':c['effects'],'objectChanges':c['objectChanges']});return{'transaction':{'digest':await b['getDigest'](),'epoch':null,'effects':d,'objectTypes':Promise['resolve'](e),'signatures':[],'transaction':parseTransactionBcs(a['transaction']),'balanceChanges':c['balanceChanges']['map'](f=>({'coinType':f['coinType'],'address':parseOwnerAddress(f['owner']),'amount':f['amount']}))}};}async['getReferenceGasPrice'](a){const b=await this.#jsonRpcClient['getReferenceGasPrice']({'signal':a?.['signal']});return{'referenceGasPrice':String(b)};}async['getDynamicFields'](a){const b=await this.#jsonRpcClient['getDynamicFields']({'parentId':a['parentId'],'limit':a['limit'],'cursor':a['cursor']});return{'dynamicFields':b['data']['map'](c=>{return{'id':c['objectId'],'type':c['objectType'],'name':{'type':c['name']['type'],'bcs':fromBase64(c['bcsName'])}};}),'hasNextPage':b['hasNextPage'],'cursor':b['nextCursor']};}['resolveTransactionPlugin'](){return jsonRpcClientResolveTransactionPlugin(this.#jsonRpcClient);}async['getMoveFunction'](a){const b=await this.#jsonRpcClient['getNormalizedMoveFunction']({'package':a['packageId'],'module':a['moduleName'],'function':a['name']});return{'function':{'packageId':normalizeWowAddress(a['packageId']),'moduleName':a['moduleName'],'name':a['name'],'visibility':parseVisibility(b['visibility']),'isEntry':b['isEntry'],'typeParameters':b['typeParameters']['map'](c=>({'isPhantom':![],'constraints':parseAbilities(c)})),'parameters':b['parameters']['map'](c=>parseNormalizedWowMoveType(c)),'returns':b['return']['map'](c=>parseNormalizedWowMoveType(c))}};}}function parseObject(a){return{'id':a['objectId'],'version':a['version'],'digest':a['digest'],'type':a['type'],'content':Promise['resolve'](a['bcs']?.['dataType']==='moveObject'?fromBase64(a['bcs']['bcsBytes']):new Uint8Array()),'owner':parseOwner(a['owner']),'previousTransaction':a['previousTransaction']??null};}function parseOwner(a){if(a==='Immutable')return{'$kind':'Immutable','Immutable':!![]};if('ConsensusAddressOwner'in a)return{'$kind':'ConsensusAddressOwner','ConsensusAddressOwner':{'owner':a['ConsensusAddressOwner']['owner'],'startVersion':a['ConsensusAddressOwner']['start_version']}};if('AddressOwner'in a)return{'$kind':'AddressOwner','AddressOwner':a['AddressOwner']};if('ObjectOwner'in a)return{'$kind':'ObjectOwner','ObjectOwner':a['ObjectOwner']};if('Shared'in a)return{'$kind':'Shared','Shared':{'initialSharedVersion':a['Shared']['initial_shared_version']}};throw new Error('Unknown\x20owner\x20type:\x20'+JSON['stringify'](a));}function parseOwnerAddress(a){if(a==='Immutable')return null;if('ConsensusAddressOwner'in a)return a['ConsensusAddressOwner']['owner'];if('AddressOwner'in a)return a['AddressOwner'];if('ObjectOwner'in a)return a['ObjectOwner'];if('Shared'in a)return null;throw new Error('Unknown\x20owner\x20type:\x20'+JSON['stringify'](a));}function parseTransaction(a){const b=bcs['SenderSignedData']['parse'](fromBase64(a['rawTransaction']))[0x0],c={};a['objectChanges']?.['forEach'](f=>{f['type']!=='published'&&(c[f['objectId']]=f['objectType']);});const d=bcs['TransactionData']['serialize'](b['intentMessage']['value'])['toBytes'](),e=TransactionDataBuilder['restore']({'version':0x2,'sender':b['intentMessage']['value']['V1']['sender'],'expiration':b['intentMessage']['value']['V1']['expiration'],'gasData':b['intentMessage']['value']['V1']['gasData'],'inputs':b['intentMessage']['value']['V1']['kind']['ProgrammableTransaction']['inputs'],'commands':b['intentMessage']['value']['V1']['kind']['ProgrammableTransaction']['commands']});return{'digest':a['digest'],'epoch':a['effects']?.['executedEpoch']??null,'effects':parseTransactionEffectsBcs(new Uint8Array(a['rawEffects'])),'objectTypes':Promise['resolve'](c),'transaction':{...e,'bcs':d},'signatures':b['txSignatures'],'balanceChanges':a['balanceChanges']?.['map'](f=>({'coinType':f['coinType'],'address':parseOwnerAddress(f['owner']),'amount':f['amount']}))??[]};}function parseTransactionEffectsJson({bytes:a,effects:b,objectChanges:c}){const d=[],e=[],f={};return c?.['forEach'](g=>{switch(g['type']){case'published':d['push']({'id':g['packageId'],'inputState':'DoesNotExist','inputVersion':null,'inputDigest':null,'inputOwner':null,'outputState':'PackageWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':null,'idOperation':'Created'});break;case'transferred':d['push']({'id':g['objectId'],'inputState':'Exists','inputVersion':g['version'],'inputDigest':g['digest'],'inputOwner':{'$kind':'AddressOwner','AddressOwner':g['sender']},'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':parseOwner(g['recipient']),'idOperation':'None'}),f[g['objectId']]=g['objectType'];break;case'mutated':d['push']({'id':g['objectId'],'inputState':'Exists','inputVersion':g['previousVersion'],'inputDigest':null,'inputOwner':parseOwner(g['owner']),'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':parseOwner(g['owner']),'idOperation':'None'}),f[g['objectId']]=g['objectType'];break;case'deleted':d['push']({'id':g['objectId'],'inputState':'Exists','inputVersion':g['version'],'inputDigest':b['deleted']?.['find'](h=>h['objectId']===g['objectId'])?.['digest']??null,'inputOwner':null,'outputState':'DoesNotExist','outputVersion':null,'outputDigest':null,'outputOwner':null,'idOperation':'Deleted'}),f[g['objectId']]=g['objectType'];break;case'wrapped':d['push']({'id':g['objectId'],'inputState':'Exists','inputVersion':g['version'],'inputDigest':null,'inputOwner':{'$kind':'AddressOwner','AddressOwner':g['sender']},'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':b['wrapped']?.['find'](h=>h['objectId']===g['objectId'])?.['digest']??null,'outputOwner':{'$kind':'ObjectOwner','ObjectOwner':g['sender']},'idOperation':'None'}),f[g['objectId']]=g['objectType'];break;case'created':d['push']({'id':g['objectId'],'inputState':'DoesNotExist','inputVersion':null,'inputDigest':null,'inputOwner':null,'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':parseOwner(g['owner']),'idOperation':'Created'}),f[g['objectId']]=g['objectType'];break;}}),{'objectTypes':f,'effects':{'bcs':a??null,'digest':b['transactionDigest'],'version':0x2,'status':b['status']['status']==='success'?{'success':!![],'error':null}:{'success':![],'error':b['status']['error']},'gasUsed':b['gasUsed'],'transactionDigest':b['transactionDigest'],'gasObject':{'id':b['gasObject']?.['reference']['objectId'],'inputState':'Exists','inputVersion':null,'inputDigest':null,'inputOwner':null,'outputState':'ObjectWrite','outputVersion':b['gasObject']['reference']['version'],'outputDigest':b['gasObject']['reference']['digest'],'outputOwner':parseOwner(b['gasObject']['owner']),'idOperation':'None'},'eventsDigest':b['eventsDigest']??null,'dependencies':b['dependencies']??[],'lamportVersion':b['gasObject']['reference']['version'],'changedObjects':d,'unchangedConsensusObjects':e,'auxiliaryDataDigest':null}};}const Balance=bcs['struct']('Balance',{'value':bcs['u64']()}),Coin=bcs['struct']('Coin',{'id':bcs['Address'],'balance':Balance});function parseNormalizedWowMoveType(a){if(typeof a!=='string'){if('Reference'in a)return{'reference':'immutable','body':parseNormalizedWowMoveTypeBody(a['Reference'])};if('MutableReference'in a)return{'reference':'mutable','body':parseNormalizedWowMoveTypeBody(a['MutableReference'])};}return{'reference':null,'body':parseNormalizedWowMoveTypeBody(a)};}function parseNormalizedWowMoveTypeBody(a){switch(a){case'Address':return{'$kind':'address'};case'Bool':return{'$kind':'bool'};case'U8':return{'$kind':'u8'};case'U16':return{'$kind':'u16'};case'U32':return{'$kind':'u32'};case'U64':return{'$kind':'u64'};case'U128':return{'$kind':'u128'};case'U256':return{'$kind':'u256'};}if(typeof a==='string')throw new Error('Unknown\x20type:\x20'+a);if('Vector'in a)return{'$kind':'vector','vector':parseNormalizedWowMoveTypeBody(a['Vector'])};if('Struct'in a)return{'$kind':'datatype','datatype':{'typeName':normalizeWowAddress(a['Struct']['address'])+'::'+a['Struct']['module']+'::'+a['Struct']['name'],'typeParameters':a['Struct']['typeArguments']['map'](b=>parseNormalizedWowMoveTypeBody(b))}};if('TypeParameter'in a)return{'$kind':'typeParameter','index':a['TypeParameter']};throw new Error('Unknown\x20type:\x20'+JSON['stringify'](a));}function parseAbilities(a){return a['abilities']['map'](b=>{switch(b){case'Copy':return'copy';case'Drop':return'drop';case'Store':return'store';case'Key':return'key';default:return'unknown';}});}function parseVisibility(a){switch(a){case'Public':return'public';case'Private':return'private';case'Friend':return'friend';default:return'unknown';}}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export declare class
|
|
1
|
+
export declare class WowHTTPTransportError extends Error {
|
|
2
2
|
}
|
|
3
|
-
export declare class JsonRpcError extends
|
|
3
|
+
export declare class JsonRpcError extends WowHTTPTransportError {
|
|
4
4
|
code: number;
|
|
5
5
|
type: string;
|
|
6
6
|
constructor(message: string, code: number);
|
|
7
7
|
}
|
|
8
|
-
export declare class
|
|
8
|
+
export declare class WowHTTPStatusError extends WowHTTPTransportError {
|
|
9
9
|
status: number;
|
|
10
10
|
statusText: string;
|
|
11
11
|
constructor(message: string, status: number, statusText: string);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const CODE_TO_ERROR_TYPE={'-32700':'ParseError','-32701':'OversizedRequest','-32702':'OversizedResponse','-32600':'InvalidRequest','-32601':'MethodNotFound','-32602':'InvalidParams','-32603':'InternalError','-32604':'ServerBusy','-32000':'CallExecutionFailed','-32001':'UnknownError','-32003':'SubscriptionClosed','-32004':'SubscriptionClosedWithError','-32005':'BatchesNotSupported','-32006':'TooManySubscriptions','-32050':'TransientError','-32002':'TransactionExecutionClientError'};export class
|
|
1
|
+
const CODE_TO_ERROR_TYPE={'-32700':'ParseError','-32701':'OversizedRequest','-32702':'OversizedResponse','-32600':'InvalidRequest','-32601':'MethodNotFound','-32602':'InvalidParams','-32603':'InternalError','-32604':'ServerBusy','-32000':'CallExecutionFailed','-32001':'UnknownError','-32003':'SubscriptionClosed','-32004':'SubscriptionClosedWithError','-32005':'BatchesNotSupported','-32006':'TooManySubscriptions','-32050':'TransientError','-32002':'TransactionExecutionClientError'};export class WowHTTPTransportError extends Error{}export class JsonRpcError extends WowHTTPTransportError{['code'];['type'];constructor(a,b){super(a),this['code']=b,this['type']=CODE_TO_ERROR_TYPE[b]??'ServerError';}}export class WowHTTPStatusError extends WowHTTPTransportError{['status'];['statusText'];constructor(a,b,c){super(a),this['status']=b,this['statusText']=c;}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PACKAGE_VERSION,TARGETED_RPC_VERSION}from'../version.js';import{JsonRpcError,
|
|
1
|
+
import{PACKAGE_VERSION,TARGETED_RPC_VERSION}from'../version.js';import{JsonRpcError,WowHTTPStatusError}from'./errors.js';import{WebsocketClient}from'./rpc-websocket-client.js';export class JsonRpcHTTPTransport{#requestId=0x0;#options;#websocketClient;constructor(a){this.#options=a;}['fetch'](a,b){const c=this.#options['fetch']??fetch;if(!c)throw new Error('The\x20current\x20environment\x20does\x20not\x20support\x20fetch,\x20you\x20can\x20provide\x20a\x20fetch\x20implementation\x20in\x20the\x20options\x20for\x20WowHTTPTransport.');return c(a,b);}#getWebsocketClient(){if(!this.#websocketClient){const a=this.#options['WebSocketConstructor']??WebSocket;if(!a)throw new Error('The\x20current\x20environment\x20does\x20not\x20support\x20WebSocket,\x20you\x20can\x20provide\x20a\x20WebSocketConstructor\x20in\x20the\x20options\x20for\x20WowHTTPTransport.');this.#websocketClient=new WebsocketClient(this.#options['websocket']?.['url']??this.#options['url'],{'WebSocketConstructor':a,...this.#options['websocket']});}return this.#websocketClient;}async['request'](a){this.#requestId+=0x1;const b=await this['fetch'](this.#options['rpc']?.['url']??this.#options['url'],{'method':'POST','signal':a['signal'],'headers':{'Content-Type':'application/json','Client-Sdk-Type':'typescript','Client-Sdk-Version':PACKAGE_VERSION,'Client-Target-Api-Version':TARGETED_RPC_VERSION,'Client-Request-Method':a['method'],...this.#options['rpc']?.['headers']},'body':JSON['stringify']({'jsonrpc':'2.0','id':this.#requestId,'method':a['method'],'params':a['params']})});if(!b['ok'])throw new WowHTTPStatusError('Unexpected\x20status\x20code:\x20'+b['status'],b['status'],b['statusText']);const c=await b['json']();if('error'in c&&c['error']!=null)throw new JsonRpcError(c['error']['message'],c['error']['code']);return c['result'];}async['subscribe'](a){const b=await this.#getWebsocketClient()['subscribe'](a);return a['signal']&&(a['signal']['throwIfAborted'](),a['signal']['addEventListener']('abort',()=>{b();})),async()=>!!await b();}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { type JsonRpcTransport, type JsonRpcTransportRequestOptions, type JsonRpcTransportSubscribeOptions, type HttpHeaders, type JsonRpcHTTPTransportOptions, JsonRpcHTTPTransport, } from "./http-transport.js";
|
|
2
2
|
export type * from "./types/index.js";
|
|
3
|
-
export { type
|
|
4
|
-
export {
|
|
3
|
+
export { type WowJsonRpcClientOptions, type PaginationArguments, type OrderArguments, isWowJsonRpcClient, WowJsonRpcClient, } from "./client.js";
|
|
4
|
+
export { WowHTTPStatusError, WowHTTPTransportError, JsonRpcError, } from "./errors.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{JsonRpcHTTPTransport}from'./http-transport.js';export{
|
|
1
|
+
export{JsonRpcHTTPTransport}from'./http-transport.js';export{isWowJsonRpcClient,WowJsonRpcClient}from'./client.js';export{WowHTTPStatusError,WowHTTPTransportError,JsonRpcError}from'./errors.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { TransactionDataBuilder } from "../transactions/TransactionData.js";
|
|
2
2
|
import type { BuildTransactionOptions } from "../transactions/index.js";
|
|
3
|
-
import type {
|
|
4
|
-
export declare function jsonRpcClientResolveTransactionPlugin(client:
|
|
3
|
+
import type { WowJsonRpcClient } from "./client.js";
|
|
4
|
+
export declare function jsonRpcClientResolveTransactionPlugin(client: WowJsonRpcClient): (transactionData: TransactionDataBuilder, options: BuildTransactionOptions, next: () => Promise<void>) => Promise<void>;
|