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
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getFullnodeUrl}from'../../client/network.js';import{SuiClient}from'../../client/index.js';import{Cache,CachePrefix}from'../local/cache.js';import{Config}from'../local/config.js';import{LocalMark}from'../local/local.js';import{W_ERROR,WErrors}from'../exception.js';import a188a from'lodash';import{restoreNodeFromOutput}from'../call/util.js';import{GetAccountOrMark_Address}from'../local/index.js';import{object_name_from_type,PackageAddress,WitnessType,ObjectType,ENTITY_LINKER_ADDRESS,ENTITY_REGISTRAR_ADDRESS}from'../common.js';import{bcsBytesToValue,parseRecipient,uint2address}from'../util.js';export{ObjectType};export const MAX_OBJECTS_PER_QUERY=0x32;export const WitnessSourceType=a=>{switch(a){case WitnessType['TypeArbArbitration']:case WitnessType['TypeArbOrder']:case WitnessType['TypeArbService']:case WitnessType['TypeArbProgress']:case WitnessType['TypeArbMachine']:return ObjectType['Arb'];case WitnessType['TypeOrderMachine']:case WitnessType['TypeOrderService']:case WitnessType['TypeOrderProgress']:return ObjectType['Order'];case WitnessType['TypeProgressMachine']:return ObjectType['Progress'];}};export const WitnessTargetType=a=>{switch(a){case WitnessType['TypeArbArbitration']:return ObjectType['Arbitration'];case WitnessType['TypeOrderMachine']:case WitnessType['TypeArbMachine']:case WitnessType['TypeProgressMachine']:return ObjectType['Machine'];case WitnessType['TypeOrderService']:case WitnessType['TypeArbService']:return ObjectType['Service'];case WitnessType['TypeOrderProgress']:case WitnessType['TypeArbProgress']:return ObjectType['Progress'];case WitnessType['TypeArbOrder']:return ObjectType['Order'];}};export const OBJECT_TYPE_DEFINITIONS={[ObjectType['Permission']]:{'name':ObjectType['Permission'],'moveValue':0x0,'moveName':'Permission'},[ObjectType['Repository']]:{'name':ObjectType['Repository'],'moveValue':0x1,'moveName':'Repository'},[ObjectType['Arb']]:{'name':ObjectType['Arb'],'moveValue':0x2,'moveName':'Arb'},[ObjectType['Arbitration']]:{'name':ObjectType['Arbitration'],'moveValue':0x3,'moveName':'Arbitration'},[ObjectType['Service']]:{'name':ObjectType['Service'],'moveValue':0x4,'moveName':'Service'},[ObjectType['Machine']]:{'name':ObjectType['Machine'],'moveValue':0x5,'moveName':'Machine'},[ObjectType['Order']]:{'name':ObjectType['Order'],'moveValue':0x6,'moveName':'Order'},[ObjectType['Progress']]:{'name':ObjectType['Progress'],'moveValue':0x7,'moveName':'Progress'},[ObjectType['Payment']]:{'name':ObjectType['Payment'],'moveValue':0x8,'moveName':'Payment'},[ObjectType['Treasury']]:{'name':ObjectType['Treasury'],'moveValue':0x9,'moveName':'Treasury'},[ObjectType['Guard']]:{'name':ObjectType['Guard'],'moveValue':0xa,'moveName':'Guard'},[ObjectType['Demand']]:{'name':ObjectType['Demand'],'moveValue':0xb,'moveName':'Demand'},[ObjectType['Passport']]:{'name':ObjectType['Passport'],'moveValue':0xc,'moveName':'Passport'},[ObjectType['Allocation']]:{'name':ObjectType['Allocation'],'moveValue':0xd,'moveName':'Allocation'},[ObjectType['Resource']]:{'name':ObjectType['Resource'],'moveValue':0xe,'moveName':'Resource'},[ObjectType['Reward']]:{'name':ObjectType['Reward'],'moveValue':0xf,'moveName':'Reward'},[ObjectType['Discount']]:{'name':ObjectType['Discount'],'moveValue':0x10,'moveName':'Discount'},[ObjectType['EntityRegistrar']]:{'name':ObjectType['EntityRegistrar'],'moveValue':0x11,'moveName':'EntityRegistrar'},[ObjectType['EntityLinker']]:{'name':ObjectType['EntityLinker'],'moveValue':0x12,'moveName':'EntityLinker'},[ObjectType['Proof']]:{'name':ObjectType['Proof'],'moveValue':0x13,'moveName':'Proof'},[ObjectType['Contact']]:{'name':ObjectType['Contact'],'moveValue':0x14,'moveName':'Contact'},[ObjectType['WReceivedObject']]:{'name':ObjectType['WReceivedObject'],'moveValue':0x15,'moveName':'WReceivedObject'},[ObjectType['TableItem_ProgressHistory']]:{'name':ObjectType['TableItem_ProgressHistory'],'moveValue':0x16,'moveName':'TableItem_ProgressHistory'},[ObjectType['TableItem_PermissionPerm']]:{'name':ObjectType['TableItem_PermissionPerm'],'moveValue':0x17,'moveName':'TableItem_PermissionPerm'},[ObjectType['TableItem_DemandPresenter']]:{'name':ObjectType['TableItem_DemandPresenter'],'moveValue':0x18,'moveName':'TableItem_DemandPresenter'},[ObjectType['TableItem_MachineNode']]:{'name':ObjectType['TableItem_MachineNode'],'moveValue':0x19,'moveName':'TableItem_MachineNode'},[ObjectType['TableItem_TreasuryHistory']]:{'name':ObjectType['TableItem_TreasuryHistory'],'moveValue':0x1a,'moveName':'TableItem_TreasuryHistory'},[ObjectType['TableItem_RepositoryData']]:{'name':ObjectType['TableItem_RepositoryData'],'moveValue':0x1b,'moveName':'TableItem_RepositoryData'},[ObjectType['TableItem_RewardRecord']]:{'name':ObjectType['TableItem_RewardRecord'],'moveValue':0x1c,'moveName':'TableItem_RewardRecord'},[ObjectType['TableItem_AddressMark']]:{'name':ObjectType['TableItem_AddressMark'],'moveValue':0x1d,'moveName':'TableItem_AddressMark'},[ObjectType['TableItem_EntityLinker']]:{'name':ObjectType['TableItem_EntityLinker'],'moveValue':0x1e,'moveName':'TableItem_EntityLinker'},[ObjectType['TableItem_EntityRegistrar']]:{'name':ObjectType['TableItem_EntityRegistrar'],'moveValue':0x1f,'moveName':'TableItem_EntityRegistrar'}};export const objectTypeToNumber=Object['fromEntries'](Object['entries'](OBJECT_TYPE_DEFINITIONS)['map'](([a,b])=>[a,b['moveValue']]));export const numberToObjectType=Object['fromEntries'](Object['entries'](OBJECT_TYPE_DEFINITIONS)['map'](([a,b])=>[b['moveValue'],a]));export function getObjectTypeFromNumber(a){return numberToObjectType[a];}export function getNumberFromObjectType(a){return objectTypeToNumber[a];}export function getObjectTypeDefinition(a){return OBJECT_TYPE_DEFINITIONS[a];}export function getObjectTypeDefinitionFromNumber(a){const b=numberToObjectType[a];return b?OBJECT_TYPE_DEFINITIONS[b]:undefined;}export function getObjectTypeFromMoveName(a){return Object['values'](OBJECT_TYPE_DEFINITIONS)['find'](b=>b['moveName']===a)?.['name'];}export function getMoveNameFromObjectType(a){return OBJECT_TYPE_DEFINITIONS[a]?.['moveName'];}export function getMoveNameFromNumber(a){return getObjectTypeDefinitionFromNumber(a)?.['moveName'];}export function getNumberFromMoveName(a){return Object['values'](OBJECT_TYPE_DEFINITIONS)['find'](b=>b['moveName']===a)?.['moveValue'];}export function getObjectTypesFromNumbers(a){return a['map'](getObjectTypeFromNumber);}export function getNumbersFromObjectTypes(a){return a['map'](getNumberFromObjectType);}export var AmountType;(function(a){a[a['GuardU64Identifier']=0x0]='GuardU64Identifier',a[a['Fixed']=0x1]='Fixed';}(AmountType||(AmountType={})));export var ArbStatus;(function(a){a[a['Principal_confirming']=0x0]='Principal_confirming',a[a['Arbitrator_confirming']=0x1]='Arbitrator_confirming',a[a['Voting']=0x2]='Voting',a[a['Arbitrated']=0x3]='Arbitrated',a[a['Objectionable']=0x4]='Objectionable',a[a['Finished']=0x5]='Finished',a[a['Withdrawn']=0x6]='Withdrawn';}(ArbStatus||(ArbStatus={})));export var DiscountType;(function(a){a[a['RATES']=0x0]='RATES',a[a['FIXED']=0x1]='FIXED';}(DiscountType||(DiscountType={})));export var TreasuryOp;(function(a){a[a['Withdraw']=0x0]='Withdraw',a[a['Deposit']=0x1]='Deposit',a[a['Receive']=0x2]='Receive';}(TreasuryOp||(TreasuryOp={})));export var IdFrom;(function(a){a[a['None']=0x0]='None',a[a['Clock']=0x1]='Clock',a[a['Signer']=0x2]='Signer';}(IdFrom||(IdFrom={})));export const parseIdFrom=a=>{if(typeof a==='number'){if(a>=0x0&&a<=0x2)return a;throw new Error('Invalid\x20IdFrom\x20number:\x20'+a+'.\x20Valid\x20range:\x200-2');}const b=Object['keys'](IdFrom)['filter'](e=>isNaN(Number(e))),c=a['toLowerCase'](),d=b['find'](e=>e['toLowerCase']()===c);if(d===undefined)throw new Error('Invalid\x20IdFrom\x20string:\x20\x22'+a+'\x22.\x20Valid\x20values:\x20'+b['join'](',\x20'));return IdFrom[d];};export const idFromToString=a=>{return IdFrom[a];};export const isValidIdFromInput=a=>{if(typeof a==='number')return a>=0x0&&a<=0x2;if(typeof a==='string'){const b=a['toUpperCase'](),c=IdFrom[b];return typeof c==='number';}return![];};export var AllocationMode;(function(a){a[a['Amount']=0x0]='Amount',a[a['Rate']=0x1]='Rate',a[a['Surplus']=0x2]='Surplus';}(AllocationMode||(AllocationMode={})));export const query_objects_json=async a=>{try{const b=JSON['parse'](a);return JSON['stringify']({'data':await query_objects(b)});}catch(c){return JSON['stringify']({'error':c?.['toString']()});}};export const query_table_json=async a=>{try{const b=JSON['parse'](a);return JSON['stringify']({'data':await query_table(b)});}catch(c){return JSON['stringify']({'error':c?.['toString']()});}};export const query_objects=async a=>{const b=await Config['Instance']()['network_get'](a['network']),c=a188a['uniq'](a['objects']);c['length']>MAX_OBJECTS_PER_QUERY&&W_ERROR(WErrors['MaxObjectsPerQuery'],'max\x20'+MAX_OBJECTS_PER_QUERY);const d=await LocalMark['Instance']()['get_many_address'](c),e=new Map(),f=[];c['forEach']((k,l)=>{const m=d[l];m&&(e['set'](m,k),f['push'](m));});if(f['length']===0x0)return{'objects':[]};const g=CachePrefix['object']+':'+b,h=f,i=await Cache['read_many'](g,h,async(k,l)=>{const m=new SuiClient({'url':getFullnodeUrl(b)}),n=await m['multiGetObjects']({'ids':[...l],'options':{'showContent':!![],'showOwner':!![],'showPreviousTransaction':!![]}});return n['map'](o=>{const p=o?.['data'];if(!p)return undefined;const q=p?.['type']??p?.['content']?.['type']??undefined,r=q?object_name_from_type(q):undefined,s=Cache['DefaultExpireTime'](r==='Guard'||r==='Payment'||r==='Passport'),t=data2object(p);return{'expire':s,'data':t};})['filter'](o=>o!==undefined);},a['no_cache']),j=i['map'](k=>{const l=k['data'];return l['cache_expire']=k['expire'],l['query_name']=e['get'](l['object'])??l['object'],l;});return{'objects':j};};export const query_personal=async a=>{const b=a['account']??'',[c,d]=await Promise['all']([Config['Instance']()['network_get'](a['network']),GetAccountOrMark_Address({'name_or_address':b})]);!d&&W_ERROR(WErrors['InvalidParam'],'query_personal.account\x20'+b+'\x20not\x20found');const [e,f]=await Promise['all']([queryTableItem_EntityRegistrar({'address':{'name_or_address':b},'no_cache':a['no_cache'],'network':c})['catch'](()=>undefined),queryTableItem_EntityLinker({'address':{'name_or_address':b},'no_cache':a['no_cache'],'network':c})['catch'](()=>undefined)]);if(e)return{'address':d,'info':e?.['records']??[],'description':e?.['description']??'','referrer':e?.['referrer']??null,'mark_object':e?.['mark_object']??null,'details':f?.['votes']??[],'like':f?.['votes']?.['filter'](g=>g['like'])['length']??0x0,'dislike':f?.['votes']?.['filter'](g=>g['dislike'])['length']??0x0,'active_tx':e?.['previousTransaction']??null,'passive_tx':f?.['previousTransaction']??null,'time':e?.['time']??0x0};return undefined;};export const query_table=async a=>{const b=await Config['Instance']()['network_get'](a['network']),c=await LocalMark['Instance']()['get_address'](a['parent']);!c&&W_ERROR(WErrors['InvalidParam'],'query_table.query.parent\x20'+a['parent']+'\x20not\x20found');a['parent']=c;const e=await Cache['read']([CachePrefix['table'],a['parent'],a['cursor']??'',a['limit']?.['toString']()??'',b],async()=>{const f=new SuiClient({'url':getFullnodeUrl(b)}),g=await f['getDynamicFields']({'parentId':a['parent'],'cursor':a['cursor'],'limit':a['limit']});(!g?.['data']?.['length']||g?.['data']?.['length']===0x0)&&W_ERROR(WErrors['Fail'],'query_table.query.parent\x20'+a['parent']+'\x20failed');const h={'items':g?.['data']?.['map'](i=>{return{'object':i['objectId'],'type':i['type'],'version':i['version'],'key':{'type':i['name']['type'],'value':i['name']['value']}};}),'nextCursor':g['nextCursor'],'hasNextPage':g['hasNextPage']};return{'expire':Cache['DefaultExpireTime'](),'data':h};},a['no_cache']);if(e){const f=e['data'];return f['cache_expire']=e['expire'],f;}return undefined;};const query_tableItem=async a=>{const b=await Config['Instance']()['network_get'](a['network']);if(a['parent']!==ENTITY_REGISTRAR_ADDRESS&&a['parent']!==ENTITY_LINKER_ADDRESS){const e=await LocalMark['Instance']()['get_address'](a['parent']);!e&&W_ERROR(WErrors['InvalidParam'],'query_tableItem.query.parent\x20'+a['parent']+'\x20not\x20found'),a['parent']=e;}const c=[CachePrefix['table'],a['parent'],JSON['stringify'](a['key']['value'])],d=await Cache['read'](c,async()=>{const f=new SuiClient({'url':getFullnodeUrl(b)}),g=await f['getDynamicFieldObject']({'parentId':a['parent'],'name':{'type':a['key']['type'],'value':a['key']['value']}});!g?.['data']&&W_ERROR(WErrors['Fail'],'query_tableItem('+a['key']['value']+'):\x20'+JSON['stringify'](g)+'\x20');const h=data2object(g?.['data']);return{'expire':Cache['DefaultExpireTime'](),'data':h};},a['no_cache']);if(d)return d['data']['cache_expire']=d['expire'],d['data'];return undefined;},tableItemQuery_byString=async a=>{const b=typeof a['parent']==='string'?a['parent']:a['parent']['object'];return await query_tableItem({'parent':b,'key':{'type':'0x1::string::String','value':a['key']},'no_cache':a['no_cache'],'network':a['network']});};export const queryTableItem_RepositoryData=async a=>{const b=typeof a['parent']==='string'?a['parent']:a['parent']?.['object'];let c;if(typeof a['entity']==='bigint'||typeof a['entity']==='number')c=uint2address(a['entity']);else{const e=await GetAccountOrMark_Address(a['entity']);if(e)c=e;else return W_ERROR(WErrors['InvalidParam'],'tableItem_RepositoryData.entity'),undefined;}const d=await query_tableItem({'parent':b,'key':{'type':PackageAddress+'::repository::DataKey','value':{'id':c,'key':a['name']}},'no_cache':a['no_cache'],'network':a['network']});if(d?.['type']!=='TableItem_RepositoryData')return undefined;return d;};const tableItem_byAddress=async a=>{const b=typeof a['parent']==='string'?a['parent']:a['parent']?.['object'];let c;if(typeof a['address']==='string')c=a['address'];else{const d=await GetAccountOrMark_Address(a['address']);if(!d)return W_ERROR(WErrors['InvalidParam'],'queryTableItem_byAddress.address\x20'+a['address']+'\x20not\x20found'),undefined;c=d;}return await query_tableItem({'parent':b,'key':{'type':'address','value':c},'no_cache':a['no_cache'],'network':a['network']});};export const queryTableItem_PermissionPerm=async a=>{const b=await tableItem_byAddress(a);if(b?.['type']!=='TableItem_PermissionPerm')return undefined;return b;};export const queryTableItem_EntityRegistrar=async a=>{const b=await tableItem_byAddress({'parent':ENTITY_REGISTRAR_ADDRESS,'address':a['address'],'no_cache':a['no_cache'],'network':a['network']});if(b?.['type']!=='TableItem_EntityRegistrar')return undefined;return b;};export const queryTableItem_EntityLinker=async a=>{const b=await tableItem_byAddress({'parent':ENTITY_LINKER_ADDRESS,'address':a['address'],'no_cache':a['no_cache'],'network':a['network']});if(b?.['type']!=='TableItem_EntityLinker')return undefined;return b;};export const queryTableItem_RewardRecord=async a=>{const b=await tableItem_byAddress(a);if(b?.['type']!=='TableItem_RewardRecord')return undefined;return b;};export const queryTableItem_DemandPresenter=async a=>{const b=await tableItem_byAddress(a);if(b?.['type']!=='TableItem_DemandPresenter')return undefined;return b;};export const queryTableItem_TreasuryHistory=async a=>{const b=await tableItem_byAddress(a);if(b?.['type']!=='TableItem_TreasuryHistory')return undefined;return b;};export const queryTableItem_MachineNode=async a=>{const b=await tableItemQuery_byString(a);if(b?.['type']!=='TableItem_MachineNode')return undefined;return b;};export const queryTableItem_AddressMark=async a=>{const b=await tableItem_byAddress(a);if(b?.['type']!=='TableItem_AddressMark')return undefined;return b;};export const queryTableItem_ProgressHistory=async a=>{const b=typeof a['parent']==='string'?a['parent']:a['parent']['object'],c=await query_tableItem({'parent':b,'key':{'type':'u64','value':a['u64']['toString']()},'no_cache':a['no_cache'],'network':a['network']});if(c?.['type']!=='TableItem_ProgressHistory')return undefined;return c;};export function raw2type(a){if(!a)return undefined;const b=object_name_from_type(a);if(b==='Resource')return ObjectType['Resource'];else{if(b==='CoinWrapper')return ObjectType['WReceivedObject'];else{if(Object['values'](ObjectType)['includes'](b))return b;}}const c=a?.['indexOf']('0x2::dynamic_field::Field<');if(c===0x0){const d=a?.['substring']('0x2::dynamic_field::Field<'['length']);if(d){if(d['includes']('::demand::ServiceInfo>'))return ObjectType['TableItem_DemandPresenter'];else{if(d['includes']('::machine::NodePair>>>'))return ObjectType['TableItem_MachineNode'];else{if(d['includes']('::progress::History>'))return ObjectType['TableItem_ProgressHistory'];else{if(d['includes']('::reward::RecipientRecord>'))return ObjectType['TableItem_RewardRecord'];else{if(d['includes']('::treasury::Record>'))return ObjectType['TableItem_TreasuryHistory'];else{if(d['includes']('::registrar::Votes>'))return ObjectType['TableItem_EntityLinker'];else{if(d['indexOf']('address')<d['indexOf']('0x2::parent_linked_table::Node<address,\x20vector<u16>>>'))return ObjectType['TableItem_PermissionPerm'];else{if(d['includes']('::repository::DataKey'))return ObjectType['TableItem_RepositoryData'];else{if(d['includes']('::registrar::AddressInfo>'))return ObjectType['TableItem_EntityRegistrar'];else{if(d['includes']('::resource::AddressTag>'))return ObjectType['TableItem_AddressMark'];}}}}}}}}}}}return undefined;}export function data2object(a){const b=a?.['content']?.['fields'],c=a?.['objectId']??b?.['id']?.['id']??undefined,d=a?.['type']??a?.['content']?.['type']??undefined,e=a?.['version']??undefined,f=a?.['owner']??undefined,g=raw2type(d);switch(g){case'Permission':return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'builder':b?.['owner']??'','admin':b?.['admin'],'description':b?.['description']??'','entity_count':parseInt(b?.['table']?.['fields']?.['size']),'perm_remark':b?.['remark']?.['map'](h=>{return{'index':parseInt(h?.['fields']?.['index']),'remark':h?.['fields']?.['remark']};}),'um':b?.['um']??null};case'TableItem_PermissionPerm':return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'address':b?.['name'],'perm':b?.['value']?.['fields']?.['value']};case'Guard':{console['dir'](b,{'depth':null,'colors':!![]});const h=b?.['validated']?.['map'](l=>{return{'identifier':parseInt(l?.['fields']?.['identifier']),'object_type':numberToObjectType[l?.['fields']?.['object_type']]};}),i=b?.['table']?.['map'](l=>{const m=parseInt(l?.['fields']?.['identifier']),n=bcsBytesToValue(Uint8Array['from'](l?.['fields']?.['value']));return{'identifier':m,'b_submission':l?.['fields']?.['b_submission'],'value_type':l?.['fields']?.['value'][0x0],'value':n,'name':l?.['fields']?.['name'],'object_type':h['find'](o=>o['identifier']===m)?.['object_type']};}),j=restoreNodeFromOutput(Uint8Array['from'](b?.['input']),i),k=i['filter'](l=>!j['autoGeneratedIdentifiers']['includes'](l['identifier']));return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description']??'','table':k,'input':b?.['input'],'root':j['root'],'rep_quote':j['rep_quote'],'relies':b?.['relies'],'relies_logic_and':b?.['relies_logic_and'],'rep':b?.['rep']};}case'Passport':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'info':b?.['guard']?.['map'](l=>{return{'guard':l['fields']['guard'],'result':l['fields']['result'],'impack':l['fields']['impack'],'relies':l['fields']['relies'],'relies_logic_and':l['fields']['relies_logic_and'],'submission':l['fields']['submission']['map'](m=>{return{'identifier':m['fields']['identifier'],'value_type':m['fields']['value'][0x0],'value':bcsBytesToValue(Uint8Array['from'](m['fields']['value']))};})};}),'result':b?.['result'],'tx_hash':b?.['tx_hash'],'impack_guard':b?.['impack'],'time':b?.['time'],'signer':b?.['signer'],'has_verified':b?.['has_verified']};}case'Allocation':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['allocators']?.['fields']?.['description']??'','threshold':b?.['allocators']?.['fields']?.['threshold'],'balance':b?.['balance'],'payment_info':b?.['payment_info']?.['fields'],'payment':b?.['payment']??[],'allocators':b?.['allocators']?.['fields']?.['allocators']?.['map'](l=>{return{'guard':l['fields']['guard'],'fix':l['fields']['fix'],'max':l['fields']['max']??undefined,'sharing':l['fields']['sharing']['map'](m=>{let n;const o=m['fields']['who'];(!o||!o['variant'])&&W_ERROR(WErrors['ParseObjectContentFailed'],'Invalid\x20who\x20data:\x20'+JSON['stringify'](o));if(o['variant']==='GuardIdentifier'&&o['fields'])n={'GuardIdentifier':Number(o['fields']['pos0'])};else{if(o['variant']==='Entity'&&o['fields'])n={'Entity':{'name_or_address':o['fields']['pos0']}};else o['variant']==='Signer'?n={'Signer':null}:W_ERROR(WErrors['ParseObjectContentFailed'],'Invalid\x20who\x20variant:\x20'+o['variant']);}return{'who':n,'sharing':m['fields']['sharing'],'mode':m['fields']['mode']};})};})};}case'Payment':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'amount':b?.['amount'],'time':b?.['time'],'from_object':b?.['from_object'],'signer':b?.['signer'],'info':b?.['info']?.['fields'],'record':b?.['record']?.['map'](l=>{return{'recipient':l['fields']['recipient'],'amount':l['fields']['amount']};})};}case'Contact':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'ims':b?.['ims']['map'](l=>{return{'description':l['fields']['description'],'at':l['fields']['at'],'join_time':l['fields']['join_time'],'status':l['fields']['status']};}),'location':b?.['location'],'permission':b?.['permission']};}case'Repository':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'policies':b?.['policies']['map'](l=>{return{'description':l['fields']['description'],'id_from':l['fields']['id_from'],'name':l['fields']['name'],'quote_guard':l['fields']['quote_guard'],'value_type':l['fields']['value_type'],'write_guard':l['fields']['write_guard']};}),'rewards':b?.['rewards'],'um':b?.['um']??null,'permission':b?.['permission']};}case'Demand':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'location':b?.['location'],'rewards':b?.['rewards'],'guards':b?.['guards']['map'](l=>{return{'guard':l['fields']['guard'],'service_identifier':l['fields']['service_identifier']};}),'presenters_count':b?.['presenters']?.['fields']?.['size'],'um':b?.['um']??null,'permission':b?.['permission']};}case'Machine':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'node_count':b?.['nodes']?.['fields']?.['size'],'consensus_repositories':b?.['consensus_repositories'],'bPaused':b?.['bPaused'],'bPublished':b?.['bPublished'],'um':b?.['um']??null,'permission':b?.['permission']};}case'Order':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'items':b?.['items']['map'](l=>{return{'name':l['fields']['item'],'price':l['fields']['price'],'quantity':l['fields']['quantity'],'wip_hash':l['fields']['wip_hash']};}),'discount':b?.['discount'],'progress':b?.['progress'],'machine':b?.['machine'],'amount':b?.['amount'],'builder':b?.['owner'],'service':b?.['service'],'dispute':b?.['dispute'],'agent':b?.['agent'],'allocation':b?.['allocation'],'claimed_by':b?.['claimed_by'],'required_info':b?.['required_info'],'time':b?.['time']};}case'Progress':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'machine':b?.['machine'],'context_repositories':b?.['context_repositories'],'current':b?.['current'],'task':b?.['task'],'namedOperator':b?.['namedOperator']['map'](l=>{return{'name':l['fields']['name'],'operators':l['fields']['operators']};}),'session':b?.['session']['map'](l=>{return{'next_node':l['fields']['next_node'],'forwards':l['fields']['forwards']['map'](m=>{return{'forward':m['fields']['forward'],'who':m['fields']['who'],'retained_submission':m['fields']['retained_submission']['map'](n=>{return{'identifier':n['fields']['identifier'],'value_type':n['fields']['value_type'],'value':bcsBytesToValue(Uint8Array['from'](n['fields']['value']))};}),'msg':m['fields']['msg'],'accomplished':m['fields']['accomplished'],'time':m['fields']['time']};}),'weights':l['fields']['weights'],'threshold':l['fields']['threshold']};}),'history_count':b?.['history']?.['fields']?.['contents']?.['fields']?.['size'],'current_time':b?.['current_time']};}case'Reward':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'guards':b?.['guards']['map'](l=>{const m=l['fields']['amount']['variant']==='Fixed'?AmountType['Fixed']:AmountType['GuardU64Identifier'],n=parseRecipient(l['fields']['recipient']);return{'guard':l['fields']['guard'],'expiration_time':l['fields']['expiration_time'],'amount':{'type':m,'value':l['fields']['amount']['fields']?.['pos0']},'recipient':n,'store_from_id':l['fields']['store_from_id']??null};}),'balance':b?.['balance'],'guard_not_added_expiration_time':b?.['guard_not_added_expiration_time'],'record_count':b?.['record']?.['fields']?.['size'],'um':b?.['um']??null,'permission':b?.['permission']};}case'Service':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'location':b?.['location'],'sales':b?.['sales']?.['map'](l=>{return{'name':l['fields']['name'],'stock':l['fields']['stock'],'suspension':l['fields']['suspension'],'price':l['fields']['price'],'wip':l['fields']['wip'],'wip_hash':l['fields']['wip_hash']};}),'repositories':b?.['repositories'],'buy_guard':b?.['buy_guard'],'machine':b?.['machine'],'bPublished':b?.['bPublished'],'bPaused':b?.['bPaused'],'customer_required':b?.['customer_required'],'arbitrations':b?.['arbitrations'],'compensation_fund':b?.['compensation_fund'],'paused_time':b?.['paused_time'],'compensation_lock_duration':b?.['compensation_lock_duration'],'order_allocators':{'description':b?.['order_allocators']?.['fields']?.['description'],'threshold':b?.['order_allocators']?.['fields']?.['threshold'],'allocators':b?.['order_allocators']?.['fields']?.['allocators']['map'](l=>{return{'guard':l['fields']['guard'],'sharing':l['fields']['sharing']['map'](m=>{const n=parseRecipient(m['fields']['who']);return{'who':n,'sharing':m['fields']['sharing'],'mode':m['fields']['mode']};}),'fix':l['fields']['fix'],'max':l['fields']['max']};})},'rewards':b?.['rewards'],'um':b?.['um']??null,'permission':b?.['permission']};}case'Discount':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'name':b?.['name'],'discount_type':b?.['discount_type'],'benchmark':b?.['benchmark'],'off':b?.['off'],'time_start':b?.['time_start'],'time_end':b?.['time_end'],'service':b?.['service'],'transferable':b?.['transferable']};}case'Arb':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'order':b?.['order'],'arbitration':b?.['arbitration'],'voted':b?.['voted']?.['map'](l=>{return{'voter':l['fields']['voter'],'agrees':l['fields']['agrees'],'weight':l['fields']['weight'],'time':l['fields']['time']};}),'proposition':b?.['proposition']?.['map'](l=>{return{'name':l['fields']['name'],'votes':l['fields']['votes']};}),'fee':b?.['fee'],'feedback':b?.['feedback'],'indemnity':b?.['indemnity']?{'amount':b?.['indemnity']?.['fields']?.['amount'],'time':b?.['indemnity']?.['fields']?.['time']}:null,'voting_deadline':b?.['voting_deadline'],'objection':b?.['objection'],'status':b?.['status'],'compensation_time':b?.['compensation_time'],'time':b?.['time']};}case'Arbitration':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'location':b?.['location'],'fee':b?.['fee'],'bPaused':b?.['bPaused'],'balance':b?.['balance'],'usage_guard':b?.['usage_guard'],'um':b?.['um']??null,'permission':b?.['permission'],'voting_guard':b?.['voting_guard']['map'](l=>{let m;if(l['fields']['vote_weight']['variant']==='GuardIdentifier')m={'GuardIdentifier':l['fields']['vote_weight']['fields']?.['pos0']};else l['fields']['vote_weight']['variant']==='FixedValue'?m={'FixedValue':l['fields']['vote_weight']['fields']?.['pos0']}:W_ERROR(WErrors['InvalidParam'],'vote_weight'+l['fields']['vote_weight']['variant']+'\x20invalid');return{'guard':l['fields']['guard'],'vote_weight':m};})};}case'Proof':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'proof':b?.['proof'],'server_pubkey':b?.['server_pubkey'],'server_signature':b?.['server_signature'],'proof_type':b?.['proof_type'],'item_count':b?.['item_count']??null,'about_address':b?.['about_address']??null,'signer':b?.['signer'],'time':b?.['time']};}case'Treasury':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'balance':b?.['balance'],'history_count':parseInt(b?.['history']?.['fields']?.['size']),'external_deposit_guard':b?.['external_deposit_guard']['map'](l=>({'guard':l['fields']['guard'],'identifier':l['fields']['identifier']??null,'store_from_id':l['fields']['store_from_id']??null})),'external_withdraw_guard':b?.['external_withdraw_guard']['map'](l=>({'guard':l['fields']['guard'],'identifier':l['fields']['identifier'],'store_from_id':l['fields']['store_from_id']??null})),'inflow':b?.['inflow'],'outflow':b?.['outflow'],'um':b?.['um']??null,'permission':b?.['permission']};}case'TableItem_DemandPresenter':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'address':b?.['name'],'recommend':b?.['value']?.['fields']?.['recommend'],'service':b?.['value']?.['fields']?.['service'],'update_time':b?.['value']?.['fields']?.['update_time'],'acceptance_score':b?.['value']?.['fields']?.['acceptance_score'],'feedback':b?.['value']?.['fields']?.['feedback'],'feedback_time':b?.['value']?.['fields']?.['feedback_time']};}case'TableItem_MachineNode':{return console['dir'](JSON['stringify'](b['value']['fields']['value']),{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'name':b?.['name'],'value':b?.['value']?.['fields']?.['value']?.['map'](l=>{return{'prev_node':l['fields']['prev_node'],'threshold':l['fields']['threshold'],'forwards':l['fields']['forwards']['map'](m=>{return{'name':m['fields']['name'],'weight':m['fields']['weight'],'namedOperator':m['fields']?.['namedOperator'],'permissionIndex':m['fields']?.['permissionIndex'],'guard':m['fields']?.['guard']?{'guard':m['fields']['guard']['fields']?.['guard'],'retained_submission':m['fields']['guard']['fields']?.['retained_submission']}:undefined};})};})};}case'TableItem_ProgressHistory':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'index':b?.['name'],'node':b?.['value']?.['fields']?.['node'],'next_node':b?.['value']?.['fields']?.['next_node'],'session':b?.['value']?.['fields']?.['session']['map'](l=>{return{'next_node':l['fields']['next_node'],'weights':l['fields']['weights'],'threshold':l['fields']['threshold'],'forwards':l['fields']['forwards']?.['map'](m=>{return{'forward':m['fields']['forward'],'who':m['fields']['who'],'msg':m['fields']['msg'],'accomplished':m['fields']['accomplished'],'time':m['fields']['time'],'retained_submission':m['fields']['retained_submission']?.['map'](n=>{return{'identifier':n['fields']['identifier'],'value_type':n['fields']['value_type'][0x0],'value':bcsBytesToValue(Uint8Array['from'](n['fields']['value']))};})};})};}),'time':b?.['value']?.['time']};}case'TableItem_TreasuryHistory':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'payment':b?.['name'],'op':b?.['value']?.['fields']?.['op'],'signer':b?.['value']?.['fields']?.['signer'],'external_guard':b?.['value']?.['fields']?.['external_guard'],'amount':b?.['value']?.['fields']?.['amount'],'time':b?.['value']?.['fields']?.['time'],'store_from_id':b?.['value']?.['fields']?.['store_from_id']??null};}case'TableItem_EntityLinker':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'address':b?.['name'],'pos':b?.['value']?.['fields']?.['pos'],'count':b?.['value']?.['fields']?.['count'],'votes':b?.['value']?.['fields']?.['votes']?.['map'](l=>{return{'who':l['fields']['who'],'info':l['fields']['info'],'like':(l['fields']['info']&0x2)!==0x0,'dislike':(l['fields']['info']&0x4)!==0x0,'affiliation':(l['fields']['info']&0x8)!==0x0,'time':l['fields']['time']};})};}case'TableItem_EntityRegistrar':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'address':b?.['name'],'description':b?.['value']?.['fields']?.['description'],'time':b?.['value']?.['fields']?.['time'],'referrer':b?.['referrer'],'mark_object':b?.['value']?.['fields']?.['resource'],'records':b?.['value']?.['fields']?.['records']?.['map'](l=>{return{'name':l['fields']['name'],'typed_value':l['fields']['typed_value'],'value':bcsBytesToValue(Uint8Array['from'](l['fields']['typed_value']))};})};}case'Resource':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'entity_count':parseInt(b?.['table']?.['fields']?.['size'])};}case'TableItem_AddressMark':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'entity':b?.['name'],'name':b?.['value']?.['fields']?.['name'],'tags':b?.['value']?.['fields']?.['tags']};}case'TableItem_RepositoryData':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'entity':b?.['name']?.['fields']?.['id'],'name':b?.['name']?.['fields']?.['key'],'value':b?.['value'],'data':{'value_type':b?.['value'][0x0],'value':bcsBytesToValue(Uint8Array['from'](b['value']))}};}case'TableItem_RewardRecord':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'recipient':b?.['name'],'guard':b?.['value']?.['fields']?.['guard'],'total':b?.['value']?.['fields']?.['total'],'record':b?.['value']?.['fields']?.['amount']['map'](l=>{return{'amount':l['fields']['amount'],'time':l['fields']['time'],'store_from_id':l['fields']['store_from_id']??null};})};}case'EntityRegistrar':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'entity_count':parseInt(b?.['table']?.['fields']?.['size'])};}case'EntityLinker':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'entity_count':parseInt(b?.['table']?.['fields']?.['size'])};}}return{'object':c,'type':undefined,'type_raw':d,'owner':f,'version':e};}
|
|
1
|
+
import{getFullnodeUrl}from'../../client/network.js';import{SuiClient}from'../../client/index.js';import{Cache,CachePrefix}from'../local/cache.js';import{Config}from'../local/config.js';import{LocalMark}from'../local/local.js';import{W_ERROR,WErrors}from'../exception.js';import a204a from'lodash';import{restoreNodeFromOutput}from'../call/util.js';import{GetAccountOrMark_Address}from'../local/index.js';import{object_name_from_type,PackageAddress,WitnessType,ObjectType,ENTITY_LINKER_ADDRESS,ENTITY_REGISTRAR_ADDRESS}from'../common.js';import{bcsBytesToValue,parseRecipient,uint2address}from'../util.js';export{ObjectType};export const MAX_OBJECTS_PER_QUERY=0x32;export const WitnessSourceType=a=>{switch(a){case WitnessType['TypeArbArbitration']:case WitnessType['TypeArbOrder']:case WitnessType['TypeArbService']:case WitnessType['TypeArbProgress']:case WitnessType['TypeArbMachine']:return ObjectType['Arb'];case WitnessType['TypeOrderMachine']:case WitnessType['TypeOrderService']:case WitnessType['TypeOrderProgress']:return ObjectType['Order'];case WitnessType['TypeProgressMachine']:return ObjectType['Progress'];}};export const WitnessTargetType=a=>{switch(a){case WitnessType['TypeArbArbitration']:return ObjectType['Arbitration'];case WitnessType['TypeOrderMachine']:case WitnessType['TypeArbMachine']:case WitnessType['TypeProgressMachine']:return ObjectType['Machine'];case WitnessType['TypeOrderService']:case WitnessType['TypeArbService']:return ObjectType['Service'];case WitnessType['TypeOrderProgress']:case WitnessType['TypeArbProgress']:return ObjectType['Progress'];case WitnessType['TypeArbOrder']:return ObjectType['Order'];}};export const OBJECT_TYPE_DEFINITIONS={[ObjectType['Permission']]:{'name':ObjectType['Permission'],'moveValue':0x0,'moveName':'Permission'},[ObjectType['Repository']]:{'name':ObjectType['Repository'],'moveValue':0x1,'moveName':'Repository'},[ObjectType['Arb']]:{'name':ObjectType['Arb'],'moveValue':0x2,'moveName':'Arb'},[ObjectType['Arbitration']]:{'name':ObjectType['Arbitration'],'moveValue':0x3,'moveName':'Arbitration'},[ObjectType['Service']]:{'name':ObjectType['Service'],'moveValue':0x4,'moveName':'Service'},[ObjectType['Machine']]:{'name':ObjectType['Machine'],'moveValue':0x5,'moveName':'Machine'},[ObjectType['Order']]:{'name':ObjectType['Order'],'moveValue':0x6,'moveName':'Order'},[ObjectType['Progress']]:{'name':ObjectType['Progress'],'moveValue':0x7,'moveName':'Progress'},[ObjectType['Payment']]:{'name':ObjectType['Payment'],'moveValue':0x8,'moveName':'Payment'},[ObjectType['Treasury']]:{'name':ObjectType['Treasury'],'moveValue':0x9,'moveName':'Treasury'},[ObjectType['Guard']]:{'name':ObjectType['Guard'],'moveValue':0xa,'moveName':'Guard'},[ObjectType['Demand']]:{'name':ObjectType['Demand'],'moveValue':0xb,'moveName':'Demand'},[ObjectType['Passport']]:{'name':ObjectType['Passport'],'moveValue':0xc,'moveName':'Passport'},[ObjectType['Allocation']]:{'name':ObjectType['Allocation'],'moveValue':0xd,'moveName':'Allocation'},[ObjectType['Resource']]:{'name':ObjectType['Resource'],'moveValue':0xe,'moveName':'Resource'},[ObjectType['Reward']]:{'name':ObjectType['Reward'],'moveValue':0xf,'moveName':'Reward'},[ObjectType['Discount']]:{'name':ObjectType['Discount'],'moveValue':0x10,'moveName':'Discount'},[ObjectType['EntityRegistrar']]:{'name':ObjectType['EntityRegistrar'],'moveValue':0x11,'moveName':'EntityRegistrar'},[ObjectType['EntityLinker']]:{'name':ObjectType['EntityLinker'],'moveValue':0x12,'moveName':'EntityLinker'},[ObjectType['Proof']]:{'name':ObjectType['Proof'],'moveValue':0x13,'moveName':'Proof'},[ObjectType['Contact']]:{'name':ObjectType['Contact'],'moveValue':0x14,'moveName':'Contact'},[ObjectType['WReceivedObject']]:{'name':ObjectType['WReceivedObject'],'moveValue':0x15,'moveName':'WReceivedObject'},[ObjectType['TableItem_ProgressHistory']]:{'name':ObjectType['TableItem_ProgressHistory'],'moveValue':0x16,'moveName':'TableItem_ProgressHistory'},[ObjectType['TableItem_PermissionPerm']]:{'name':ObjectType['TableItem_PermissionPerm'],'moveValue':0x17,'moveName':'TableItem_PermissionPerm'},[ObjectType['TableItem_DemandPresenter']]:{'name':ObjectType['TableItem_DemandPresenter'],'moveValue':0x18,'moveName':'TableItem_DemandPresenter'},[ObjectType['TableItem_MachineNode']]:{'name':ObjectType['TableItem_MachineNode'],'moveValue':0x19,'moveName':'TableItem_MachineNode'},[ObjectType['TableItem_TreasuryHistory']]:{'name':ObjectType['TableItem_TreasuryHistory'],'moveValue':0x1a,'moveName':'TableItem_TreasuryHistory'},[ObjectType['TableItem_RepositoryData']]:{'name':ObjectType['TableItem_RepositoryData'],'moveValue':0x1b,'moveName':'TableItem_RepositoryData'},[ObjectType['TableItem_RewardRecord']]:{'name':ObjectType['TableItem_RewardRecord'],'moveValue':0x1c,'moveName':'TableItem_RewardRecord'},[ObjectType['TableItem_AddressMark']]:{'name':ObjectType['TableItem_AddressMark'],'moveValue':0x1d,'moveName':'TableItem_AddressMark'},[ObjectType['TableItem_EntityLinker']]:{'name':ObjectType['TableItem_EntityLinker'],'moveValue':0x1e,'moveName':'TableItem_EntityLinker'},[ObjectType['TableItem_EntityRegistrar']]:{'name':ObjectType['TableItem_EntityRegistrar'],'moveValue':0x1f,'moveName':'TableItem_EntityRegistrar'}};export const objectTypeToNumber=Object['fromEntries'](Object['entries'](OBJECT_TYPE_DEFINITIONS)['map'](([a,b])=>[a,b['moveValue']]));export const numberToObjectType=Object['fromEntries'](Object['entries'](OBJECT_TYPE_DEFINITIONS)['map'](([a,b])=>[b['moveValue'],a]));export function getObjectTypeFromNumber(a){return numberToObjectType[a];}export function getNumberFromObjectType(a){return objectTypeToNumber[a];}export function getObjectTypeDefinition(a){return OBJECT_TYPE_DEFINITIONS[a];}export function getObjectTypeDefinitionFromNumber(a){const b=numberToObjectType[a];return b?OBJECT_TYPE_DEFINITIONS[b]:undefined;}export function getObjectTypeFromMoveName(a){return Object['values'](OBJECT_TYPE_DEFINITIONS)['find'](b=>b['moveName']===a)?.['name'];}export function getMoveNameFromObjectType(a){return OBJECT_TYPE_DEFINITIONS[a]?.['moveName'];}export function getMoveNameFromNumber(a){return getObjectTypeDefinitionFromNumber(a)?.['moveName'];}export function getNumberFromMoveName(a){return Object['values'](OBJECT_TYPE_DEFINITIONS)['find'](b=>b['moveName']===a)?.['moveValue'];}export function getObjectTypesFromNumbers(a){return a['map'](getObjectTypeFromNumber);}export function getNumbersFromObjectTypes(a){return a['map'](getNumberFromObjectType);}export var AmountType;(function(a){a[a['GuardU64Identifier']=0x0]='GuardU64Identifier',a[a['Fixed']=0x1]='Fixed';}(AmountType||(AmountType={})));export var ArbStatus;(function(a){a[a['Principal_confirming']=0x0]='Principal_confirming',a[a['Arbitrator_confirming']=0x1]='Arbitrator_confirming',a[a['Voting']=0x2]='Voting',a[a['Arbitrated']=0x3]='Arbitrated',a[a['Objectionable']=0x4]='Objectionable',a[a['Finished']=0x5]='Finished',a[a['Withdrawn']=0x6]='Withdrawn';}(ArbStatus||(ArbStatus={})));export var DiscountType;(function(a){a[a['RATES']=0x0]='RATES',a[a['FIXED']=0x1]='FIXED';}(DiscountType||(DiscountType={})));export var TreasuryOp;(function(a){a[a['Withdraw']=0x0]='Withdraw',a[a['Deposit']=0x1]='Deposit',a[a['Receive']=0x2]='Receive';}(TreasuryOp||(TreasuryOp={})));export var IdFrom;(function(a){a[a['None']=0x0]='None',a[a['Clock']=0x1]='Clock',a[a['Signer']=0x2]='Signer';}(IdFrom||(IdFrom={})));export const parseIdFrom=a=>{if(typeof a==='number'){if(a>=0x0&&a<=0x2)return a;throw new Error('Invalid\x20IdFrom\x20number:\x20'+a+'.\x20Valid\x20range:\x200-2');}const b=Object['keys'](IdFrom)['filter'](e=>isNaN(Number(e))),c=a['toLowerCase'](),d=b['find'](e=>e['toLowerCase']()===c);if(d===undefined)throw new Error('Invalid\x20IdFrom\x20string:\x20\x22'+a+'\x22.\x20Valid\x20values:\x20'+b['join'](',\x20'));return IdFrom[d];};export const idFromToString=a=>{return IdFrom[a];};export const isValidIdFromInput=a=>{if(typeof a==='number')return a>=0x0&&a<=0x2;if(typeof a==='string'){const b=a['toUpperCase'](),c=IdFrom[b];return typeof c==='number';}return![];};export var AllocationMode;(function(a){a[a['Amount']=0x0]='Amount',a[a['Rate']=0x1]='Rate',a[a['Surplus']=0x2]='Surplus';}(AllocationMode||(AllocationMode={})));export const query_objects_json=async a=>{try{const b=JSON['parse'](a);return JSON['stringify']({'data':await query_objects(b)});}catch(c){return JSON['stringify']({'error':c?.['toString']()});}};export const query_table_json=async a=>{try{const b=JSON['parse'](a);return JSON['stringify']({'data':await query_table(b)});}catch(c){return JSON['stringify']({'error':c?.['toString']()});}};export const query_objects=async a=>{const b=await Config['Instance']()['network_get'](a['network']),c=a204a['uniq'](a['objects']);c['length']>MAX_OBJECTS_PER_QUERY&&W_ERROR(WErrors['MaxObjectsPerQuery'],'max\x20'+MAX_OBJECTS_PER_QUERY);const d=await LocalMark['Instance']()['get_many_address'](c),e=new Map(),f=[];c['forEach']((k,l)=>{const m=d[l];m&&(e['set'](m,k),f['push'](m));});if(f['length']===0x0)return{'objects':[]};const g=CachePrefix['object']+':'+b,h=f,i=await Cache['read_many'](g,h,async(k,l)=>{const m=new SuiClient({'url':getFullnodeUrl(b)}),n=await m['multiGetObjects']({'ids':[...l],'options':{'showContent':!![],'showOwner':!![],'showPreviousTransaction':!![]}});return n['map'](o=>{const p=o?.['data'];if(!p)return undefined;const q=p?.['type']??p?.['content']?.['type']??undefined,r=q?object_name_from_type(q):undefined,s=Cache['DefaultExpireTime'](r==='Guard'||r==='Payment'||r==='Passport'),t=data2object(p);return{'expire':s,'data':t};})['filter'](o=>o!==undefined);},a['no_cache']),j=i['map'](k=>{const l=k['data'];return l['cache_expire']=k['expire'],l['query_name']=e['get'](l['object'])??l['object'],l;});return{'objects':j};};export const query_personal=async a=>{const b=a['account']??'',[c,d]=await Promise['all']([Config['Instance']()['network_get'](a['network']),GetAccountOrMark_Address({'name_or_address':b})]);!d&&W_ERROR(WErrors['InvalidParam'],'query_personal.account\x20'+b+'\x20not\x20found');const [e,f]=await Promise['all']([queryTableItem_EntityRegistrar({'address':{'name_or_address':b},'no_cache':a['no_cache'],'network':c})['catch'](()=>undefined),queryTableItem_EntityLinker({'address':{'name_or_address':b},'no_cache':a['no_cache'],'network':c})['catch'](()=>undefined)]);if(e)return{'address':d,'info':e?.['records']??[],'description':e?.['description']??'','referrer':e?.['referrer']??null,'mark_object':e?.['mark_object']??null,'details':f?.['votes']??[],'like':f?.['votes']?.['filter'](g=>g['like'])['length']??0x0,'dislike':f?.['votes']?.['filter'](g=>g['dislike'])['length']??0x0,'active_tx':e?.['previousTransaction']??null,'passive_tx':f?.['previousTransaction']??null,'time':e?.['time']??0x0};return undefined;};export const query_table=async a=>{const b=await Config['Instance']()['network_get'](a['network']),c=await LocalMark['Instance']()['get_address'](a['parent']);!c&&W_ERROR(WErrors['InvalidParam'],'query_table.query.parent\x20'+a['parent']+'\x20not\x20found');a['parent']=c;const e=await Cache['read']([CachePrefix['table'],a['parent'],a['cursor']??'',a['limit']?.['toString']()??'',b],async()=>{const f=new SuiClient({'url':getFullnodeUrl(b)}),g=await f['getDynamicFields']({'parentId':a['parent'],'cursor':a['cursor'],'limit':a['limit']});(!g?.['data']?.['length']||g?.['data']?.['length']===0x0)&&W_ERROR(WErrors['Fail'],'query_table.query.parent\x20'+a['parent']+'\x20failed');const h={'items':g?.['data']?.['map'](i=>{return{'object':i['objectId'],'type':i['type'],'version':i['version'],'key':{'type':i['name']['type'],'value':i['name']['value']}};}),'nextCursor':g['nextCursor'],'hasNextPage':g['hasNextPage']};return{'expire':Cache['DefaultExpireTime'](),'data':h};},a['no_cache']);if(e){const f=e['data'];return f['cache_expire']=e['expire'],f;}return undefined;};const query_tableItem=async a=>{const b=await Config['Instance']()['network_get'](a['network']);if(a['parent']!==ENTITY_REGISTRAR_ADDRESS&&a['parent']!==ENTITY_LINKER_ADDRESS){const e=await LocalMark['Instance']()['get_address'](a['parent']);!e&&W_ERROR(WErrors['InvalidParam'],'query_tableItem.query.parent\x20'+a['parent']+'\x20not\x20found'),a['parent']=e;}const c=[CachePrefix['table'],a['parent'],JSON['stringify'](a['key']['value'])],d=await Cache['read'](c,async()=>{const f=new SuiClient({'url':getFullnodeUrl(b)}),g=await f['getDynamicFieldObject']({'parentId':a['parent'],'name':{'type':a['key']['type'],'value':a['key']['value']}});!g?.['data']&&W_ERROR(WErrors['Fail'],'query_tableItem('+a['key']['value']+'):\x20'+JSON['stringify'](g)+'\x20');const h=data2object(g?.['data']);return{'expire':Cache['DefaultExpireTime'](),'data':h};},a['no_cache']);if(d)return d['data']['cache_expire']=d['expire'],d['data'];return undefined;},tableItemQuery_byString=async a=>{const b=typeof a['parent']==='string'?a['parent']:a['parent']['object'];return await query_tableItem({'parent':b,'key':{'type':'0x1::string::String','value':a['key']},'no_cache':a['no_cache'],'network':a['network']});};export const queryTableItem_RepositoryData=async a=>{const b=typeof a['parent']==='string'?a['parent']:a['parent']?.['object'];let c;if(typeof a['entity']==='bigint'||typeof a['entity']==='number')c=uint2address(a['entity']);else{const e=await GetAccountOrMark_Address(a['entity']);if(e)c=e;else return W_ERROR(WErrors['InvalidParam'],'tableItem_RepositoryData.entity'),undefined;}const d=await query_tableItem({'parent':b,'key':{'type':PackageAddress+'::repository::DataKey','value':{'id':c,'key':a['name']}},'no_cache':a['no_cache'],'network':a['network']});if(d?.['type']!=='TableItem_RepositoryData')return undefined;return d;};const tableItem_byAddress=async a=>{const b=typeof a['parent']==='string'?a['parent']:a['parent']?.['object'];let c;if(typeof a['address']==='string')c=a['address'];else{const d=await GetAccountOrMark_Address(a['address']);if(!d)return W_ERROR(WErrors['InvalidParam'],'queryTableItem_byAddress.address\x20'+a['address']+'\x20not\x20found'),undefined;c=d;}return await query_tableItem({'parent':b,'key':{'type':'address','value':c},'no_cache':a['no_cache'],'network':a['network']});};export const queryTableItem_PermissionPerm=async a=>{const b=await tableItem_byAddress(a);if(b?.['type']!=='TableItem_PermissionPerm')return undefined;return b;};export const queryTableItem_EntityRegistrar=async a=>{const b=await tableItem_byAddress({'parent':ENTITY_REGISTRAR_ADDRESS,'address':a['address'],'no_cache':a['no_cache'],'network':a['network']});if(b?.['type']!=='TableItem_EntityRegistrar')return undefined;return b;};export const queryTableItem_EntityLinker=async a=>{const b=await tableItem_byAddress({'parent':ENTITY_LINKER_ADDRESS,'address':a['address'],'no_cache':a['no_cache'],'network':a['network']});if(b?.['type']!=='TableItem_EntityLinker')return undefined;return b;};export const queryTableItem_RewardRecord=async a=>{const b=await tableItem_byAddress(a);if(b?.['type']!=='TableItem_RewardRecord')return undefined;return b;};export const queryTableItem_DemandPresenter=async a=>{const b=await tableItem_byAddress(a);if(b?.['type']!=='TableItem_DemandPresenter')return undefined;return b;};export const queryTableItem_TreasuryHistory=async a=>{const b=await tableItem_byAddress(a);if(b?.['type']!=='TableItem_TreasuryHistory')return undefined;return b;};export const queryTableItem_MachineNode=async a=>{const b=await tableItemQuery_byString(a);if(b?.['type']!=='TableItem_MachineNode')return undefined;return b;};export const queryTableItem_AddressMark=async a=>{const b=await tableItem_byAddress(a);if(b?.['type']!=='TableItem_AddressMark')return undefined;return b;};export const queryTableItem_ProgressHistory=async a=>{const b=typeof a['parent']==='string'?a['parent']:a['parent']['object'],c=await query_tableItem({'parent':b,'key':{'type':'u64','value':a['u64']['toString']()},'no_cache':a['no_cache'],'network':a['network']});if(c?.['type']!=='TableItem_ProgressHistory')return undefined;return c;};export function raw2type(a){if(!a)return undefined;const b=object_name_from_type(a);if(b==='Resource')return ObjectType['Resource'];else{if(b==='CoinWrapper')return ObjectType['WReceivedObject'];else{if(Object['values'](ObjectType)['includes'](b))return b;}}const c=a?.['indexOf']('0x2::dynamic_field::Field<');if(c===0x0){const d=a?.['substring']('0x2::dynamic_field::Field<'['length']);if(d){if(d['includes']('::demand::ServiceInfo>'))return ObjectType['TableItem_DemandPresenter'];else{if(d['includes']('::machine::NodePair>>>'))return ObjectType['TableItem_MachineNode'];else{if(d['includes']('::progress::History>'))return ObjectType['TableItem_ProgressHistory'];else{if(d['includes']('::reward::RecipientRecord>'))return ObjectType['TableItem_RewardRecord'];else{if(d['includes']('::treasury::Record>'))return ObjectType['TableItem_TreasuryHistory'];else{if(d['includes']('::registrar::Votes>'))return ObjectType['TableItem_EntityLinker'];else{if(d['indexOf']('address')<d['indexOf']('0x2::parent_linked_table::Node<address,\x20vector<u16>>>'))return ObjectType['TableItem_PermissionPerm'];else{if(d['includes']('::repository::DataKey'))return ObjectType['TableItem_RepositoryData'];else{if(d['includes']('::registrar::AddressInfo>'))return ObjectType['TableItem_EntityRegistrar'];else{if(d['includes']('::resource::AddressTag>'))return ObjectType['TableItem_AddressMark'];}}}}}}}}}}}return undefined;}export function data2object(a){const b=a?.['content']?.['fields'],c=a?.['objectId']??b?.['id']?.['id']??undefined,d=a?.['type']??a?.['content']?.['type']??undefined,e=a?.['version']??undefined,f=a?.['owner']??undefined,g=raw2type(d);switch(g){case'Permission':return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'builder':b?.['owner']??'','admin':b?.['admin'],'description':b?.['description']??'','entity_count':parseInt(b?.['table']?.['fields']?.['size']),'perm_remark':b?.['remark']?.['map'](h=>{return{'index':parseInt(h?.['fields']?.['index']),'remark':h?.['fields']?.['remark']};}),'um':b?.['um']??null};case'TableItem_PermissionPerm':return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'address':b?.['name'],'perm':b?.['value']?.['fields']?.['value']};case'Guard':{console['dir'](b,{'depth':null,'colors':!![]});const h=b?.['validated']?.['map'](l=>{return{'identifier':parseInt(l?.['fields']?.['identifier']),'object_type':numberToObjectType[l?.['fields']?.['object_type']]};}),i=b?.['table']?.['map'](l=>{const m=parseInt(l?.['fields']?.['identifier']),n=bcsBytesToValue(Uint8Array['from'](l?.['fields']?.['value']));return{'identifier':m,'b_submission':l?.['fields']?.['b_submission'],'value_type':l?.['fields']?.['value'][0x0],'value':n,'name':l?.['fields']?.['name'],'object_type':h['find'](o=>o['identifier']===m)?.['object_type']};}),j=restoreNodeFromOutput(Uint8Array['from'](b?.['input']),i),k=i['filter'](l=>!j['autoGeneratedIdentifiers']['includes'](l['identifier']));return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description']??'','table':k,'input':b?.['input'],'root':j['root'],'rep_quote':j['rep_quote'],'relies':b?.['relies'],'relies_logic_and':b?.['relies_logic_and'],'rep':b?.['rep']};}case'Passport':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'info':b?.['guard']?.['map'](l=>{return{'guard':l['fields']['guard'],'result':l['fields']['result'],'impack':l['fields']['impack'],'relies':l['fields']['relies'],'relies_logic_and':l['fields']['relies_logic_and'],'submission':l['fields']['submission']['map'](m=>{return{'identifier':m['fields']['identifier'],'value_type':m['fields']['value'][0x0],'value':bcsBytesToValue(Uint8Array['from'](m['fields']['value']))};})};}),'result':b?.['result'],'tx_hash':b?.['tx_hash'],'impack_guard':b?.['impack'],'time':b?.['time'],'signer':b?.['signer'],'has_verified':b?.['has_verified']};}case'Allocation':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['allocators']?.['fields']?.['description']??'','threshold':b?.['allocators']?.['fields']?.['threshold'],'balance':b?.['balance'],'payment_info':b?.['payment_info']?.['fields'],'payment':b?.['payment']??[],'allocators':b?.['allocators']?.['fields']?.['allocators']?.['map'](l=>{return{'guard':l['fields']['guard'],'fix':l['fields']['fix'],'max':l['fields']['max']??undefined,'sharing':l['fields']['sharing']['map'](m=>{let n;const o=m['fields']['who'];(!o||!o['variant'])&&W_ERROR(WErrors['ParseObjectContentFailed'],'Invalid\x20who\x20data:\x20'+JSON['stringify'](o));if(o['variant']==='GuardIdentifier'&&o['fields'])n={'GuardIdentifier':Number(o['fields']['pos0'])};else{if(o['variant']==='Entity'&&o['fields'])n={'Entity':{'name_or_address':o['fields']['pos0']}};else o['variant']==='Signer'?n={'Signer':null}:W_ERROR(WErrors['ParseObjectContentFailed'],'Invalid\x20who\x20variant:\x20'+o['variant']);}return{'who':n,'sharing':m['fields']['sharing'],'mode':m['fields']['mode']};})};})};}case'Payment':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'amount':b?.['amount'],'time':b?.['time'],'from_object':b?.['from_object'],'signer':b?.['signer'],'info':b?.['info']?.['fields'],'record':b?.['record']?.['map'](l=>{return{'recipient':l['fields']['recipient'],'amount':l['fields']['amount']};})};}case'Contact':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'ims':b?.['ims']['map'](l=>{return{'description':l['fields']['description'],'at':l['fields']['at'],'join_time':l['fields']['join_time'],'status':l['fields']['status']};}),'location':b?.['location'],'permission':b?.['permission']};}case'Repository':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'policies':b?.['policies']['map'](l=>{return{'description':l['fields']['description'],'id_from':l['fields']['id_from'],'name':l['fields']['name'],'quote_guard':l['fields']['quote_guard'],'value_type':l['fields']['value_type'],'write_guard':l['fields']['write_guard']};}),'rewards':b?.['rewards'],'um':b?.['um']??null,'permission':b?.['permission']};}case'Demand':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'location':b?.['location'],'rewards':b?.['rewards'],'guards':b?.['guards']['map'](l=>{return{'guard':l['fields']['guard'],'service_identifier':l['fields']['service_identifier']};}),'presenters_count':b?.['presenters']?.['fields']?.['size'],'um':b?.['um']??null,'permission':b?.['permission']};}case'Machine':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'node_count':b?.['nodes']?.['fields']?.['size'],'consensus_repositories':b?.['consensus_repositories'],'bPaused':b?.['bPaused'],'bPublished':b?.['bPublished'],'um':b?.['um']??null,'permission':b?.['permission']};}case'Order':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'items':b?.['items']['map'](l=>{return{'name':l['fields']['item'],'price':l['fields']['price'],'quantity':l['fields']['quantity'],'wip_hash':l['fields']['wip_hash']};}),'discount':b?.['discount'],'progress':b?.['progress'],'machine':b?.['machine'],'amount':b?.['amount'],'builder':b?.['owner'],'service':b?.['service'],'dispute':b?.['dispute'],'agent':b?.['agent'],'allocation':b?.['allocation'],'claimed_by':b?.['claimed_by'],'required_info':b?.['required_info'],'time':b?.['time']};}case'Progress':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'machine':b?.['machine'],'context_repositories':b?.['context_repositories'],'current':b?.['current'],'task':b?.['task'],'namedOperator':b?.['namedOperator']['map'](l=>{return{'name':l['fields']['name'],'operators':l['fields']['operators']};}),'session':b?.['session']['map'](l=>{return{'next_node':l['fields']['next_node'],'forwards':l['fields']['forwards']['map'](m=>{return{'forward':m['fields']['forward'],'who':m['fields']['who'],'retained_submission':m['fields']['retained_submission']['map'](n=>{return{'identifier':n['fields']['identifier'],'value_type':n['fields']['value_type'],'value':bcsBytesToValue(Uint8Array['from'](n['fields']['value']))};}),'msg':m['fields']['msg'],'accomplished':m['fields']['accomplished'],'time':m['fields']['time']};}),'weights':l['fields']['weights'],'threshold':l['fields']['threshold']};}),'history_count':b?.['history']?.['fields']?.['contents']?.['fields']?.['size'],'current_time':b?.['current_time']};}case'Reward':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'guards':b?.['guards']['map'](l=>{const m=l['fields']['amount']['variant']==='Fixed'?AmountType['Fixed']:AmountType['GuardU64Identifier'],n=parseRecipient(l['fields']['recipient']);return{'guard':l['fields']['guard'],'expiration_time':l['fields']['expiration_time'],'amount':{'type':m,'value':l['fields']['amount']['fields']?.['pos0']},'recipient':n,'store_from_id':l['fields']['store_from_id']??null};}),'balance':b?.['balance'],'guard_not_added_expiration_time':b?.['guard_not_added_expiration_time'],'record_count':b?.['record']?.['fields']?.['size'],'um':b?.['um']??null,'permission':b?.['permission']};}case'Service':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'location':b?.['location'],'sales':b?.['sales']?.['map'](l=>{return{'name':l['fields']['name'],'stock':l['fields']['stock'],'suspension':l['fields']['suspension'],'price':l['fields']['price'],'wip':l['fields']['wip'],'wip_hash':l['fields']['wip_hash']};}),'repositories':b?.['repositories'],'buy_guard':b?.['buy_guard'],'machine':b?.['machine'],'bPublished':b?.['bPublished'],'bPaused':b?.['bPaused'],'customer_required':b?.['customer_required'],'arbitrations':b?.['arbitrations'],'compensation_fund':b?.['compensation_fund'],'paused_time':b?.['paused_time'],'compensation_lock_duration':b?.['compensation_lock_duration'],'order_allocators':{'description':b?.['order_allocators']?.['fields']?.['description'],'threshold':b?.['order_allocators']?.['fields']?.['threshold'],'allocators':b?.['order_allocators']?.['fields']?.['allocators']['map'](l=>{return{'guard':l['fields']['guard'],'sharing':l['fields']['sharing']['map'](m=>{const n=parseRecipient(m['fields']['who']);return{'who':n,'sharing':m['fields']['sharing'],'mode':m['fields']['mode']};}),'fix':l['fields']['fix'],'max':l['fields']['max']};})},'rewards':b?.['rewards'],'um':b?.['um']??null,'permission':b?.['permission']};}case'Discount':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'name':b?.['name'],'discount_type':b?.['discount_type'],'benchmark':b?.['benchmark'],'off':b?.['off'],'time_start':b?.['time_start'],'time_end':b?.['time_end'],'service':b?.['service'],'transferable':b?.['transferable']};}case'Arb':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'order':b?.['order'],'arbitration':b?.['arbitration'],'voted':b?.['voted']?.['map'](l=>{return{'voter':l['fields']['voter'],'agrees':l['fields']['agrees'],'weight':l['fields']['weight'],'time':l['fields']['time']};}),'proposition':b?.['proposition']?.['map'](l=>{return{'name':l['fields']['name'],'votes':l['fields']['votes']};}),'fee':b?.['fee'],'feedback':b?.['feedback'],'indemnity':b?.['indemnity']?{'amount':b?.['indemnity']?.['fields']?.['amount'],'time':b?.['indemnity']?.['fields']?.['time']}:null,'voting_deadline':b?.['voting_deadline'],'objection':b?.['objection'],'status':b?.['status'],'compensation_time':b?.['compensation_time'],'time':b?.['time']};}case'Arbitration':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'location':b?.['location'],'fee':b?.['fee'],'bPaused':b?.['bPaused'],'balance':b?.['balance'],'usage_guard':b?.['usage_guard'],'um':b?.['um']??null,'permission':b?.['permission'],'voting_guard':b?.['voting_guard']['map'](l=>{let m;if(l['fields']['vote_weight']['variant']==='GuardIdentifier')m={'GuardIdentifier':l['fields']['vote_weight']['fields']?.['pos0']};else l['fields']['vote_weight']['variant']==='FixedValue'?m={'FixedValue':l['fields']['vote_weight']['fields']?.['pos0']}:W_ERROR(WErrors['InvalidParam'],'vote_weight'+l['fields']['vote_weight']['variant']+'\x20invalid');return{'guard':l['fields']['guard'],'vote_weight':m};})};}case'Proof':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'proof':b?.['proof'],'server_pubkey':b?.['server_pubkey'],'server_signature':b?.['server_signature'],'proof_type':b?.['proof_type'],'item_count':b?.['item_count']??null,'about_address':b?.['about_address']??null,'signer':b?.['signer'],'time':b?.['time']};}case'Treasury':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'description':b?.['description'],'balance':b?.['balance'],'history_count':parseInt(b?.['history']?.['fields']?.['size']),'external_deposit_guard':b?.['external_deposit_guard']['map'](l=>({'guard':l['fields']['guard'],'identifier':l['fields']['identifier']??null,'store_from_id':l['fields']['store_from_id']??null})),'external_withdraw_guard':b?.['external_withdraw_guard']['map'](l=>({'guard':l['fields']['guard'],'identifier':l['fields']['identifier'],'store_from_id':l['fields']['store_from_id']??null})),'inflow':b?.['inflow'],'outflow':b?.['outflow'],'um':b?.['um']??null,'permission':b?.['permission']};}case'TableItem_DemandPresenter':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'address':b?.['name'],'recommend':b?.['value']?.['fields']?.['recommend'],'service':b?.['value']?.['fields']?.['service'],'update_time':b?.['value']?.['fields']?.['update_time'],'acceptance_score':b?.['value']?.['fields']?.['acceptance_score'],'feedback':b?.['value']?.['fields']?.['feedback'],'feedback_time':b?.['value']?.['fields']?.['feedback_time']};}case'TableItem_MachineNode':{return console['dir'](JSON['stringify'](b['value']['fields']['value']),{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'name':b?.['name'],'value':b?.['value']?.['fields']?.['value']?.['map'](l=>{return{'prev_node':l['fields']['prev_node'],'threshold':l['fields']['threshold'],'forwards':l['fields']['forwards']['map'](m=>{return{'name':m['fields']['name'],'weight':m['fields']['weight'],'namedOperator':m['fields']?.['namedOperator'],'permissionIndex':m['fields']?.['permissionIndex'],'guard':m['fields']?.['guard']?{'guard':m['fields']['guard']['fields']?.['guard'],'retained_submission':m['fields']['guard']['fields']?.['retained_submission']}:undefined};})};})};}case'TableItem_ProgressHistory':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'index':b?.['name'],'node':b?.['value']?.['fields']?.['node'],'next_node':b?.['value']?.['fields']?.['next_node'],'session':b?.['value']?.['fields']?.['session']['map'](l=>{return{'next_node':l['fields']['next_node'],'weights':l['fields']['weights'],'threshold':l['fields']['threshold'],'forwards':l['fields']['forwards']?.['map'](m=>{return{'forward':m['fields']['forward'],'who':m['fields']['who'],'msg':m['fields']['msg'],'accomplished':m['fields']['accomplished'],'time':m['fields']['time'],'retained_submission':m['fields']['retained_submission']?.['map'](n=>{return{'identifier':n['fields']['identifier'],'value_type':n['fields']['value_type'][0x0],'value':bcsBytesToValue(Uint8Array['from'](n['fields']['value']))};})};})};}),'time':b?.['value']?.['time']};}case'TableItem_TreasuryHistory':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'payment':b?.['name'],'op':b?.['value']?.['fields']?.['op'],'signer':b?.['value']?.['fields']?.['signer'],'external_guard':b?.['value']?.['fields']?.['external_guard'],'amount':b?.['value']?.['fields']?.['amount'],'time':b?.['value']?.['fields']?.['time'],'store_from_id':b?.['value']?.['fields']?.['store_from_id']??null};}case'TableItem_EntityLinker':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'address':b?.['name'],'pos':b?.['value']?.['fields']?.['pos'],'count':b?.['value']?.['fields']?.['count'],'votes':b?.['value']?.['fields']?.['votes']?.['map'](l=>{return{'who':l['fields']['who'],'info':l['fields']['info'],'like':(l['fields']['info']&0x2)!==0x0,'dislike':(l['fields']['info']&0x4)!==0x0,'affiliation':(l['fields']['info']&0x8)!==0x0,'time':l['fields']['time']};})};}case'TableItem_EntityRegistrar':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'address':b?.['name'],'description':b?.['value']?.['fields']?.['description'],'time':b?.['value']?.['fields']?.['time'],'referrer':b?.['referrer'],'mark_object':b?.['value']?.['fields']?.['resource'],'records':b?.['value']?.['fields']?.['records']?.['map'](l=>{return{'name':l['fields']['name'],'typed_value':l['fields']['typed_value'],'value':bcsBytesToValue(Uint8Array['from'](l['fields']['typed_value']))};})};}case'Resource':{return{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'entity_count':parseInt(b?.['table']?.['fields']?.['size'])};}case'TableItem_AddressMark':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'entity':b?.['name'],'name':b?.['value']?.['fields']?.['name'],'tags':b?.['value']?.['fields']?.['tags']};}case'TableItem_RepositoryData':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'entity':b?.['name']?.['fields']?.['id'],'name':b?.['name']?.['fields']?.['key'],'value':b?.['value'],'data':{'value_type':b?.['value'][0x0],'value':bcsBytesToValue(Uint8Array['from'](b['value']))}};}case'TableItem_RewardRecord':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'recipient':b?.['name'],'guard':b?.['value']?.['fields']?.['guard'],'total':b?.['value']?.['fields']?.['total'],'record':b?.['value']?.['fields']?.['amount']['map'](l=>{return{'amount':l['fields']['amount'],'time':l['fields']['time'],'store_from_id':l['fields']['store_from_id']??null};})};}case'EntityRegistrar':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'entity_count':parseInt(b?.['table']?.['fields']?.['size'])};}case'EntityLinker':{return console['dir'](b,{'depth':null,'colors':!![]}),{'object':c,'type':g,'type_raw':d,'owner':f,'version':e,'previousTransaction':a?.['previousTransaction'],'entity_count':parseInt(b?.['table']?.['fields']?.['size'])};}}return{'object':c,'type':undefined,'type_raw':d,'owner':f,'version':e};}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { BcsReader } from "./reader.js";
|
|
2
|
+
import type { BcsWriterOptions } from "./writer.js";
|
|
3
|
+
import { BcsWriter } from "./writer.js";
|
|
4
|
+
import type { EnumInputShape, EnumOutputShape, JoinString } from "./types.js";
|
|
5
|
+
export interface BcsTypeOptions<T, Input = T, Name extends string = string> {
|
|
6
|
+
name?: Name;
|
|
7
|
+
validate?: (value: Input) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare class BcsType<T, Input = T, const Name extends string = string> {
|
|
10
|
+
#private;
|
|
11
|
+
$inferType: T;
|
|
12
|
+
$inferInput: Input;
|
|
13
|
+
name: Name;
|
|
14
|
+
read: (reader: BcsReader) => T;
|
|
15
|
+
serializedSize: (value: Input, options?: BcsWriterOptions) => number | null;
|
|
16
|
+
validate: (value: Input) => void;
|
|
17
|
+
constructor(options: {
|
|
18
|
+
name: Name;
|
|
19
|
+
read: (reader: BcsReader) => T;
|
|
20
|
+
write: (value: Input, writer: BcsWriter) => void;
|
|
21
|
+
serialize?: (value: Input, options?: BcsWriterOptions) => Uint8Array<ArrayBuffer>;
|
|
22
|
+
serializedSize?: (value: Input) => number | null;
|
|
23
|
+
validate?: (value: Input) => void;
|
|
24
|
+
} & BcsTypeOptions<T, Input, Name>);
|
|
25
|
+
write(value: Input, writer: BcsWriter): void;
|
|
26
|
+
serialize(value: Input, options?: BcsWriterOptions): SerializedBcs<T, Input>;
|
|
27
|
+
parse(bytes: Uint8Array): T;
|
|
28
|
+
fromHex(hex: string): T;
|
|
29
|
+
fromBase58(b64: string): T;
|
|
30
|
+
fromBase64(b64: string): T;
|
|
31
|
+
transform<T2 = T, Input2 = Input, NewName extends string = Name>({ name, input, output, validate, }: {
|
|
32
|
+
input?: (val: Input2) => Input;
|
|
33
|
+
output?: (value: T) => T2;
|
|
34
|
+
} & BcsTypeOptions<T2, Input2, NewName>): BcsType<T2, Input2, NewName>;
|
|
35
|
+
}
|
|
36
|
+
declare const SERIALIZED_BCS_BRAND: never;
|
|
37
|
+
export declare function isSerializedBcs(obj: unknown): obj is SerializedBcs<unknown>;
|
|
38
|
+
export declare class SerializedBcs<T, Input = T> {
|
|
39
|
+
#private;
|
|
40
|
+
[SERIALIZED_BCS_BRAND]: boolean;
|
|
41
|
+
constructor(schema: BcsType<T, Input>, bytes: Uint8Array<ArrayBuffer>);
|
|
42
|
+
toBytes(): Uint8Array<ArrayBuffer>;
|
|
43
|
+
toHex(): string;
|
|
44
|
+
toBase64(): string;
|
|
45
|
+
toBase58(): string;
|
|
46
|
+
parse(): T;
|
|
47
|
+
}
|
|
48
|
+
export declare function fixedSizeBcsType<T, Input = T, const Name extends string = string>({ size, ...options }: {
|
|
49
|
+
name: Name;
|
|
50
|
+
size: number;
|
|
51
|
+
read: (reader: BcsReader) => T;
|
|
52
|
+
write: (value: Input, writer: BcsWriter) => void;
|
|
53
|
+
} & BcsTypeOptions<T, Input, Name>): BcsType<T, Input, Name>;
|
|
54
|
+
export declare function uIntBcsType<const Name extends string = string>({ readMethod, writeMethod, ...options }: {
|
|
55
|
+
name: Name;
|
|
56
|
+
size: number;
|
|
57
|
+
readMethod: `read${8 | 16 | 32}`;
|
|
58
|
+
writeMethod: `write${8 | 16 | 32}`;
|
|
59
|
+
maxValue: number;
|
|
60
|
+
} & BcsTypeOptions<number, number, Name>): BcsType<number, number, Name>;
|
|
61
|
+
export declare function bigUIntBcsType<const Name extends string = string>({ readMethod, writeMethod, ...options }: {
|
|
62
|
+
name: Name;
|
|
63
|
+
size: number;
|
|
64
|
+
readMethod: `read${64 | 128 | 256}`;
|
|
65
|
+
writeMethod: `write${64 | 128 | 256}`;
|
|
66
|
+
maxValue: bigint;
|
|
67
|
+
} & BcsTypeOptions<string, string | number | bigint>): BcsType<string, string | number | bigint, Name>;
|
|
68
|
+
export declare function dynamicSizeBcsType<T, Input = T, const Name extends string = string>({ serialize, ...options }: {
|
|
69
|
+
name: Name;
|
|
70
|
+
read: (reader: BcsReader) => T;
|
|
71
|
+
serialize: (value: Input, options?: BcsWriterOptions) => Uint8Array<ArrayBuffer>;
|
|
72
|
+
} & BcsTypeOptions<T, Input>): BcsType<T, Input, string>;
|
|
73
|
+
export declare function stringLikeBcsType<const Name extends string = string>({ toBytes, fromBytes, ...options }: {
|
|
74
|
+
name: Name;
|
|
75
|
+
toBytes: (value: string) => Uint8Array;
|
|
76
|
+
fromBytes: (bytes: Uint8Array) => string;
|
|
77
|
+
serializedSize?: (value: string) => number | null;
|
|
78
|
+
} & BcsTypeOptions<string, string, Name>): BcsType<string, string, Name>;
|
|
79
|
+
export declare function lazyBcsType<T, Input>(cb: () => BcsType<T, Input>): BcsType<T, Input, string>;
|
|
80
|
+
export interface BcsStructOptions<T extends Record<string, BcsType<any>>, Name extends string = string> extends Omit<BcsTypeOptions<{
|
|
81
|
+
[K in keyof T]: T[K] extends BcsType<infer U, any> ? U : never;
|
|
82
|
+
}, {
|
|
83
|
+
[K in keyof T]: T[K] extends BcsType<any, infer U> ? U : never;
|
|
84
|
+
}, Name>, "name"> {
|
|
85
|
+
name: Name;
|
|
86
|
+
fields: T;
|
|
87
|
+
}
|
|
88
|
+
export declare class BcsStruct<T extends Record<string, BcsType<any>>, const Name extends string = string> extends BcsType<{
|
|
89
|
+
[K in keyof T]: T[K] extends BcsType<infer U, any> ? U : never;
|
|
90
|
+
}, {
|
|
91
|
+
[K in keyof T]: T[K] extends BcsType<any, infer U> ? U : never;
|
|
92
|
+
}, Name> {
|
|
93
|
+
constructor({ name, fields, ...options }: BcsStructOptions<T, Name>);
|
|
94
|
+
}
|
|
95
|
+
export interface BcsEnumOptions<T extends Record<string, BcsType<any> | null>, Name extends string = string> extends Omit<BcsTypeOptions<EnumOutputShape<{
|
|
96
|
+
[K in keyof T]: T[K] extends BcsType<infer U, any, any> ? U : true;
|
|
97
|
+
}>, EnumInputShape<{
|
|
98
|
+
[K in keyof T]: T[K] extends BcsType<any, infer U, any> ? U : boolean | object | null;
|
|
99
|
+
}>, Name>, "name"> {
|
|
100
|
+
name: Name;
|
|
101
|
+
fields: T;
|
|
102
|
+
}
|
|
103
|
+
export declare class BcsEnum<T extends Record<string, BcsType<any> | null>, const Name extends string = string> extends BcsType<EnumOutputShape<{
|
|
104
|
+
[K in keyof T]: T[K] extends BcsType<infer U, any> ? U : true;
|
|
105
|
+
}>, EnumInputShape<{
|
|
106
|
+
[K in keyof T]: T[K] extends BcsType<any, infer U, any> ? U : boolean | object | null;
|
|
107
|
+
}>, Name> {
|
|
108
|
+
constructor({ fields, ...options }: BcsEnumOptions<T, Name>);
|
|
109
|
+
}
|
|
110
|
+
export interface BcsTupleOptions<T extends readonly BcsType<any>[], Name extends string> extends Omit<BcsTypeOptions<{
|
|
111
|
+
-readonly [K in keyof T]: T[K] extends BcsType<infer T, any> ? T : never;
|
|
112
|
+
}, {
|
|
113
|
+
[K in keyof T]: T[K] extends BcsType<any, infer T> ? T : never;
|
|
114
|
+
}, Name>, "name"> {
|
|
115
|
+
name?: Name;
|
|
116
|
+
fields: T;
|
|
117
|
+
}
|
|
118
|
+
export declare class BcsTuple<const T extends readonly BcsType<any>[], const Name extends string = `(${JoinString<{
|
|
119
|
+
[K in keyof T]: T[K] extends BcsType<any, any, infer T> ? T : never;
|
|
120
|
+
}, ", ">})`> extends BcsType<{
|
|
121
|
+
-readonly [K in keyof T]: T[K] extends BcsType<infer T, any> ? T : never;
|
|
122
|
+
}, {
|
|
123
|
+
[K in keyof T]: T[K] extends BcsType<any, infer T> ? T : never;
|
|
124
|
+
}, Name> {
|
|
125
|
+
constructor({ fields, name, ...options }: BcsTupleOptions<T, Name>);
|
|
126
|
+
}
|
|
127
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{fromBase58,fromBase64,toBase58,toBase64,fromHex,toHex}from'../utils/index.js';import{BcsReader}from'./reader.js';import{ulebEncode}from'./uleb.js';import{BcsWriter}from'./writer.js';export class BcsType{['$inferType'];['$inferInput'];['name'];['read'];['serializedSize'];['validate'];#write;#serialize;constructor(a){this['name']=a['name'],this['read']=a['read'],this['serializedSize']=a['serializedSize']??(()=>null),this.#write=a['write'],this.#serialize=a['serialize']??((b,c)=>{const d=new BcsWriter({'initialSize':this['serializedSize'](b)??undefined,...c});return this.#write(b,d),d['toBytes']();}),this['validate']=a['validate']??(()=>{});}['write'](a,b){this['validate'](a),this.#write(a,b);}['serialize'](a,b){return this['validate'](a),new SerializedBcs(this,this.#serialize(a,b));}['parse'](a){const b=new BcsReader(a);return this['read'](b);}['fromHex'](a){return this['parse'](fromHex(a));}['fromBase58'](a){return this['parse'](fromBase58(a));}['fromBase64'](a){return this['parse'](fromBase64(a));}['transform']({name:a,input:b,output:c,validate:d}){return new BcsType({'name':a??this['name'],'read':e=>c?c(this['read'](e)):this['read'](e),'write':(e,f)=>this.#write(b?b(e):e,f),'serializedSize':e=>this['serializedSize'](b?b(e):e),'serialize':(e,f)=>this.#serialize(b?b(e):e,f),'validate':e=>{d?.(e),this['validate'](b?b(e):e);}});}}const SERIALIZED_BCS_BRAND=Symbol['for']('@mysten/serialized-bcs');export function isSerializedBcs(a){return!!a&&typeof a==='object'&&a[SERIALIZED_BCS_BRAND]===!![];}export class SerializedBcs{#schema;#bytes;get[SERIALIZED_BCS_BRAND](){return!![];}constructor(a,b){this.#schema=a,this.#bytes=b;}['toBytes'](){return this.#bytes;}['toHex'](){return toHex(this.#bytes);}['toBase64'](){return toBase64(this.#bytes);}['toBase58'](){return toBase58(this.#bytes);}['parse'](){return this.#schema['parse'](this.#bytes);}}export function fixedSizeBcsType({size:a,...b}){return new BcsType({...b,'serializedSize':()=>a});}export function uIntBcsType({readMethod:a,writeMethod:b,...c}){return fixedSizeBcsType({...c,'read':d=>d[a](),'write':(d,e)=>e[b](d),'validate':d=>{if(d<0x0||d>c['maxValue'])throw new TypeError('Invalid\x20'+c['name']+'\x20value:\x20'+d+'.\x20Expected\x20value\x20in\x20range\x200-'+c['maxValue']);c['validate']?.(d);}});}export function bigUIntBcsType({readMethod:a,writeMethod:b,...c}){return fixedSizeBcsType({...c,'read':d=>d[a](),'write':(d,e)=>e[b](BigInt(d)),'validate':d=>{const e=BigInt(d);if(e<0x0||e>c['maxValue'])throw new TypeError('Invalid\x20'+c['name']+'\x20value:\x20'+e+'.\x20Expected\x20value\x20in\x20range\x200-'+c['maxValue']);c['validate']?.(e);}});}export function dynamicSizeBcsType({serialize:a,...b}){const c=new BcsType({...b,'serialize':a,'write':(d,e)=>{for(const f of c['serialize'](d)['toBytes']()){e['write8'](f);}}});return c;}export function stringLikeBcsType({toBytes:a,fromBytes:b,...c}){return new BcsType({...c,'read':d=>{const e=d['readULEB'](),f=d['readBytes'](e);return b(f);},'write':(d,e)=>{const f=a(d);e['writeULEB'](f['length']);for(let g=0x0;g<f['length'];g++){e['write8'](f[g]);}},'serialize':d=>{const e=a(d),f=ulebEncode(e['length']),g=new Uint8Array(f['length']+e['length']);return g['set'](f,0x0),g['set'](e,f['length']),g;},'validate':d=>{if(typeof d!=='string')throw new TypeError('Invalid\x20'+c['name']+'\x20value:\x20'+d+'.\x20Expected\x20string');c['validate']?.(d);}});}export function lazyBcsType(a){let b=null;function c(){return!b&&(b=a()),b;}return new BcsType({'name':'lazy','read':d=>c()['read'](d),'serializedSize':d=>c()['serializedSize'](d),'write':(d,e)=>c()['write'](d,e),'serialize':(d,e)=>c()['serialize'](d,e)['toBytes']()});}export class BcsStruct extends BcsType{constructor({name:a,fields:b,...c}){const d=Object['entries'](b);super({'name':a,'serializedSize':e=>{let f=0x0;for(const [g,h]of d){const i=h['serializedSize'](e[g]);if(i==null)return null;f+=i;}return f;},'read':e=>{const f={};for(const [g,h]of d){f[g]=h['read'](e);}return f;},'write':(e,f)=>{for(const [g,h]of d){h['write'](e[g],f);}},...c,'validate':e=>{c?.['validate']?.(e);if(typeof e!=='object'||e==null)throw new TypeError('Expected\x20object,\x20found\x20'+typeof e);}});}}export class BcsEnum extends BcsType{constructor({fields:a,...b}){const c=Object['entries'](a);super({'read':d=>{const e=d['readULEB'](),f=c[e];if(!f)throw new TypeError('Unknown\x20value\x20'+e+'\x20for\x20enum\x20'+b['name']);const [g,h]=f;return{[g]:h?.['read'](d)??!![],'$kind':g};},'write':(d,e)=>{const [f,g]=Object['entries'](d)['filter'](([h])=>Object['hasOwn'](a,h))[0x0];for(let h=0x0;h<c['length'];h++){const [j,k]=c[h];if(j===f){e['writeULEB'](h),k?.['write'](g,e);return;}}},...b,'validate':d=>{b?.['validate']?.(d);if(typeof d!=='object'||d==null)throw new TypeError('Expected\x20object,\x20found\x20'+typeof d);const e=Object['keys'](d)['filter'](g=>d[g]!==undefined&&Object['hasOwn'](a,g));if(e['length']!==0x1)throw new TypeError('Expected\x20object\x20with\x20one\x20key,\x20but\x20found\x20'+e['length']+'\x20for\x20type\x20'+b['name']+'}');const [f]=e;if(!Object['hasOwn'](a,f))throw new TypeError('Invalid\x20enum\x20variant\x20'+f);}});}}export class BcsTuple extends BcsType{constructor({fields:a,name:b,...c}){super({'name':b??'('+a['map'](d=>d['name'])['join'](',\x20')+')','serializedSize':d=>{let e=0x0;for(let f=0x0;f<a['length'];f++){const g=a[f]['serializedSize'](d[f]);if(g==null)return null;e+=g;}return e;},'read':d=>{const e=[];for(const f of a){e['push'](f['read'](d));}return e;},'write':(d,e)=>{for(let f=0x0;f<a['length'];f++){a[f]['write'](d[f],e);}},...c,'validate':d=>{c?.['validate']?.(d);if(!Array['isArray'](d))throw new TypeError('Expected\x20array,\x20found\x20'+typeof d);if(d['length']!==a['length'])throw new TypeError('Expected\x20array\x20of\x20length\x20'+a['length']+',\x20found\x20'+d['length']);}});}}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { BcsTypeOptions } from "./bcs-type.js";
|
|
2
|
+
import { BcsEnum, BcsStruct, BcsTuple, BcsType } from "./bcs-type.js";
|
|
3
|
+
import type { EnumInputShape, EnumOutputShape, InferBcsInput, InferBcsType, JoinString } from "./types.js";
|
|
4
|
+
declare function fixedArray<T extends BcsType<any>, Name extends string = string>(size: number, type: T, options?: BcsTypeOptions<InferBcsType<T>[], Iterable<InferBcsInput<T>> & {
|
|
5
|
+
length: number;
|
|
6
|
+
}, Name>): BcsType<InferBcsType<T>[], Iterable<InferBcsInput<T>> & {
|
|
7
|
+
length: number;
|
|
8
|
+
}, Name>;
|
|
9
|
+
declare function fixedArray<T, Input, Name extends string = string>(size: number, type: BcsType<T, Input>, options?: BcsTypeOptions<T[], Iterable<Input> & {
|
|
10
|
+
length: number;
|
|
11
|
+
}, Name>): BcsType<T[], Iterable<Input> & {
|
|
12
|
+
length: number;
|
|
13
|
+
}, Name>;
|
|
14
|
+
declare function option<T extends BcsType<any>>(type: T): BcsType<InferBcsType<T> | null, InferBcsInput<T> | null | undefined, `Option<${T["name"]}>`>;
|
|
15
|
+
declare function option<T, Input, Name extends string = string>(type: BcsType<T, Input, Name>): BcsType<T | null, Input | null | undefined>;
|
|
16
|
+
declare function vector<T extends BcsType<any>, Name extends string = `vector<${T["name"]}>`>(type: T, options?: BcsTypeOptions<InferBcsType<T>[], Iterable<InferBcsInput<T>> & {
|
|
17
|
+
length: number;
|
|
18
|
+
}, Name>): BcsType<InferBcsType<T>[], Iterable<InferBcsInput<T>> & {
|
|
19
|
+
length: number;
|
|
20
|
+
}, Name>;
|
|
21
|
+
declare function vector<T, Input, Name extends string = string>(type: BcsType<T, Input, Name>, options?: BcsTypeOptions<T[], Iterable<Input> & {
|
|
22
|
+
length: number;
|
|
23
|
+
}, `vector<${Name}>`>): BcsType<T[], Iterable<Input> & {
|
|
24
|
+
length: number;
|
|
25
|
+
}, `vector<${Name}>`>;
|
|
26
|
+
declare function map<K extends BcsType<any>, V extends BcsType<any>>(keyType: K, valueType: V): BcsType<Map<InferBcsType<K>, InferBcsType<V>>, Map<InferBcsInput<K>, InferBcsInput<V>>, `Map<${K["name"]}, ${V["name"]}>`>;
|
|
27
|
+
declare function map<K, V, InputK = K, InputV = V>(keyType: BcsType<K, InputK>, valueType: BcsType<V, InputV>): BcsType<Map<K, V>, Map<InputK, InputV>, `Map<${string}, ${string}>`>;
|
|
28
|
+
export declare const bcs: {
|
|
29
|
+
u8(options?: BcsTypeOptions<number>): BcsType<number, number, "u8">;
|
|
30
|
+
u16(options?: BcsTypeOptions<number>): BcsType<number, number, "u16">;
|
|
31
|
+
u32(options?: BcsTypeOptions<number>): BcsType<number, number, "u32">;
|
|
32
|
+
u64(options?: BcsTypeOptions<string, number | bigint | string>): BcsType<string, string | number | bigint, "u64">;
|
|
33
|
+
u128(options?: BcsTypeOptions<string, number | bigint | string>): BcsType<string, string | number | bigint, "u128">;
|
|
34
|
+
u256(options?: BcsTypeOptions<string, number | bigint | string>): BcsType<string, string | number | bigint, "u256">;
|
|
35
|
+
bool(options?: BcsTypeOptions<boolean>): BcsType<boolean, boolean, "bool">;
|
|
36
|
+
uleb128(options?: BcsTypeOptions<number>): BcsType<number, number, string>;
|
|
37
|
+
bytes<T extends number>(size: T, options?: BcsTypeOptions<Uint8Array, Iterable<number>>): BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, `bytes[${T}]`>;
|
|
38
|
+
byteVector(options?: BcsTypeOptions<Uint8Array, Iterable<number>>): BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "vector<u8>">;
|
|
39
|
+
string(options?: BcsTypeOptions<string>): BcsType<string, string, "string">;
|
|
40
|
+
fixedArray: typeof fixedArray;
|
|
41
|
+
option: typeof option;
|
|
42
|
+
vector: typeof vector;
|
|
43
|
+
tuple<const T extends readonly BcsType<any, any>[], const Name extends string = `(${JoinString<{ [K in keyof T]: T[K] extends BcsType<any, any, infer T_1 extends string> ? T_1 : never; }, ", ">})`>(fields: T, options?: BcsTypeOptions<{ -readonly [K_1 in keyof T]: T[K_1] extends BcsType<infer T_1, any> ? T_1 : never; }, { [K_1 in keyof T]: T[K_1] extends BcsType<any, infer T_1> ? T_1 : never; }, Name>): BcsTuple<T, Name>;
|
|
44
|
+
struct<T extends Record<string, BcsType<any>>, const Name extends string = string>(name: Name, fields: T, options?: Omit<BcsTypeOptions<{ [K in keyof T]: T[K] extends BcsType<infer U, any> ? U : never; }, { [K in keyof T]: T[K] extends BcsType<any, infer U> ? U : never; }>, "name">): BcsStruct<T, string>;
|
|
45
|
+
enum<T extends Record<string, BcsType<any> | null>, const Name extends string = string>(name: Name, fields: T, options?: Omit<BcsTypeOptions<EnumOutputShape<{ [K in keyof T]: T[K] extends BcsType<infer U, any, any> ? U : true; }>, EnumInputShape<{ [K in keyof T]: T[K] extends BcsType<any, infer U, any> ? U : boolean | object | null; }>, Name>, "name">): BcsEnum<T, Name>;
|
|
46
|
+
map: typeof map;
|
|
47
|
+
lazy<T extends BcsType<any>>(cb: () => T): T;
|
|
48
|
+
};
|
|
49
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BcsEnum,BcsStruct,BcsTuple,BcsType,bigUIntBcsType,dynamicSizeBcsType,fixedSizeBcsType,lazyBcsType,stringLikeBcsType,uIntBcsType}from'./bcs-type.js';import{ulebEncode}from'./uleb.js';function fixedArray(a,b,c){return new BcsType({'read':d=>{const e=new Array(a);for(let f=0x0;f<a;f++){e[f]=b['read'](d);}return e;},'write':(d,e)=>{for(const f of d){b['write'](f,e);}},...c,'name':c?.['name']??b['name']+'['+a+']','validate':d=>{c?.['validate']?.(d);if(!d||typeof d!=='object'||!('length'in d))throw new TypeError('Expected\x20array,\x20found\x20'+typeof d);if(d['length']!==a)throw new TypeError('Expected\x20array\x20of\x20length\x20'+a+',\x20found\x20'+d['length']);}});}function option(a){return bcs['enum']('Option<'+a['name']+'>',{'None':null,'Some':a})['transform']({'input':b=>{if(b==null)return{'None':!![]};return{'Some':b};},'output':b=>{if(b['$kind']==='Some')return b['Some'];return null;}});}function vector(a,b){return new BcsType({'read':c=>{const d=c['readULEB'](),e=new Array(d);for(let f=0x0;f<d;f++){e[f]=a['read'](c);}return e;},'write':(c,d)=>{d['writeULEB'](c['length']);for(const e of c){a['write'](e,d);}},...b,'name':b?.['name']??'vector<'+a['name']+'>','validate':c=>{b?.['validate']?.(c);if(!c||typeof c!=='object'||!('length'in c))throw new TypeError('Expected\x20array,\x20found\x20'+typeof c);}});}function map(a,b){return bcs['vector'](bcs['tuple']([a,b]))['transform']({'name':'Map<'+a['name']+',\x20'+b['name']+'>','input':c=>{return[...c['entries']()];},'output':c=>{const d=new Map();for(const [e,f]of c){d['set'](e,f);}return d;}});}export const bcs={'u8'(a){return uIntBcsType({'readMethod':'read8','writeMethod':'write8','size':0x1,'maxValue':0x2**0x8-0x1,...a,'name':a?.['name']??'u8'});},'u16'(a){return uIntBcsType({'readMethod':'read16','writeMethod':'write16','size':0x2,'maxValue':0x2**0x10-0x1,...a,'name':a?.['name']??'u16'});},'u32'(a){return uIntBcsType({'readMethod':'read32','writeMethod':'write32','size':0x4,'maxValue':0x2**0x20-0x1,...a,'name':a?.['name']??'u32'});},'u64'(a){return bigUIntBcsType({'readMethod':'read64','writeMethod':'write64','size':0x8,'maxValue':0x2n**0x40n-0x1n,...a,'name':a?.['name']??'u64'});},'u128'(a){return bigUIntBcsType({'readMethod':'read128','writeMethod':'write128','size':0x10,'maxValue':0x2n**0x80n-0x1n,...a,'name':a?.['name']??'u128'});},'u256'(a){return bigUIntBcsType({'readMethod':'read256','writeMethod':'write256','size':0x20,'maxValue':0x2n**0x100n-0x1n,...a,'name':a?.['name']??'u256'});},'bool'(a){return fixedSizeBcsType({'size':0x1,'read':b=>b['read8']()===0x1,'write':(b,c)=>c['write8'](b?0x1:0x0),...a,'name':a?.['name']??'bool','validate':b=>{a?.['validate']?.(b);if(typeof b!=='boolean')throw new TypeError('Expected\x20boolean,\x20found\x20'+typeof b);}});},'uleb128'(a){return dynamicSizeBcsType({'read':b=>b['readULEB'](),'serialize':b=>{return Uint8Array['from'](ulebEncode(b));},...a,'name':a?.['name']??'uleb128'});},'bytes'(a,b){return fixedSizeBcsType({'size':a,'read':c=>c['readBytes'](a),'write':(c,d)=>{d['writeBytes'](new Uint8Array(c));},...b,'name':b?.['name']??'bytes['+a+']','validate':c=>{b?.['validate']?.(c);if(!c||typeof c!=='object'||!('length'in c))throw new TypeError('Expected\x20array,\x20found\x20'+typeof c);if(c['length']!==a)throw new TypeError('Expected\x20array\x20of\x20length\x20'+a+',\x20found\x20'+c['length']);}});},'byteVector'(a){return new BcsType({'read':b=>{const c=b['readULEB']();return b['readBytes'](c);},'write':(b,c)=>{const d=new Uint8Array(b);c['writeULEB'](d['length']),c['writeBytes'](d);},...a,'name':a?.['name']??'vector<u8>','serializedSize':b=>{const c='length'in b?b['length']:null;return c==null?null:ulebEncode(c)['length']+c;},'validate':b=>{a?.['validate']?.(b);if(!b||typeof b!=='object'||!('length'in b))throw new TypeError('Expected\x20array,\x20found\x20'+typeof b);}});},'string'(a){return stringLikeBcsType({'toBytes':b=>new TextEncoder()['encode'](b),'fromBytes':b=>new TextDecoder()['decode'](b),...a,'name':a?.['name']??'string'});},'fixedArray':fixedArray,'option':option,'vector':vector,'tuple'(a,b){return new BcsTuple({'fields':a,...b});},'struct'(a,b,c){return new BcsStruct({'name':a,'fields':b,...c});},'enum'(a,b,c){return new BcsEnum({'name':a,'fields':b,...c});},'map':map,'lazy'(a){return lazyBcsType(a);}};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { toBase58, fromBase58, toBase64, fromBase64, toHex, fromHex } from "../utils/index.js";
|
|
2
|
+
import type { BcsTypeOptions } from "./bcs-type.js";
|
|
3
|
+
import { BcsType, BcsStruct, BcsEnum, BcsTuple, isSerializedBcs, SerializedBcs } from "./bcs-type.js";
|
|
4
|
+
import { bcs } from "./bcs.js";
|
|
5
|
+
import { BcsReader } from "./reader.js";
|
|
6
|
+
import type { EnumInputShape, EnumOutputShape, EnumOutputShapeWithKeys, InferBcsInput, InferBcsType } from "./types.js";
|
|
7
|
+
import { decodeStr, encodeStr, splitGenericParameters } from "./utils.js";
|
|
8
|
+
import type { BcsWriterOptions } from "./writer.js";
|
|
9
|
+
import { BcsWriter } from "./writer.js";
|
|
10
|
+
export { bcs, BcsType, BcsStruct, BcsEnum, BcsTuple, type BcsTypeOptions, SerializedBcs, isSerializedBcs, toBase58, fromBase58, toBase64, fromBase64, toHex, fromHex, encodeStr, decodeStr, splitGenericParameters, BcsReader, BcsWriter, type BcsWriterOptions, type InferBcsInput, type InferBcsType, type EnumOutputShape, type EnumInputShape, type EnumOutputShapeWithKeys, };
|
|
11
|
+
export declare const toB58: (buffer: Uint8Array) => string;
|
|
12
|
+
export declare const fromB58: (str: string) => Uint8Array<ArrayBuffer>;
|
|
13
|
+
export declare const toB64: typeof toBase64;
|
|
14
|
+
export declare const fromB64: typeof fromBase64;
|
|
15
|
+
export declare const toHEX: typeof toHex;
|
|
16
|
+
export declare const fromHEX: typeof fromHex;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{toBase58,fromBase58,toBase64,fromBase64,toHex,fromHex}from'../utils/index.js';import{BcsType,BcsStruct,BcsEnum,BcsTuple,isSerializedBcs,SerializedBcs}from'./bcs-type.js';import{bcs}from'./bcs.js';import{BcsReader}from'./reader.js';import{decodeStr,encodeStr,splitGenericParameters}from'./utils.js';import{BcsWriter}from'./writer.js';export{bcs,BcsType,BcsStruct,BcsEnum,BcsTuple,SerializedBcs,isSerializedBcs,toBase58,fromBase58,toBase64,fromBase64,toHex,fromHex,encodeStr,decodeStr,splitGenericParameters,BcsReader,BcsWriter};export const toB58=toBase58;export const fromB58=fromBase58;export const toB64=toBase64;export const fromB64=fromBase64;export const toHEX=toHex;export const fromHEX=fromHex;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class BcsReader {
|
|
2
|
+
private dataView;
|
|
3
|
+
private bytePosition;
|
|
4
|
+
constructor(data: Uint8Array);
|
|
5
|
+
shift(bytes: number): this;
|
|
6
|
+
read8(): number;
|
|
7
|
+
read16(): number;
|
|
8
|
+
read32(): number;
|
|
9
|
+
read64(): string;
|
|
10
|
+
read128(): string;
|
|
11
|
+
read256(): string;
|
|
12
|
+
readBytes(num: number): Uint8Array;
|
|
13
|
+
readULEB(): number;
|
|
14
|
+
readVec(cb: (reader: BcsReader, i: number, length: number) => any): any[];
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ulebDecode}from'./uleb.js';export class BcsReader{['dataView'];['bytePosition']=0x0;constructor(a){this['dataView']=new DataView(a['buffer'],a['byteOffset'],a['byteLength']);}['shift'](a){return this['bytePosition']+=a,this;}['read8'](){const a=this['dataView']['getUint8'](this['bytePosition']);return this['shift'](0x1),a;}['read16'](){const a=this['dataView']['getUint16'](this['bytePosition'],!![]);return this['shift'](0x2),a;}['read32'](){const a=this['dataView']['getUint32'](this['bytePosition'],!![]);return this['shift'](0x4),a;}['read64'](){const a=this['read32'](),b=this['read32'](),c=b['toString'](0x10)+a['toString'](0x10)['padStart'](0x8,'0');return BigInt('0x'+c)['toString'](0xa);}['read128'](){const a=BigInt(this['read64']()),b=BigInt(this['read64']()),c=b['toString'](0x10)+a['toString'](0x10)['padStart'](0x10,'0');return BigInt('0x'+c)['toString'](0xa);}['read256'](){const a=BigInt(this['read128']()),b=BigInt(this['read128']()),c=b['toString'](0x10)+a['toString'](0x10)['padStart'](0x20,'0');return BigInt('0x'+c)['toString'](0xa);}['readBytes'](a){const b=this['bytePosition']+this['dataView']['byteOffset'],c=new Uint8Array(this['dataView']['buffer'],b,a);return this['shift'](a),c;}['readULEB'](){const a=this['bytePosition']+this['dataView']['byteOffset'],b=new Uint8Array(this['dataView']['buffer'],a),{value:c,length:d}=ulebDecode(b);return this['shift'](d),c;}['readVec'](a){const b=this['readULEB'](),c=[];for(let d=0x0;d<b;d++){c['push'](a(this,d,b));}return c;}}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Simplify } from "../utils/index.js";
|
|
2
|
+
import type { BcsType } from "./bcs-type.js";
|
|
3
|
+
export type Encoding = "base58" | "base64" | "hex";
|
|
4
|
+
export type InferBcsType<T extends BcsType<any>> = T extends BcsType<infer U, any> ? U : never;
|
|
5
|
+
export type InferBcsInput<T extends BcsType<any, any>> = T extends BcsType<any, infer U> ? U : never;
|
|
6
|
+
export type EnumOutputShape<T extends Record<string, unknown>, Keys extends string = Extract<keyof T, string>, Values = T[keyof T] extends infer Type ? Type extends BcsType<infer U> ? U : never : never> = 0 extends Values ? EnumOutputShapeWithKeys<T, never> : 0n extends Values ? EnumOutputShapeWithKeys<T, never> : "" extends Values ? EnumOutputShapeWithKeys<T, never> : false extends Values ? EnumOutputShapeWithKeys<T, never> : EnumOutputShapeWithKeys<T, Keys>;
|
|
7
|
+
export type EnumOutputShapeWithKeys<T extends Record<string, unknown>, Keys extends string> = {
|
|
8
|
+
[K in keyof T]: Exclude<Keys, K> extends infer Empty extends string ? Simplify<{
|
|
9
|
+
[K2 in K]: T[K];
|
|
10
|
+
} & {
|
|
11
|
+
[K in Empty]?: never;
|
|
12
|
+
} & {
|
|
13
|
+
$kind: K;
|
|
14
|
+
}> : never;
|
|
15
|
+
}[keyof T];
|
|
16
|
+
export type EnumInputShape<T extends Record<string, unknown>> = {
|
|
17
|
+
[K in keyof T]: {
|
|
18
|
+
[K2 in K]: T[K];
|
|
19
|
+
};
|
|
20
|
+
}[keyof T];
|
|
21
|
+
export type JoinString<T, Sep extends string> = T extends readonly [
|
|
22
|
+
infer F extends string,
|
|
23
|
+
...infer R extends string[]
|
|
24
|
+
] ? [] extends R ? F : `${F}${Sep}${JoinString<R, Sep>}` : "";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function ulebEncode(a){let b=BigInt(a);const c=[];let d=0x0;if(b===0x0n)return[0x0];while(b>0x0){c[d]=Number(b&0x7fn),b>>=0x7n,b>0x0n&&(c[d]|=0x80),d+=0x1;}return c;}export function ulebDecode(a){let b=0x0n,c=0x0n,d=0x0;while(!![]){if(d>=a['length'])throw new Error('ULEB\x20decode\x20error:\x20buffer\x20overflow');const e=a[d];d+=0x1,b+=BigInt(e&0x7f)<<c;if((e&0x80)===0x0)break;c+=0x7n;}if(b>BigInt(Number['MAX_SAFE_INTEGER']))throw new Error('ULEB\x20decode\x20error:\x20value\x20exceeds\x20MAX_SAFE_INTEGER');return{'value':Number(b),'length':d};}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Encoding } from "./types.js";
|
|
2
|
+
export declare function encodeStr(data: Uint8Array, encoding: Encoding): string;
|
|
3
|
+
export declare function decodeStr(data: string, encoding: Encoding): Uint8Array;
|
|
4
|
+
export declare function splitGenericParameters(str: string, genericSeparators?: [string, string]): any[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{fromBase58,fromBase64,fromHex,toBase58,toBase64,toHex}from'../utils/index.js';export function encodeStr(a,b){switch(b){case'base58':return toBase58(a);case'base64':return toBase64(a);case'hex':return toHex(a);default:throw new Error('Unsupported\x20encoding,\x20supported\x20values\x20are:\x20base64,\x20hex');}}export function decodeStr(a,b){switch(b){case'base58':return fromBase58(a);case'base64':return fromBase64(a);case'hex':return fromHex(a);default:throw new Error('Unsupported\x20encoding,\x20supported\x20values\x20are:\x20base64,\x20hex');}}export function splitGenericParameters(a,b=['<','>']){const [c,d]=b,e=[];let f='',g=0x0;for(let h=0x0;h<a['length'];h++){const j=a[h];j===c&&g++;j===d&&g--;if(g===0x0&&j===','){e['push'](f['trim']()),f='';continue;}f+=j;}return e['push'](f['trim']()),e;}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Encoding } from "./types.js";
|
|
2
|
+
export interface BcsWriterOptions {
|
|
3
|
+
initialSize?: number;
|
|
4
|
+
maxSize?: number;
|
|
5
|
+
allocateSize?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class BcsWriter {
|
|
8
|
+
private dataView;
|
|
9
|
+
private bytePosition;
|
|
10
|
+
private size;
|
|
11
|
+
private maxSize;
|
|
12
|
+
private allocateSize;
|
|
13
|
+
constructor({ initialSize, maxSize, allocateSize, }?: BcsWriterOptions);
|
|
14
|
+
private ensureSizeOrGrow;
|
|
15
|
+
shift(bytes: number): this;
|
|
16
|
+
write8(value: number | bigint): this;
|
|
17
|
+
writeBytes(bytes: Uint8Array): this;
|
|
18
|
+
write16(value: number | bigint): this;
|
|
19
|
+
write32(value: number | bigint): this;
|
|
20
|
+
write64(value: number | bigint): this;
|
|
21
|
+
write128(value: number | bigint): this;
|
|
22
|
+
write256(value: number | bigint): this;
|
|
23
|
+
writeULEB(value: number): this;
|
|
24
|
+
writeVec(vector: any[], cb: (writer: BcsWriter, el: any, i: number, len: number) => void): this;
|
|
25
|
+
[Symbol.iterator](): Iterator<number, Iterable<number>>;
|
|
26
|
+
toBytes(): Uint8Array<ArrayBuffer>;
|
|
27
|
+
toString(encoding: Encoding): string;
|
|
28
|
+
}
|