wowok 2.2.4 → 2.2.5
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/_deps/bcs/bcs-type.d.ts +127 -0
- package/dist/cjs/_deps/bcs/bcs-type.js +1 -0
- package/dist/cjs/_deps/bcs/bcs.d.ts +49 -0
- package/dist/cjs/_deps/bcs/bcs.js +1 -0
- package/dist/cjs/_deps/bcs/index.d.ts +16 -0
- package/dist/cjs/_deps/bcs/index.js +1 -0
- package/dist/cjs/_deps/bcs/reader.d.ts +15 -0
- package/dist/cjs/_deps/bcs/reader.js +1 -0
- package/dist/cjs/_deps/bcs/types.d.ts +24 -0
- package/dist/cjs/_deps/bcs/types.js +1 -0
- package/dist/cjs/_deps/bcs/uleb.d.ts +5 -0
- package/dist/cjs/_deps/bcs/uleb.js +1 -0
- package/dist/cjs/_deps/bcs/utils.d.ts +4 -0
- package/dist/cjs/_deps/bcs/utils.js +1 -0
- package/dist/cjs/_deps/bcs/writer.d.ts +28 -0
- package/dist/cjs/_deps/bcs/writer.js +1 -0
- package/dist/cjs/_deps/utils/b58.d.ts +2 -0
- package/dist/cjs/_deps/utils/b58.js +1 -0
- package/dist/cjs/_deps/utils/b64.d.ts +2 -0
- package/dist/cjs/_deps/utils/b64.js +1 -0
- package/dist/cjs/_deps/utils/chunk.d.ts +1 -0
- package/dist/cjs/_deps/utils/chunk.js +1 -0
- package/dist/cjs/_deps/utils/dataloader.d.ts +43 -0
- package/dist/cjs/_deps/utils/dataloader.js +1 -0
- package/dist/cjs/_deps/utils/hex.d.ts +2 -0
- package/dist/cjs/_deps/utils/hex.js +1 -0
- package/dist/cjs/_deps/utils/index.d.ts +7 -0
- package/dist/cjs/_deps/utils/index.js +1 -0
- package/dist/cjs/_deps/utils/types.d.ts +4 -0
- package/dist/cjs/_deps/utils/types.js +1 -0
- package/dist/cjs/_deps/utils/with-resolver.d.ts +6 -0
- package/dist/cjs/_deps/utils/with-resolver.js +1 -0
- package/dist/cjs/bcs/bcs.d.ts +245 -245
- package/dist/cjs/bcs/bcs.js +1 -1
- package/dist/cjs/bcs/effects.d.ts +193 -193
- package/dist/cjs/bcs/effects.js +1 -1
- package/dist/cjs/bcs/index.d.ts +1 -1
- package/dist/cjs/bcs/index.js +1 -1
- package/dist/cjs/bcs/pure.d.ts +1 -1
- package/dist/cjs/bcs/pure.js +1 -1
- package/dist/cjs/bcs/type-tag-serializer.js +1 -1
- package/dist/cjs/cryptography/keypair.js +1 -1
- package/dist/cjs/cryptography/mnemonics.js +1 -1
- package/dist/cjs/cryptography/publickey.js +1 -1
- package/dist/cjs/cryptography/signature.js +1 -1
- package/dist/cjs/experimental/client.d.ts +1 -1
- package/dist/cjs/grpc/core.js +1 -1
- package/dist/cjs/jsonRpc/client.js +1 -1
- package/dist/cjs/jsonRpc/core.js +1 -1
- package/dist/cjs/jsonRpc/json-rpc-resolver.js +1 -1
- package/dist/cjs/keypairs/falcon512/publickey.js +1 -1
- package/dist/cjs/multisig/publickey.js +1 -1
- package/dist/cjs/multisig/signer.js +1 -1
- package/dist/cjs/transactions/Commands.js +1 -1
- package/dist/cjs/transactions/Inputs.d.ts +1 -1
- package/dist/cjs/transactions/Inputs.js +1 -1
- package/dist/cjs/transactions/Transaction.d.ts +5 -5
- package/dist/cjs/transactions/Transaction.js +1 -1
- package/dist/cjs/transactions/TransactionData.js +1 -1
- package/dist/cjs/transactions/__tests__/Transaction.test.js +1 -1
- package/dist/cjs/transactions/__tests__/bcs.test.js +1 -1
- package/dist/cjs/transactions/data/internal.d.ts +2 -2
- package/dist/cjs/transactions/data/v1.d.ts +2 -2
- package/dist/cjs/transactions/data/v1.js +1 -1
- package/dist/cjs/transactions/data/v2.d.ts +1 -1
- package/dist/cjs/transactions/executor/parallel.js +1 -1
- package/dist/cjs/transactions/executor/serial.js +1 -1
- package/dist/cjs/transactions/pure.d.ts +1 -1
- package/dist/cjs/transactions/pure.js +1 -1
- package/dist/cjs/transactions/serializer.d.ts +1 -1
- package/dist/cjs/utils/dynamic-fields.js +1 -1
- package/dist/cjs/utils/index.d.ts +1 -1
- package/dist/cjs/utils/index.js +1 -1
- package/dist/cjs/utils/sui-types.js +1 -1
- package/dist/cjs/verify/verify.js +1 -1
- package/dist/cjs/w/call/arbitration.js +1 -1
- 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/guard.js +1 -1
- package/dist/cjs/w/call/machine.js +1 -1
- package/dist/cjs/w/call/personal.js +1 -1
- package/dist/cjs/w/call/repository.js +1 -1
- package/dist/cjs/w/call/reward.js +1 -1
- package/dist/cjs/w/call/service.js +1 -1
- package/dist/cjs/w/call/treasury.js +1 -1
- package/dist/cjs/w/local/storage.js +1 -1
- package/dist/cjs/w/local/util.js +1 -1
- package/dist/cjs/w/local/wip.js +1 -1
- package/dist/cjs/w/messenger/messenger-api.js +1 -1
- package/dist/cjs/w/messenger/messenger.js +1 -1
- package/dist/cjs/w/messenger/pq/crypto.js +1 -1
- package/dist/cjs/w/messenger/storage.js +1 -1
- package/dist/cjs/w/query/object.js +1 -1
- package/dist/esm/_deps/bcs/bcs-type.d.ts +127 -0
- package/dist/esm/_deps/bcs/bcs-type.js +1 -0
- package/dist/esm/_deps/bcs/bcs.d.ts +49 -0
- package/dist/esm/_deps/bcs/bcs.js +1 -0
- package/dist/esm/_deps/bcs/index.d.ts +16 -0
- package/dist/esm/_deps/bcs/index.js +1 -0
- package/dist/esm/_deps/bcs/reader.d.ts +15 -0
- package/dist/esm/_deps/bcs/reader.js +1 -0
- package/dist/esm/_deps/bcs/types.d.ts +24 -0
- package/dist/esm/_deps/bcs/types.js +1 -0
- package/dist/esm/_deps/bcs/uleb.d.ts +5 -0
- package/dist/esm/_deps/bcs/uleb.js +1 -0
- package/dist/esm/_deps/bcs/utils.d.ts +4 -0
- package/dist/esm/_deps/bcs/utils.js +1 -0
- package/dist/esm/_deps/bcs/writer.d.ts +28 -0
- package/dist/esm/_deps/bcs/writer.js +1 -0
- package/dist/esm/_deps/utils/b58.d.ts +2 -0
- package/dist/esm/_deps/utils/b58.js +1 -0
- package/dist/esm/_deps/utils/b64.d.ts +2 -0
- package/dist/esm/_deps/utils/b64.js +1 -0
- package/dist/esm/_deps/utils/chunk.d.ts +1 -0
- package/dist/esm/_deps/utils/chunk.js +1 -0
- package/dist/esm/_deps/utils/dataloader.d.ts +43 -0
- package/dist/esm/_deps/utils/dataloader.js +1 -0
- package/dist/esm/_deps/utils/hex.d.ts +2 -0
- package/dist/esm/_deps/utils/hex.js +1 -0
- package/dist/esm/_deps/utils/index.d.ts +7 -0
- package/dist/esm/_deps/utils/index.js +1 -0
- package/dist/esm/_deps/utils/types.d.ts +4 -0
- package/dist/esm/_deps/utils/types.js +1 -0
- package/dist/esm/_deps/utils/with-resolver.d.ts +6 -0
- package/dist/esm/_deps/utils/with-resolver.js +1 -0
- package/dist/esm/bcs/bcs.d.ts +245 -245
- package/dist/esm/bcs/bcs.js +1 -1
- package/dist/esm/bcs/effects.d.ts +193 -193
- package/dist/esm/bcs/effects.js +1 -1
- package/dist/esm/bcs/index.d.ts +1 -1
- package/dist/esm/bcs/index.js +1 -1
- package/dist/esm/bcs/pure.d.ts +1 -1
- package/dist/esm/bcs/pure.js +1 -1
- package/dist/esm/bcs/type-tag-serializer.js +1 -1
- package/dist/esm/cryptography/keypair.js +1 -1
- package/dist/esm/cryptography/mnemonics.js +1 -1
- package/dist/esm/cryptography/publickey.js +1 -1
- package/dist/esm/cryptography/signature.js +1 -1
- package/dist/esm/experimental/client.d.ts +1 -1
- package/dist/esm/grpc/core.js +1 -1
- package/dist/esm/jsonRpc/client.js +1 -1
- package/dist/esm/jsonRpc/core.js +1 -1
- package/dist/esm/jsonRpc/json-rpc-resolver.js +1 -1
- package/dist/esm/keypairs/falcon512/publickey.js +1 -1
- package/dist/esm/multisig/publickey.js +1 -1
- package/dist/esm/multisig/signer.js +1 -1
- package/dist/esm/transactions/Commands.js +1 -1
- package/dist/esm/transactions/Inputs.d.ts +1 -1
- package/dist/esm/transactions/Inputs.js +1 -1
- package/dist/esm/transactions/Transaction.d.ts +5 -5
- package/dist/esm/transactions/Transaction.js +1 -1
- package/dist/esm/transactions/TransactionData.js +1 -1
- package/dist/esm/transactions/__tests__/Transaction.test.js +1 -1
- package/dist/esm/transactions/__tests__/bcs.test.js +1 -1
- package/dist/esm/transactions/data/internal.d.ts +2 -2
- package/dist/esm/transactions/data/v1.d.ts +2 -2
- package/dist/esm/transactions/data/v1.js +1 -1
- package/dist/esm/transactions/data/v2.d.ts +1 -1
- package/dist/esm/transactions/executor/parallel.js +1 -1
- package/dist/esm/transactions/executor/serial.js +1 -1
- package/dist/esm/transactions/pure.d.ts +1 -1
- package/dist/esm/transactions/pure.js +1 -1
- package/dist/esm/transactions/serializer.d.ts +1 -1
- package/dist/esm/utils/dynamic-fields.js +1 -1
- package/dist/esm/utils/index.d.ts +1 -1
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/utils/sui-types.js +1 -1
- package/dist/esm/verify/verify.js +1 -1
- package/dist/esm/w/call/arbitration.js +1 -1
- 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/guard.js +1 -1
- package/dist/esm/w/call/machine.js +1 -1
- package/dist/esm/w/call/personal.js +1 -1
- package/dist/esm/w/call/repository.js +1 -1
- package/dist/esm/w/call/reward.js +1 -1
- package/dist/esm/w/call/service.js +1 -1
- package/dist/esm/w/call/treasury.js +1 -1
- package/dist/esm/w/local/storage.js +1 -1
- package/dist/esm/w/local/util.js +1 -1
- package/dist/esm/w/local/wip.js +1 -1
- package/dist/esm/w/messenger/messenger-api.js +1 -1
- package/dist/esm/w/messenger/messenger.js +1 -1
- package/dist/esm/w/messenger/pq/crypto.js +1 -1
- package/dist/esm/w/messenger/storage.js +1 -1
- package/dist/esm/w/query/object.js +1 -1
- package/package.json +1 -3
package/dist/cjs/bcs/effects.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bcs}from'
|
|
1
|
+
import{bcs}from'../_deps/bcs/index.js';import{Address,ObjectDigest,Owner,SuiObjectRef}from'./bcs.js';const PackageUpgradeError=bcs['enum']('PackageUpgradeError',{'UnableToFetchPackage':bcs['struct']('UnableToFetchPackage',{'packageId':Address}),'NotAPackage':bcs['struct']('NotAPackage',{'objectId':Address}),'IncompatibleUpgrade':null,'DigestDoesNotMatch':bcs['struct']('DigestDoesNotMatch',{'digest':bcs['byteVector']()}),'UnknownUpgradePolicy':bcs['struct']('UnknownUpgradePolicy',{'policy':bcs['u8']()}),'PackageIDDoesNotMatch':bcs['struct']('PackageIDDoesNotMatch',{'packageId':Address,'ticketId':Address})}),ModuleId=bcs['struct']('ModuleId',{'address':Address,'name':bcs['string']()}),MoveLocation=bcs['struct']('MoveLocation',{'module':ModuleId,'function':bcs['u16'](),'instruction':bcs['u16'](),'functionName':bcs['option'](bcs['string']())}),CommandArgumentError=bcs['enum']('CommandArgumentError',{'TypeMismatch':null,'InvalidBCSBytes':null,'InvalidUsageOfPureArg':null,'InvalidArgumentToPrivateEntryFunction':null,'IndexOutOfBounds':bcs['struct']('IndexOutOfBounds',{'idx':bcs['u16']()}),'SecondaryIndexOutOfBounds':bcs['struct']('SecondaryIndexOutOfBounds',{'resultIdx':bcs['u16'](),'secondaryIdx':bcs['u16']()}),'InvalidResultArity':bcs['struct']('InvalidResultArity',{'resultIdx':bcs['u16']()}),'InvalidGasCoinUsage':null,'InvalidValueUsage':null,'InvalidObjectByValue':null,'InvalidObjectByMutRef':null,'SharedObjectOperationNotAllowed':null}),TypeArgumentError=bcs['enum']('TypeArgumentError',{'TypeNotFound':null,'ConstraintNotSatisfied':null}),ExecutionFailureStatus=bcs['enum']('ExecutionFailureStatus',{'InsufficientGas':null,'InvalidGasObject':null,'InvariantViolation':null,'FeatureNotYetSupported':null,'MoveObjectTooBig':bcs['struct']('MoveObjectTooBig',{'objectSize':bcs['u64'](),'maxObjectSize':bcs['u64']()}),'MovePackageTooBig':bcs['struct']('MovePackageTooBig',{'objectSize':bcs['u64'](),'maxObjectSize':bcs['u64']()}),'CircularObjectOwnership':bcs['struct']('CircularObjectOwnership',{'object':Address}),'InsufficientCoinBalance':null,'CoinBalanceOverflow':null,'PublishErrorNonZeroAddress':null,'SuiMoveVerificationError':null,'MovePrimitiveRuntimeError':bcs['option'](MoveLocation),'MoveAbort':bcs['tuple']([MoveLocation,bcs['u64']()]),'VMVerificationOrDeserializationError':null,'VMInvariantViolation':null,'FunctionNotFound':null,'ArityMismatch':null,'TypeArityMismatch':null,'NonEntryFunctionInvoked':null,'CommandArgumentError':bcs['struct']('CommandArgumentError',{'argIdx':bcs['u16'](),'kind':CommandArgumentError}),'TypeArgumentError':bcs['struct']('TypeArgumentError',{'argumentIdx':bcs['u16'](),'kind':TypeArgumentError}),'UnusedValueWithoutDrop':bcs['struct']('UnusedValueWithoutDrop',{'resultIdx':bcs['u16'](),'secondaryIdx':bcs['u16']()}),'InvalidPublicFunctionReturnType':bcs['struct']('InvalidPublicFunctionReturnType',{'idx':bcs['u16']()}),'InvalidTransferObject':null,'EffectsTooLarge':bcs['struct']('EffectsTooLarge',{'currentSize':bcs['u64'](),'maxSize':bcs['u64']()}),'PublishUpgradeMissingDependency':null,'PublishUpgradeDependencyDowngrade':null,'PackageUpgradeError':bcs['struct']('PackageUpgradeError',{'upgradeError':PackageUpgradeError}),'WrittenObjectsTooLarge':bcs['struct']('WrittenObjectsTooLarge',{'currentSize':bcs['u64'](),'maxSize':bcs['u64']()}),'CertificateDenied':null,'SuiMoveVerificationTimedout':null,'SharedObjectOperationNotAllowed':null,'InputObjectDeleted':null,'ExecutionCancelledDueToSharedObjectCongestion':bcs['struct']('ExecutionCancelledDueToSharedObjectCongestion',{'congestedObjects':bcs['vector'](Address)}),'AddressDeniedForCoin':bcs['struct']('AddressDeniedForCoin',{'address':Address,'coinType':bcs['string']()}),'CoinTypeGlobalPause':bcs['struct']('CoinTypeGlobalPause',{'coinType':bcs['string']()}),'ExecutionCancelledDueToRandomnessUnavailable':null}),ExecutionStatus=bcs['enum']('ExecutionStatus',{'Success':null,'Failed':bcs['struct']('ExecutionFailed',{'error':ExecutionFailureStatus,'command':bcs['option'](bcs['u64']())})}),GasCostSummary=bcs['struct']('GasCostSummary',{'computationCost':bcs['u64'](),'storageCost':bcs['u64'](),'storageRebate':bcs['u64'](),'nonRefundableStorageFee':bcs['u64']()}),TransactionEffectsV1=bcs['struct']('TransactionEffectsV1',{'status':ExecutionStatus,'executedEpoch':bcs['u64'](),'gasUsed':GasCostSummary,'modifiedAtVersions':bcs['vector'](bcs['tuple']([Address,bcs['u64']()])),'sharedObjects':bcs['vector'](SuiObjectRef),'transactionDigest':ObjectDigest,'created':bcs['vector'](bcs['tuple']([SuiObjectRef,Owner])),'mutated':bcs['vector'](bcs['tuple']([SuiObjectRef,Owner])),'unwrapped':bcs['vector'](bcs['tuple']([SuiObjectRef,Owner])),'deleted':bcs['vector'](SuiObjectRef),'unwrappedThenDeleted':bcs['vector'](SuiObjectRef),'wrapped':bcs['vector'](SuiObjectRef),'gasObject':bcs['tuple']([SuiObjectRef,Owner]),'eventsDigest':bcs['option'](ObjectDigest),'dependencies':bcs['vector'](ObjectDigest)}),VersionDigest=bcs['tuple']([bcs['u64'](),ObjectDigest]),ObjectIn=bcs['enum']('ObjectIn',{'NotExist':null,'Exist':bcs['tuple']([VersionDigest,Owner])}),ObjectOut=bcs['enum']('ObjectOut',{'NotExist':null,'ObjectWrite':bcs['tuple']([ObjectDigest,Owner]),'PackageWrite':VersionDigest}),IDOperation=bcs['enum']('IDOperation',{'None':null,'Created':null,'Deleted':null}),EffectsObjectChange=bcs['struct']('EffectsObjectChange',{'inputState':ObjectIn,'outputState':ObjectOut,'idOperation':IDOperation}),UnchangedSharedKind=bcs['enum']('UnchangedSharedKind',{'ReadOnlyRoot':VersionDigest,'MutateDeleted':bcs['u64'](),'ReadDeleted':bcs['u64'](),'Cancelled':bcs['u64'](),'PerEpochConfig':null}),TransactionEffectsV2=bcs['struct']('TransactionEffectsV2',{'status':ExecutionStatus,'executedEpoch':bcs['u64'](),'gasUsed':GasCostSummary,'transactionDigest':ObjectDigest,'gasObjectIndex':bcs['option'](bcs['u32']()),'eventsDigest':bcs['option'](ObjectDigest),'dependencies':bcs['vector'](ObjectDigest),'lamportVersion':bcs['u64'](),'changedObjects':bcs['vector'](bcs['tuple']([Address,EffectsObjectChange])),'unchangedSharedObjects':bcs['vector'](bcs['tuple']([Address,UnchangedSharedKind])),'auxDataDigest':bcs['option'](ObjectDigest)});export const TransactionEffects=bcs['enum']('TransactionEffects',{'V1':TransactionEffectsV1,'V2':TransactionEffectsV2});
|
package/dist/cjs/bcs/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { TypeTag } from "./types.js";
|
|
2
2
|
export { TypeTagSerializer } from "./type-tag-serializer.js";
|
|
3
|
-
export { BcsType, BcsStruct, BcsEnum, BcsTuple, type BcsTypeOptions, } from "
|
|
3
|
+
export { BcsType, BcsStruct, BcsEnum, BcsTuple, type BcsTypeOptions, } from "../_deps/bcs/index.js";
|
|
4
4
|
declare const suiBcs: any;
|
|
5
5
|
export { pureBcsSchemaFromTypeName, type ShapeFromPureTypeName, type PureTypeName, } from "./pure.js";
|
|
6
6
|
export { suiBcs as bcs };
|
package/dist/cjs/bcs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bcs}from'
|
|
1
|
+
import{bcs}from'../_deps/bcs/index.js';import{Address,AppId,Argument,CallArg,Command,CompressedSignature,GasData,Intent,IntentMessage,IntentScope,IntentVersion,MultiSig,MultiSigPkMap,MultiSigPublicKey,ObjectArg,ObjectDigest,Owner,ProgrammableMoveCall,ProgrammableTransaction,PublicKey,SenderSignedData,SenderSignedTransaction,SharedObjectRef,StructTag,SuiObjectRef,TransactionData,TransactionDataV1,TransactionExpiration,TransactionKind,TypeTag}from'./bcs.js';import{TransactionEffects}from'./effects.js';export{TypeTagSerializer}from'./type-tag-serializer.js';export{BcsType,BcsStruct,BcsEnum,BcsTuple}from'../_deps/bcs/index.js';const suiBcs={...bcs,'U8':bcs['u8'](),'U16':bcs['u16'](),'U32':bcs['u32'](),'U64':bcs['u64'](),'U128':bcs['u128'](),'U256':bcs['u256'](),'ULEB128':bcs['uleb128'](),'Bool':bcs['bool'](),'String':bcs['string'](),'Address':Address,'AppId':AppId,'Argument':Argument,'CallArg':CallArg,'Command':Command,'CompressedSignature':CompressedSignature,'GasData':GasData,'Intent':Intent,'IntentMessage':IntentMessage,'IntentScope':IntentScope,'IntentVersion':IntentVersion,'MultiSig':MultiSig,'MultiSigPkMap':MultiSigPkMap,'MultiSigPublicKey':MultiSigPublicKey,'ObjectArg':ObjectArg,'ObjectDigest':ObjectDigest,'Owner':Owner,'ProgrammableMoveCall':ProgrammableMoveCall,'ProgrammableTransaction':ProgrammableTransaction,'PublicKey':PublicKey,'SenderSignedData':SenderSignedData,'SenderSignedTransaction':SenderSignedTransaction,'SharedObjectRef':SharedObjectRef,'StructTag':StructTag,'SuiObjectRef':SuiObjectRef,'TransactionData':TransactionData,'TransactionDataV1':TransactionDataV1,'TransactionEffects':TransactionEffects,'TransactionExpiration':TransactionExpiration,'TransactionKind':TransactionKind,'TypeTag':TypeTag};export{pureBcsSchemaFromTypeName}from'./pure.js';export{suiBcs as bcs};
|
package/dist/cjs/bcs/pure.d.ts
CHANGED
package/dist/cjs/bcs/pure.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bcs}from'
|
|
1
|
+
import{bcs}from'../_deps/bcs/index.js';import{Address}from'./bcs.js';export function pureBcsSchemaFromTypeName(a){switch(a){case'u8':return bcs['u8']();case'u16':return bcs['u16']();case'u32':return bcs['u32']();case'u64':return bcs['u64']();case'u128':return bcs['u128']();case'u256':return bcs['u256']();case'bool':return bcs['bool']();case'string':return bcs['string']();case'id':case'address':return Address;}const b=a['match'](/^(vector|option)<(.+)>$/);if(b){const [c,d]=b['slice'](0x1);return c==='vector'?bcs['vector'](pureBcsSchemaFromTypeName(d)):bcs['option'](pureBcsSchemaFromTypeName(d));}throw new Error('Invalid\x20Pure\x20type\x20name:\x20'+a);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{splitGenericParameters}from'
|
|
1
|
+
import{splitGenericParameters}from'../_deps/bcs/index.js';import{normalizeWowAddress}from'../utils/sui-types.js';const VECTOR_REGEX=/^vector<(.+)>$/,STRUCT_REGEX=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;export class TypeTagSerializer{static['parseFromStr'](a,b=![]){if(a==='address')return{'address':null};else{if(a==='bool')return{'bool':null};else{if(a==='u8')return{'u8':null};else{if(a==='u16')return{'u16':null};else{if(a==='u32')return{'u32':null};else{if(a==='u64')return{'u64':null};else{if(a==='u128')return{'u128':null};else{if(a==='u256')return{'u256':null};else{if(a==='signer')return{'signer':null};}}}}}}}}const c=a['match'](VECTOR_REGEX);if(c)return{'vector':TypeTagSerializer['parseFromStr'](c[0x1],b)};const d=a['match'](STRUCT_REGEX);if(d){const e=b?normalizeWowAddress(d[0x1]):d[0x1];return{'struct':{'address':e,'module':d[0x2],'name':d[0x3],'typeParams':d[0x5]===undefined?[]:TypeTagSerializer['parseStructTypeArgs'](d[0x5],b)}};}throw new Error('Encountered\x20unexpected\x20token\x20when\x20parsing\x20type\x20args\x20for\x20'+a);}static['parseStructTypeArgs'](a,b=![]){return splitGenericParameters(a)['map'](c=>TypeTagSerializer['parseFromStr'](c,b));}static['tagToString'](a){if('bool'in a)return'bool';if('u8'in a)return'u8';if('u16'in a)return'u16';if('u32'in a)return'u32';if('u64'in a)return'u64';if('u128'in a)return'u128';if('u256'in a)return'u256';if('address'in a)return'address';if('signer'in a)return'signer';if('vector'in a)return'vector<'+TypeTagSerializer['tagToString'](a['vector'])+'>';if('struct'in a){const b=a['struct'],c=b['typeParams']['map'](TypeTagSerializer['tagToString'])['join'](',\x20');return b['address']+'::'+b['module']+'::'+b['name']+(c?'<'+c+'>':'');}throw new Error('Invalid\x20TypeTag');}}export function normalizeTypeTag(a){return TypeTagSerializer['tagToString'](TypeTagSerializer['parseFromStr'](a));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bcs,toBase64}from'
|
|
1
|
+
import{bcs,toBase64}from'../_deps/bcs/index.js';import{blake2b}from'@noble/hashes/blake2b';import{bech32}from'@scure/base';import{messageWithIntent}from'./intent.js';import{SIGNATURE_FLAG_TO_SCHEME,SIGNATURE_SCHEME_TO_FLAG}from'./signature-scheme.js';import{toSerializedSignature}from'./signature.js';export const FALCON512_PRIVATE_KEY_SIZE=0x501;export const PRIVATE_KEY_SIZE=FALCON512_PRIVATE_KEY_SIZE;export const W_PRIVATE_KEY_PREFIX='wowprivkey';export class Signer{async['signWithIntent'](a,b){const c=messageWithIntent(b,a),d=blake2b(c,{'dkLen':0x20}),e=toSerializedSignature({'signature':await this['sign'](d),'signatureScheme':this['getKeyScheme'](),'publicKey':this['getPublicKey']()});return{'signature':e,'bytes':toBase64(a)};}async['signTransaction'](a){return this['signWithIntent'](a,'TransactionData');}async['signPersonalMessage'](a){const {signature:b}=await this['signWithIntent'](bcs['byteVector']()['serialize'](a)['toBytes'](),'PersonalMessage');return{'bytes':toBase64(a),'signature':b};}async['signAndExecuteTransaction']({transaction:a,client:b}){const c=await a['build']({'client':b}),{signature:d}=await this['signTransaction'](c),e=await b['core']['executeTransaction']({'transaction':c,'signatures':[d]});return e['transaction'];}['toWowAddress'](){return this['getPublicKey']()['toWAddress']();}['toWAddress'](){return this['toWowAddress']();}}export class Keypair extends Signer{}export function decodeWowPrivateKey(a){const {prefix:b,words:c}=bech32['decode'](a,![]);if(b!==W_PRIVATE_KEY_PREFIX)throw new Error('invalid\x20private\x20key\x20prefix');const d=new Uint8Array(bech32['fromWords'](c)),e=d['slice'](0x1),f=SIGNATURE_FLAG_TO_SCHEME[d[0x0]];if(f!=='Falcon512')throw new Error('Unsupported\x20signature\x20scheme:\x20'+f+'.\x20Only\x20Falcon512\x20is\x20supported.');return{'scheme':f,'secretKey':e};}export function encodeWowPrivateKey(a,b){if(b!=='Falcon512')throw new Error('Unsupported\x20signature\x20scheme:\x20'+b+'.\x20Only\x20Falcon512\x20is\x20supported.');if(a['length']!==FALCON512_PRIVATE_KEY_SIZE)throw new Error('Invalid\x20bytes\x20length.\x20Expected\x20'+FALCON512_PRIVATE_KEY_SIZE+'\x20bytes\x20for\x20'+b+',\x20got\x20'+a['length']);const c=SIGNATURE_SCHEME_TO_FLAG[b],d=new Uint8Array(a['length']+0x1);return d['set']([c]),d['set'](a,0x1),bech32['encode'](W_PRIVATE_KEY_PREFIX,bech32['toWords'](d),![]);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{toHex}from'
|
|
1
|
+
import{toHex}from'../_deps/bcs/index.js';import{mnemonicToSeedSync as a27a}from'@scure/bip39';export function isValidHardenedPath(a){if(!new RegExp('^m\x5c/44\x27\x5c/784\x27\x5c/[0-9]+\x27\x5c/[0-9]+\x27\x5c/[0-9]+\x27+$')['test'](a))return![];return!![];}export function isValidBIP32Path(a){if(!new RegExp('^m\x5c/(54|74)\x27\x5c/784\x27\x5c/[0-9]+\x27\x5c/[0-9]+\x5c/[0-9]+$')['test'](a))return![];return!![];}export function mnemonicToSeed(a){return a27a(a,'');}export function mnemonicToSeedHex(a){return toHex(mnemonicToSeed(a));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fromBase64,toBase64}from'
|
|
1
|
+
import{fromBase64,toBase64}from'../_deps/bcs/index.js';import{blake2b}from'@noble/hashes/blake2b';import{bytesToHex}from'@noble/hashes/utils';import{bcs}from'../bcs/index.js';import{normalizeWowAddress,WOW_ADDRESS_LENGTH}from'../utils/sui-types.js';import{messageWithIntent}from'./intent.js';import{SIGNATURE_FLAG_TO_SCHEME,SIGNATURE_SCHEME_TO_SIZE}from'./signature-scheme.js';export function bytesEqual(c,d){if(c===d)return!![];if(c['length']!==d['length'])return![];for(let e=0x0;e<c['length'];e++){if(c[e]!==d[e])return![];}return!![];}export class PublicKey{['equals'](a){return bytesEqual(this['toRawBytes'](),a['toRawBytes']());}['toBase64'](){return toBase64(this['toRawBytes']());}['toString'](){throw new Error('`toString`\x20is\x20not\x20implemented\x20on\x20public\x20keys.\x20Use\x20`toBase64()`\x20or\x20`toRawBytes()`\x20instead.');}['toWPublicKey'](){const a=this['toWBytes']();return toBase64(a);}['verifyWithIntent'](a,b,c){const d=messageWithIntent(c,a),e=blake2b(d,{'dkLen':0x20});return this['verify'](e,b);}['verifyPersonalMessage'](a,b){return this['verifyWithIntent'](bcs['byteVector']()['serialize'](a)['toBytes'](),b,'PersonalMessage');}['verifyTransaction'](a,b){return this['verifyWithIntent'](a,b,'TransactionData');}['verifyAddress'](a){return this['toWAddress']()===a;}['toWBytes'](){const a=this['toRawBytes'](),b=new Uint8Array(a['length']+0x1);return b['set']([this['flag']()]),b['set'](a,0x1),b;}['toWAddress'](){return normalizeWowAddress(bytesToHex(blake2b(this['toWBytes'](),{'dkLen':0x20}))['slice'](0x0,WOW_ADDRESS_LENGTH*0x2));}}export function parseSerializedKeypairSignature(a){const b=fromBase64(a),c=SIGNATURE_FLAG_TO_SCHEME[b[0x0]];switch(c){case'MultiSig':case'Falcon512':const d=SIGNATURE_SCHEME_TO_SIZE[c],e=b['slice'](0x1,b['length']-d),f=b['slice'](0x1+e['length']);return{'serializedSignature':a,'signatureScheme':c,'signature':e,'publicKey':f,'bytes':b};default:throw new Error('Unsupported\x20signature\x20scheme');}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fromBase64,toBase64}from'
|
|
1
|
+
import{fromBase64,toBase64}from'../_deps/bcs/index.js';import{bcs}from'../bcs/index.js';import{parseSerializedKeypairSignature}from'./publickey.js';import{SIGNATURE_FLAG_TO_SCHEME,SIGNATURE_SCHEME_TO_FLAG}from'./signature-scheme.js';export function toSerializedSignature({signature:a,signatureScheme:b,publicKey:c}){if(!c)throw new Error('`publicKey`\x20is\x20required');const d=c['toRawBytes'](),e=new Uint8Array(0x1+a['length']+d['length']);return e['set']([SIGNATURE_SCHEME_TO_FLAG[b]]),e['set'](a,0x1),e['set'](d,0x1+a['length']),toBase64(e);}export function parseSerializedSignature(a){const b=fromBase64(a),c=SIGNATURE_FLAG_TO_SCHEME[b[0x0]];switch(c){case'MultiSig':const d=bcs['MultiSig']['parse'](b['slice'](0x1));return{'serializedSignature':a,'signatureScheme':'MultiSig','multisig':d,'bytes':b,'signature':undefined};case'Falcon512':return parseSerializedKeypairSignature(a);default:throw new Error('Unsupported\x20signature\x20scheme');}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Simplify, UnionToIntersection } from "
|
|
1
|
+
import type { Simplify, UnionToIntersection } from "../_deps/utils/index.js";
|
|
2
2
|
import { ClientCache } from "./cache.js";
|
|
3
3
|
import type { Experimental_CoreClient } from "./core.js";
|
|
4
4
|
import type { ClientWithExtensions, Experimental_SuiClientTypes, SuiClientRegistration } from "./types.js";
|
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'@mysten/utils';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=>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 +1 @@
|
|
|
1
|
-
import{fromBase58,toBase64,toHex}from'@mysten/bcs';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/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.');}}
|
package/dist/cjs/jsonRpc/core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fromBase64}from'@mysten/bcs';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'@mysten/utils';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/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 +1 @@
|
|
|
1
|
-
import{parse}from'valibot';import{normalizeWowAddress,normalizeWowObjectId,WOW_TYPE_ARG}from'../utils/index.js';import{ObjectRefSchema}from'../transactions/data/internal.js';import{Inputs}from'../transactions/Inputs.js';import{getPureBcsSchema,isTxContext,normalizedTypeToMoveTypeSignature}from'../transactions/serializer.js';import{chunk}from'
|
|
1
|
+
import{parse}from'valibot';import{normalizeWowAddress,normalizeWowObjectId,WOW_TYPE_ARG}from'../utils/index.js';import{ObjectRefSchema}from'../transactions/data/internal.js';import{Inputs}from'../transactions/Inputs.js';import{getPureBcsSchema,isTxContext,normalizedTypeToMoveTypeSignature}from'../transactions/serializer.js';import{chunk}from'../_deps/utils/index.js';const MAX_OBJECTS_PER_FETCH=0x32,GAS_SAFE_OVERHEAD=0x3e8n,MAX_GAS=0xba43b7400;export function jsonRpcClientResolveTransactionPlugin(a){return async function b(c,d,e){return await normalizeInputs(c,a),await resolveObjectReferences(c,a),!d['onlyTransactionKind']&&(await setGasPrice(c,a),await setGasBudget(c,a),await setGasPayment(c,a)),await e();};}async function setGasPrice(a,b){!a['gasConfig']['price']&&(a['gasConfig']['price']=String(await b['getReferenceGasPrice']()));}async function setGasBudget(a,b){if(a['gasConfig']['budget'])return;const c=await b['dryRunTransactionBlock']({'transactionBlock':a['build']({'overrides':{'gasData':{'budget':String(MAX_GAS),'payment':[]}}})});if(c['effects']['status']['status']!=='success'){const g=new Error('Dry\x20run\x20failed,\x20could\x20not\x20automatically\x20determine\x20a\x20budget:\x20'+c['effects']['status']['error']);g['cause']=c;throw g;}const d=GAS_SAFE_OVERHEAD*BigInt(a['gasConfig']['price']||0x1n),e=BigInt(c['effects']['gasUsed']['computationCost'])+d,f=e+BigInt(c['effects']['gasUsed']['storageCost'])-BigInt(c['effects']['gasUsed']['storageRebate']);a['gasConfig']['budget']=String(f>e?f:e);}async function setGasPayment(a,b){if(!a['gasConfig']['payment']){const c=await b['getCoins']({'owner':a['gasConfig']['owner']||a['sender'],'coinType':WOW_TYPE_ARG}),d=c['data']['filter'](e=>{const f=a['inputs']['find'](g=>{if(g['Object']?.['ImmOrOwnedObject'])return e['coinObjectId']===g['Object']['ImmOrOwnedObject']['objectId'];return![];});return!f;})['map'](e=>({'objectId':e['coinObjectId'],'digest':e['digest'],'version':e['version']}));if(!d['length'])throw new Error('No\x20valid\x20gas\x20coins\x20found\x20for\x20the\x20transaction.');a['gasConfig']['payment']=d['map'](e=>parse(ObjectRefSchema,e));}}async function resolveObjectReferences(a,b){const c=a['inputs']['filter'](k=>{return k['UnresolvedObject']&&!(k['UnresolvedObject']['version']||k['UnresolvedObject']?.['initialSharedVersion']);}),d=[...new Set(c['map'](k=>normalizeWowObjectId(k['UnresolvedObject']['objectId'])))],e=d['length']?chunk(d,MAX_OBJECTS_PER_FETCH):[],f=(await Promise['all'](e['map'](k=>b['multiGetObjects']({'ids':k,'options':{'showOwner':!![]}}))))['flat'](),g=new Map(d['map']((k,l)=>{return[k,f[l]];})),h=Array['from'](g)['filter'](([k,l])=>l['error'])['map'](([k,l])=>JSON['stringify'](l['error']));if(h['length'])throw new Error('The\x20following\x20input\x20objects\x20are\x20invalid:\x20'+h['join'](',\x20'));const i=f['map'](k=>{if(k['error']||!k['data'])throw new Error('Failed\x20to\x20fetch\x20object:\x20'+k['error']);const l=k['data']['owner'],m=l&&typeof l==='object'?'Shared'in l?l['Shared']['initial_shared_version']:'ConsensusAddressOwner'in l?l['ConsensusAddressOwner']['start_version']:null:null;return{'objectId':k['data']['objectId'],'digest':k['data']['digest'],'version':k['data']['version'],'initialSharedVersion':m};}),j=new Map(d['map']((k,l)=>{return[k,i[l]];}));for(const [k,l]of a['inputs']['entries']()){if(!l['UnresolvedObject'])continue;let m;const n=normalizeWowAddress(l['UnresolvedObject']['objectId']),o=j['get'](n);if(l['UnresolvedObject']['initialSharedVersion']??o?.['initialSharedVersion'])m=Inputs['SharedObjectRef']({'objectId':n,'initialSharedVersion':l['UnresolvedObject']['initialSharedVersion']||o?.['initialSharedVersion'],'mutable':l['UnresolvedObject']['mutable']||isUsedAsMutable(a,k)});else isUsedAsReceiving(a,k)&&(m=Inputs['ReceivingRef']({'objectId':n,'digest':l['UnresolvedObject']['digest']??o?.['digest'],'version':l['UnresolvedObject']['version']??o?.['version']}));a['inputs'][a['inputs']['indexOf'](l)]=m??Inputs['ObjectRef']({'objectId':n,'digest':l['UnresolvedObject']['digest']??o?.['digest'],'version':l['UnresolvedObject']['version']??o?.['version']});}}async function normalizeInputs(a,b){const {inputs:c,commands:d}=a,e=[],f=new Set();d['forEach'](h=>{if(h['MoveCall']){if(h['MoveCall']['_argumentTypes'])return;const i=h['MoveCall']['arguments']['map'](k=>{if(k['$kind']==='Input')return a['inputs'][k['Input']];return null;}),j=i['some'](k=>k?.['UnresolvedPure']||k?.['UnresolvedObject']&&typeof k?.['UnresolvedObject']['mutable']!=='boolean');if(j){const k=h['MoveCall']['package']+'::'+h['MoveCall']['module']+'::'+h['MoveCall']['function'];f['add'](k),e['push'](h['MoveCall']);}}});const g=new Map();f['size']>0x0&&await Promise['all']([...f]['map'](async h=>{const [i,j,k]=h['split']('::'),l=await b['getNormalizedMoveFunction']({'package':i,'module':j,'function':k});g['set'](h,l['parameters']['map'](m=>normalizedTypeToMoveTypeSignature(m)));})),e['length']&&await Promise['all'](e['map'](async h=>{const i=g['get'](h['package']+'::'+h['module']+'::'+h['function']);if(!i)return;const j=i['length']>0x0&&isTxContext(i[i['length']-0x1]),k=j?i['slice'](0x0,i['length']-0x1):i;h['_argumentTypes']=k;})),d['forEach'](h=>{if(!h['MoveCall'])return;const i=h['MoveCall'],j=i['package']+'::'+i['module']+'::'+i['function'],k=i['_argumentTypes'];if(!k)return;if(k['length']!==h['MoveCall']['arguments']['length'])throw new Error('Incorrect\x20number\x20of\x20arguments\x20for\x20'+j);k['forEach']((l,m)=>{const n=i['arguments'][m];if(n['$kind']!=='Input')return;const o=c[n['Input']];if(!o['UnresolvedPure']&&!o['UnresolvedObject'])return;const p=o['UnresolvedPure']?.['value']??o['UnresolvedObject']?.['objectId'],q=getPureBcsSchema(l['body']);if(q){n['type']='pure',c[c['indexOf'](o)]=Inputs['Pure'](q['serialize'](p));return;}if(typeof p!=='string')throw new Error('Expect\x20the\x20argument\x20to\x20be\x20an\x20object\x20id\x20string,\x20got\x20'+JSON['stringify'](p,null,0x2));n['type']='object';const r=o['UnresolvedPure']?{'$kind':'UnresolvedObject','UnresolvedObject':{'objectId':p}}:o;c[n['Input']]=r;});});}function isUsedAsMutable(a,b){let c=![];return a['getInputUses'](b,(d,e)=>{if(e['MoveCall']&&e['MoveCall']['_argumentTypes']){const f=e['MoveCall']['arguments']['indexOf'](d);c=e['MoveCall']['_argumentTypes'][f]['ref']!=='&'||c;}(e['$kind']==='MakeMoveVec'||e['$kind']==='MergeCoins'||e['$kind']==='SplitCoins'||e['$kind']==='TransferObjects')&&(c=!![]);}),c;}function isUsedAsReceiving(a,b){let c=![];return a['getInputUses'](b,(d,e)=>{if(e['MoveCall']&&e['MoveCall']['_argumentTypes']){const f=e['MoveCall']['arguments']['indexOf'](d);c=isReceivingType(e['MoveCall']['_argumentTypes'][f])||c;}}),c;}function isReceivingType(a){if(typeof a['body']!=='object'||!('datatype'in a['body']))return![];return a['body']['datatype']['package']==='0x2'&&a['body']['datatype']['module']==='transfer'&&a['body']['datatype']['type']==='Receiving';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fromBase64}from'
|
|
1
|
+
import{fromBase64}from'../../_deps/bcs/index.js';import{falcon512padded}from'@noble/post-quantum/falcon.js';import{bytesEqual,parseSerializedKeypairSignature,PublicKey}from'../../cryptography/publickey.js';import{SIGNATURE_SCHEME_TO_FLAG}from'../../cryptography/signature-scheme.js';const PUBLIC_KEY_SIZE=0x381;export class Falcon512PublicKey extends PublicKey{static ['SIZE']=PUBLIC_KEY_SIZE;['data'];constructor(a){super();if(typeof a==='string')this['data']=fromBase64(a);else a instanceof Uint8Array?this['data']=a:this['data']=Uint8Array['from'](a);if(this['data']['length']!==PUBLIC_KEY_SIZE)throw new Error('Invalid\x20public\x20key\x20input.\x20Expected\x20'+PUBLIC_KEY_SIZE+'\x20bytes,\x20got\x20'+this['data']['length']);}['equals'](a){return super['equals'](a);}['toRawBytes'](){return this['data'];}['flag'](){return SIGNATURE_SCHEME_TO_FLAG['Falcon512'];}async['verify'](a,b){let c;if(typeof b==='string'){const d=parseSerializedKeypairSignature(b);if(d['signatureScheme']!=='Falcon512')throw new Error('Invalid\x20signature\x20scheme');if(!bytesEqual(this['toRawBytes'](),d['publicKey']))throw new Error('Signature\x20does\x20not\x20match\x20public\x20key');c=d['signature'];}else c=b;return falcon512padded['verify'](c,a,this['toRawBytes']());}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fromBase64,toBase64}from'
|
|
1
|
+
import{fromBase64,toBase64}from'../_deps/bcs/index.js';import{blake2b}from'@noble/hashes/blake2b';import{bytesToHex}from'@noble/hashes/utils';import{bcs}from'../bcs/index.js';import{bytesEqual,PublicKey}from'../cryptography/publickey.js';import{SIGNATURE_FLAG_TO_SCHEME,SIGNATURE_SCHEME_TO_FLAG}from'../cryptography/signature-scheme.js';import{parseSerializedSignature}from'../cryptography/signature.js';import{normalizeWowAddress}from'../utils/sui-types.js';import{publicKeyFromRawBytes}from'../verify/index.js';import{MultiSigSigner}from'./signer.js';export const MAX_SIGNER_IN_MULTISIG=0xa;export const MIN_SIGNER_IN_MULTISIG=0x1;export class MultiSigPublicKey extends PublicKey{['rawBytes'];['multisigPublicKey'];['publicKeys'];constructor(a){super();if(typeof a==='string')this['rawBytes']=fromBase64(a),this['multisigPublicKey']=bcs['MultiSigPublicKey']['parse'](this['rawBytes']);else a instanceof Uint8Array?(this['rawBytes']=a,this['multisigPublicKey']=bcs['MultiSigPublicKey']['parse'](this['rawBytes'])):(this['multisigPublicKey']=a,this['rawBytes']=bcs['MultiSigPublicKey']['serialize'](a)['toBytes']());if(this['multisigPublicKey']['threshold']<0x1)throw new Error('Invalid\x20threshold');const b=new Set();this['publicKeys']=this['multisigPublicKey']['pk_map']['map'](({pubKey:d,weight:e})=>{const [f,g]=Object['entries'](d)['filter'](([i])=>i!=='$kind')[0x0],h=Uint8Array['from'](g)['toString']();if(b['has'](h))throw new Error('Multisig\x20does\x20not\x20support\x20duplicate\x20public\x20keys');b['add'](h);if(e<0x1)throw new Error('Invalid\x20weight');return{'publicKey':publicKeyFromRawBytes(f,Uint8Array['from'](g)),'weight':e};});const c=this['publicKeys']['reduce']((d,{weight:e})=>d+e,0x0);if(this['multisigPublicKey']['threshold']>c)throw new Error('Unreachable\x20threshold');if(this['publicKeys']['length']>MAX_SIGNER_IN_MULTISIG)throw new Error('Max\x20number\x20of\x20signers\x20in\x20a\x20multisig\x20is\x20'+MAX_SIGNER_IN_MULTISIG);if(this['publicKeys']['length']<MIN_SIGNER_IN_MULTISIG)throw new Error('Min\x20number\x20of\x20signers\x20in\x20a\x20multisig\x20is\x20'+MIN_SIGNER_IN_MULTISIG);}static['fromPublicKeys']({threshold:a,publicKeys:b}){return new MultiSigPublicKey({'pk_map':b['map'](({publicKey:c,weight:d})=>{const e=SIGNATURE_FLAG_TO_SCHEME[c['flag']()];return{'pubKey':{[e]:c['toRawBytes']()},'weight':d};}),'threshold':a});}['equals'](a){return super['equals'](a);}['toRawBytes'](){return this['rawBytes'];}['getPublicKeys'](){return this['publicKeys'];}['getThreshold'](){return this['multisigPublicKey']['threshold'];}['getSigner'](...a){return new MultiSigSigner(this,a);}['toWAddress'](){const a=0x1+(0x40+0x1)*MAX_SIGNER_IN_MULTISIG+0x2,b=new Uint8Array(a);b['set']([SIGNATURE_SCHEME_TO_FLAG['MultiSig']]),b['set'](bcs['u16']()['serialize'](this['multisigPublicKey']['threshold'])['toBytes'](),0x1);let c=0x3;for(const {publicKey:d,weight:e}of this['publicKeys']){const f=d['toWBytes']();b['set'](f,c),c+=f['length'],b['set']([e],c++);}return normalizeWowAddress(bytesToHex(blake2b(b['slice'](0x0,c),{'dkLen':0x20})));}['flag'](){return SIGNATURE_SCHEME_TO_FLAG['MultiSig'];}async['verify'](a,b){const c=parseSerializedSignature(b);if(c['signatureScheme']!=='MultiSig')throw new Error('Invalid\x20signature\x20scheme');const {multisig:d}=c;let e=0x0;if(!bytesEqual(bcs['MultiSigPublicKey']['serialize'](this['multisigPublicKey'])['toBytes'](),bcs['MultiSigPublicKey']['serialize'](d['multisig_pk'])['toBytes']()))return![];for(const {publicKey:f,weight:g,signature:h}of parsePartialSignatures(d)){if(!await f['verify'](a,h))return![];e+=g;}return e>=this['multisigPublicKey']['threshold'];}['combinePartialSignatures'](a){if(a['length']>MAX_SIGNER_IN_MULTISIG)throw new Error('Max\x20number\x20of\x20signatures\x20in\x20a\x20multisig\x20is\x20'+MAX_SIGNER_IN_MULTISIG);let b=0x0;const c=new Array(a['length']);for(let g=0x0;g<a['length'];g++){const h=parseSerializedSignature(a[g]);if(h['signatureScheme']==='MultiSig')throw new Error('MultiSig\x20is\x20not\x20supported\x20inside\x20MultiSig');const k=h['publicKey'];c[g]={[h['signatureScheme']]:h['signature']};let l;for(let m=0x0;m<this['publicKeys']['length'];m++){if(bytesEqual(k,this['publicKeys'][m]['publicKey']['toRawBytes']())){if(b&0x1<<m)throw new Error('Received\x20multiple\x20signatures\x20from\x20the\x20same\x20public\x20key');l=m;break;}}if(l===undefined)throw new Error('Received\x20signature\x20from\x20unknown\x20public\x20key');b|=0x1<<l;}const d={'sigs':c,'bitmap':b,'multisig_pk':this['multisigPublicKey']},e=bcs['MultiSig']['serialize'](d,{'maxSize':0x2000})['toBytes'](),f=new Uint8Array(e['length']+0x1);return f['set']([SIGNATURE_SCHEME_TO_FLAG['MultiSig']]),f['set'](e,0x1),toBase64(f);}}export function parsePartialSignatures(a){const b=new Array(a['sigs']['length']);for(let c=0x0;c<a['sigs']['length'];c++){const [d,e]=Object['entries'](a['sigs'][c])['filter'](([l])=>l!=='$kind')[0x0],f=asIndices(a['bitmap']),g=f[c],h=a['multisig_pk']['pk_map'][g],j=Uint8Array['from'](Object['values'](h['pubKey'])[0x0]);if(d==='MultiSig')throw new Error('MultiSig\x20is\x20not\x20supported\x20inside\x20MultiSig');const k=publicKeyFromRawBytes(d,j);b[c]={'signatureScheme':d,'signature':Uint8Array['from'](e),'publicKey':k,'weight':h['weight']};}return b;}function asIndices(a){if(a<0x0||a>0x400)throw new Error('Invalid\x20bitmap');const b=[];for(let c=0x0;c<0xa;c++){(a&0x1<<c)!==0x0&&b['push'](c);}return Uint8Array['from'](b);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{toBase64}from'
|
|
1
|
+
import{toBase64}from'../_deps/bcs/index.js';import{Signer}from'../cryptography/index.js';export class MultiSigSigner extends Signer{#pubkey;#signers;constructor(a,b=[]){super(),this.#pubkey=a,this.#signers=b;const c=new Set();let d=0x0;const e=a['getPublicKeys']()['map'](({weight:f,publicKey:g})=>({'weight':f,'address':g['toWAddress']()}));for(const f of b){const g=f['toWAddress']();if(c['has'](g))throw new Error('Can\x27t\x20create\x20MultiSigSigner\x20with\x20duplicate\x20signers');c['add'](g);const h=e['find'](i=>i['address']===g)?.['weight'];if(!h)throw new Error('Signer\x20'+g+'\x20is\x20not\x20part\x20of\x20the\x20MultiSig\x20public\x20key');d+=h;}if(d<a['getThreshold']())throw new Error('Combined\x20weight\x20of\x20signers\x20is\x20less\x20than\x20threshold');}['getKeyScheme'](){return'MultiSig';}['getPublicKey'](){return this.#pubkey;}['sign'](a){throw new Error('MultiSigSigner\x20does\x20not\x20support\x20signing\x20directly.\x20Use\x20signTransaction\x20or\x20signPersonalMessage\x20instead');}['signData'](a){throw new Error('MultiSigSigner\x20does\x20not\x20support\x20signing\x20directly.\x20Use\x20signTransaction\x20or\x20signPersonalMessage\x20instead');}async['signTransaction'](a){const b=this.#pubkey['combinePartialSignatures'](await Promise['all'](this.#signers['map'](async c=>(await c['signTransaction'](a))['signature'])));return{'signature':b,'bytes':toBase64(a)};}async['signPersonalMessage'](a){const b=this.#pubkey['combinePartialSignatures'](await Promise['all'](this.#signers['map'](async c=>(await c['signPersonalMessage'](a))['signature'])));return{'signature':b,'bytes':toBase64(a)};}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{toBase64}from'
|
|
1
|
+
import{toBase64}from'../_deps/bcs/index.js';import{parse}from'valibot';import{normalizeWowObjectId}from'../utils/sui-types.js';import{ArgumentSchema}from'./data/internal.js';export var UpgradePolicy;(function(a){a[a['COMPATIBLE']=0x0]='COMPATIBLE',a[a['ADDITIVE']=0x80]='ADDITIVE',a[a['DEP_ONLY']=0xc0]='DEP_ONLY';}(UpgradePolicy||(UpgradePolicy={})));export const Commands={'MoveCall'(a){const [b,c='',d='']='target'in a?a['target']['split']('::'):[a['package'],a['module'],a['function']];return{'$kind':'MoveCall','MoveCall':{'package':b,'module':c,'function':d,'typeArguments':a['typeArguments']??[],'arguments':a['arguments']??[]}};},'TransferObjects'(a,b){return{'$kind':'TransferObjects','TransferObjects':{'objects':a['map'](c=>parse(ArgumentSchema,c)),'address':parse(ArgumentSchema,b)}};},'SplitCoins'(a,b){return{'$kind':'SplitCoins','SplitCoins':{'coin':parse(ArgumentSchema,a),'amounts':b['map'](c=>parse(ArgumentSchema,c))}};},'MergeCoins'(a,b){return{'$kind':'MergeCoins','MergeCoins':{'destination':parse(ArgumentSchema,a),'sources':b['map'](c=>parse(ArgumentSchema,c))}};},'Publish'({modules:a,dependencies:b}){return{'$kind':'Publish','Publish':{'modules':a['map'](c=>typeof c==='string'?c:toBase64(new Uint8Array(c))),'dependencies':b['map'](c=>normalizeWowObjectId(c))}};},'Upgrade'({modules:a,dependencies:b,package:c,ticket:d}){return{'$kind':'Upgrade','Upgrade':{'modules':a['map'](e=>typeof e==='string'?e:toBase64(new Uint8Array(e))),'dependencies':b['map'](e=>normalizeWowObjectId(e)),'package':c,'ticket':parse(ArgumentSchema,d)}};},'MakeMoveVec'({type:a,elements:b}){return{'$kind':'MakeMoveVec','MakeMoveVec':{'type':a??null,'elements':b['map'](c=>parse(ArgumentSchema,c))}};},'Intent'({name:a,inputs:inputs={},data:data={}}){return{'$kind':'$Intent','$Intent':{'name':a,'inputs':Object['fromEntries'](Object['entries'](inputs)['map'](([b,c])=>[b,Array['isArray'](c)?c['map'](d=>parse(ArgumentSchema,d)):parse(ArgumentSchema,c)])),'data':data}};}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SerializedBcs } from "
|
|
1
|
+
import type { SerializedBcs } from "../_deps/bcs/index.js";
|
|
2
2
|
import type { CallArg, ObjectRef } from "./data/internal.js";
|
|
3
3
|
declare function Pure(data: Uint8Array | SerializedBcs<any>): Extract<CallArg, {
|
|
4
4
|
Pure: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{toBase64}from'
|
|
1
|
+
import{toBase64}from'../_deps/bcs/index.js';import{normalizeWowAddress}from'../utils/sui-types.js';function Pure(a){return{'$kind':'Pure','Pure':{'bytes':a instanceof Uint8Array?toBase64(a):a['toBase64']()}};}export const Inputs={'Pure':Pure,'ObjectRef'({objectId:a,digest:b,version:c}){return{'$kind':'Object','Object':{'$kind':'ImmOrOwnedObject','ImmOrOwnedObject':{'digest':b,'version':c,'objectId':normalizeWowAddress(a)}}};},'SharedObjectRef'({objectId:a,mutable:b,initialSharedVersion:c}){return{'$kind':'Object','Object':{'$kind':'SharedObject','SharedObject':{'mutable':b,'initialSharedVersion':c,'objectId':normalizeWowAddress(a)}}};},'ReceivingRef'({objectId:a,digest:b,version:c}){return{'$kind':'Object','Object':{'$kind':'Receiving','Receiving':{'digest':b,'version':c,'objectId':normalizeWowAddress(a)}}};}};
|