wowok 2.2.0 → 2.2.1
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/w/call/repository.js +1 -1
- package/dist/cjs/w/messenger/messenger-manager.js +1 -1
- package/dist/cjs/w/messenger/messenger.js +1 -1
- package/dist/cjs/w/messenger/pq/crypto.d.ts +39 -0
- package/dist/cjs/w/messenger/pq/crypto.js +1 -0
- package/dist/cjs/w/messenger/pq/erasure.d.ts +17 -0
- package/dist/cjs/w/messenger/pq/erasure.js +1 -0
- package/dist/cjs/w/messenger/pq/index.d.ts +9 -0
- package/dist/cjs/w/messenger/pq/index.js +1 -0
- package/dist/cjs/w/messenger/pq/keycombiner.d.ts +1 -0
- package/dist/cjs/w/messenger/pq/keycombiner.js +1 -0
- package/dist/cjs/w/messenger/pq/pqxdh.d.ts +41 -0
- package/dist/cjs/w/messenger/pq/pqxdh.js +1 -0
- package/dist/cjs/w/messenger/pq/ratchet.d.ts +12 -0
- package/dist/cjs/w/messenger/pq/ratchet.js +1 -0
- package/dist/cjs/w/messenger/pq/session.d.ts +39 -0
- package/dist/cjs/w/messenger/pq/session.js +1 -0
- package/dist/cjs/w/messenger/pq/spqr.d.ts +23 -0
- package/dist/cjs/w/messenger/pq/spqr.js +1 -0
- package/dist/cjs/w/messenger/pq/store-adapter.d.ts +33 -0
- package/dist/cjs/w/messenger/pq/store-adapter.js +1 -0
- package/dist/cjs/w/messenger/pq/types.d.ts +181 -0
- package/dist/cjs/w/messenger/pq/types.js +1 -0
- package/dist/cjs/w/messenger/session.d.ts +15 -16
- package/dist/cjs/w/messenger/session.js +1 -1
- package/dist/cjs/w/messenger/storage.d.ts +2 -0
- package/dist/cjs/w/messenger/storage.js +1 -1
- package/dist/cjs/w/messenger/types.d.ts +15 -1
- package/dist/cjs/w/messenger/types.js +1 -1
- package/dist/cjs/w/messenger/utils.js +1 -1
- package/dist/cjs/w/query/object.js +1 -1
- package/dist/esm/w/call/repository.js +1 -1
- package/dist/esm/w/messenger/messenger-manager.js +1 -1
- package/dist/esm/w/messenger/messenger.js +1 -1
- package/dist/esm/w/messenger/pq/crypto.d.ts +39 -0
- package/dist/esm/w/messenger/pq/crypto.js +1 -0
- package/dist/esm/w/messenger/pq/erasure.d.ts +17 -0
- package/dist/esm/w/messenger/pq/erasure.js +1 -0
- package/dist/esm/w/messenger/pq/index.d.ts +9 -0
- package/dist/esm/w/messenger/pq/index.js +1 -0
- package/dist/esm/w/messenger/pq/keycombiner.d.ts +1 -0
- package/dist/esm/w/messenger/pq/keycombiner.js +1 -0
- package/dist/esm/w/messenger/pq/pqxdh.d.ts +41 -0
- package/dist/esm/w/messenger/pq/pqxdh.js +1 -0
- package/dist/esm/w/messenger/pq/ratchet.d.ts +12 -0
- package/dist/esm/w/messenger/pq/ratchet.js +1 -0
- package/dist/esm/w/messenger/pq/session.d.ts +39 -0
- package/dist/esm/w/messenger/pq/session.js +1 -0
- package/dist/esm/w/messenger/pq/spqr.d.ts +23 -0
- package/dist/esm/w/messenger/pq/spqr.js +1 -0
- package/dist/esm/w/messenger/pq/store-adapter.d.ts +33 -0
- package/dist/esm/w/messenger/pq/store-adapter.js +1 -0
- package/dist/esm/w/messenger/pq/types.d.ts +181 -0
- package/dist/esm/w/messenger/pq/types.js +1 -0
- package/dist/esm/w/messenger/session.d.ts +15 -16
- package/dist/esm/w/messenger/session.js +1 -1
- package/dist/esm/w/messenger/storage.d.ts +2 -0
- package/dist/esm/w/messenger/storage.js +1 -1
- package/dist/esm/w/messenger/types.d.ts +15 -1
- package/dist/esm/w/messenger/types.js +1 -1
- package/dist/esm/w/messenger/utils.js +1 -1
- package/dist/esm/w/query/object.js +1 -1
- package/package.json +43 -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 a193a 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=a193a['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 a203a 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=a203a['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 +1 @@
|
|
|
1
|
-
import{toTxObject,toTxString,isValidDescription,MAX_DESCRIPTION_LENGTH,isValidName,PackageAddress,IsValidArgType,isValidU8,repositoryFn,parseValueType}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';import{owner_receive,validObjects,valueToBcsBytes,uint2address}from'../util.js';import{GetObjectExisted,GetObject,GetObjectDescription}from'../common.js';import{GetAccountOrMark_Address}from'../local/index.js';import{LocalMark}from'../local/local.js';import{CallBase}from'./base.js';import{BuiltinPermissionIndex,newPermission}from'./permission.js';import{IdFrom,ObjectType,parseIdFrom}from'../query/object.js';import{create as a161a}from'./permission.js';import{queryObjectsWithType}from'../query/util.js';import{query_received}from'../query/received.js';export const MAX_POLICY_DESCRIPTION_LEN=0x1f4;export const MAX_POLICY_COUNT=0x32;export const MAX_POLICY_GUARD_COUNT=0xa;export const MAX_DATA_SIZE=0xa000;export const MAX_ID_COUNT_ONCE=0x64;export const MAX_REWARD_COUNT=0x14;export class CallRepository extends CallBase{['data'];['object_address']=undefined;['permission_address']=undefined;['new_permission_description']=undefined;constructor(a){super(),this['data']=a;}async['prepare'](a){await super['prepare'](a);!this['object_address']&&(this['object_address']=await GetObjectExisted(this['data']?.['object']));if(this['object_address']){this['content']=undefined,await this['update_content'](a,ObjectType['Repository'],this['object_address']);if(!this['content'])W_ERROR(WErrors['InvalidParam'],'CallRepository_Data.data.object:'+this['object_address']);this['permission_address']=this['content']['permission'],!this['permission_address']&&W_ERROR(WErrors['InvalidParam'],'CallRepository_Data.data.object.permission\x20is\x20empty');}else{const b=GetObject(this['data']['object']);this['permission_address']=await GetObjectExisted(b?.['permission']),this['new_permission_description']=GetObjectDescription(b?.['permission']);}}async['call'](a){await this['prepare'](a);const b=[],c=[],d=f=>{!c['includes'](f)&&c['push'](f);},e=f=>{this['permission_address']&&!b['includes'](f)&&b['push'](f);};this['permission_address']&&!this['object_address']&&e(BuiltinPermissionIndex['REPOSITORY_NEW']);this['permission_address']&&this['data']?.['description']!=null&&this['object_address']&&e(BuiltinPermissionIndex['REPOSITORY_DESCRIPTION']);this['permission_address']&&this['data']?.['policies']!=null&&e(BuiltinPermissionIndex['REPOSITORY_POLICY']);if(this['data']?.['data_add']!=null){!this['content']&&W_ERROR(WErrors['InvalidParam'],'CallRepository_Data.data.data_add\x20fail\x20because\x20the\x20Repository\x20content\x20not\x20ready');const f=this['content']['policies']['find'](g=>g['name']===this['data']['data_add']['name']);!f&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20policy\x20name:\x20'+this['data']['data_add']['name']);if('items'in this['data']['data_add'])for(const g of this['data']['data_add']['items']){for(const h of g['data']){let i;if(typeof h['id']==='number'||typeof h['id']==='bigint'||typeof h['id']==='string')i=uint2address(h['id']);else{const j=await GetAccountOrMark_Address(h['id']);!j&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20id\x20address:\x20'+h['id']),i=j;}h['id']=i;}if(g['write_guard']){const k=await LocalMark['Instance']()['get_address'](g['write_guard']);k?(!f['write_guard']['find'](l=>l['guard']===k)&&W_ERROR(WErrors['InvalidParam'],g['write_guard']+'\x20('+k+')\x20is\x20not\x20match\x20in\x20policy\x20'+f['name']+'\x20with\x20write_guards:\x20'+f['write_guard']['map'](l=>l['guard'])['join'](',\x20')),g['write_guard']=k,d(k)):W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+g['write_guard']);}}else{if(this['data']['data_add']['write_guard']){const l=await LocalMark['Instance']()['get_address'](this['data']['data_add']['write_guard']);l?(!f['write_guard']['find'](m=>m['guard']===l)&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+this['data']['data_add']['write_guard']+'\x20in\x20policy\x20'+f['name']),this['data']['data_add']['write_guard']=l,d(l)):W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+this['data']['data_add']['write_guard']);}}}if(this['data']?.['data_remove']!=null){const m=this['content']['policies']['find'](n=>n['name']===this['data']['data_remove']['name']);!m&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20policy\x20name:\x20'+this['data']['data_remove']['name']);if('items'in this['data']['data_remove'])for(const n of this['data']['data_remove']['items']){const o=[];for(const q of n['id']){let s;if(typeof q==='number'||typeof q==='bigint'||typeof q==='string')s=uint2address(q);else{const t=await GetAccountOrMark_Address(q);!t&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20id\x20address:\x20'+q),s=t;}o['push'](s);}n['id']=o;if(n['write_guard']){const u=await LocalMark['Instance']()['get_address'](n['write_guard']);u?(!m['write_guard']['find'](v=>v['guard']===u)&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+n['write_guard']+'\x20in\x20policy\x20'+m['name']),n['write_guard']=u,d(u)):W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+n['write_guard']);}}else{if(this['data']['data_remove']['write_guard']){const v=await LocalMark['Instance']()['get_address'](this['data']['data_remove']['write_guard']);v?(!m['write_guard']['find'](w=>w['guard']===v)&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+this['data']['data_remove']['write_guard']+'\x20in\x20policy\x20'+m['name']),this['data']['data_remove']['write_guard']=v,d(v)):W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+this['data']['data_remove']['write_guard']);}}}this['permission_address']&&this['data']?.['rewards']!=null&&e(BuiltinPermissionIndex['REPOSITORY_REWARD']);this['permission_address']&&this['data']?.['owner_receive']!=null&&e(BuiltinPermissionIndex['REPOSITORY_OWNER_RECEIVE']);this['permission_address']&&this['data']?.['um']!==undefined&&e(BuiltinPermissionIndex['REPOSITORY_UM']);if(this['permission_address']||c['length']>0x0)return await this['check_permission_and_call'](a,this['permission_address'],b,c);return await this['exec'](a);}async['operate'](a,b,c,d){let e=this['permission_address'],f=this['object_address'];!this['object_address']&&(!e&&(e=newPermission(b,this['new_permission_description']??'')),e&&(f=newRepository(b,toTxObject(b,e),this['data']?.['description']??'',c)));(!f||!e)&&W_ERROR(WErrors['InvalidParam'],'CallRepository_Data.data.object:'+this['object_address']);this['data']?.['description']!=null&&this['object_address']&&description_set(b,f,e,this['data']['description'],c);if(this['data']?.['policies']!=null){(this['data']['policies']['op']==='set'||this['data']['policies']['op']==='add')&&await Promise['all'](this['data']['policies']['policy']['map'](async g=>{await Promise['all'](g['write_guard']['map'](async h=>{const i=await LocalMark['Instance']()['get_address'](h['guard']);i?h['guard']=i:W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+h['guard']);}));if(g['quote_guard']&&typeof g['quote_guard']==='string'){const h=await LocalMark['Instance']()['get_address'](g['quote_guard']);h?g['quote_guard']=h:W_ERROR(WErrors['InvalidParam'],'Invalid\x20quote_guard\x20address:\x20'+g['quote_guard']);}}));switch(this['data']['policies']['op']){case'set':{policy_set(b,f,e,this['data']['policies']['policy'],c);break;}case'add':{policy_add(b,f,e,this['data']['policies']['policy'],c);break;}case'remove':{policy_remove(b,f,e,this['data']['policies']['policy'],c);break;}case'clear':{policy_clear(b,f,e,c);break;}}}if(this['data']?.['data_add']!=null&&this['content']){const g=this['content']['policies']['find'](h=>h['name']===this['data']['data_add']['name']);!g&&W_ERROR(WErrors['InvalidParam'],'policy\x20'+this['data']['data_add']['name']+'\x20not\x20found\x20in\x20policies\x20'+this['content']['policies']['map'](h=>h['name'])),'items'in this['data']['data_add']?data(b,f,g,this['data']['data_add']['items'],c):data_id_from(b,f,g,this['data']['data_add'],c);}if(this['data']?.['data_remove']!=null){const h=this['content']['policies']['find'](i=>i['name']===this['data']['data_remove']['name']);!h&&W_ERROR(WErrors['InvalidParam'],'policy\x20'+this['data']['data_remove']['name']+'\x20not\x20found\x20in\x20policies\x20'+this['content']['policies']['map'](i=>i['name'])),'items'in this['data']['data_remove']?data_remove(b,f,h,{'items':this['data']['data_remove']['items']},c):data_remove(b,f,h,{'write_guard':this['data']['data_remove']['write_guard']},c);}if(this['data']?.['rewards']!=null)switch(this['data']['rewards']['op']){case'set':case'add':{this['data']['rewards']['objects']['length']>MAX_REWARD_COUNT&&W_ERROR(WErrors['InvalidParam'],'rewards\x20count\x20exceeds\x20maximum\x20limit\x20'+MAX_REWARD_COUNT);this['data']['rewards']['op']==='set'&&reward_clear(b,f,e,c);const i=await queryObjectsWithType(a,this['data']['rewards']['objects'],ObjectType['Reward'],'reward::Reward',!![]);i['forEach'](j=>{reward_add(b,f,e,j['object'],j['type'],c);});break;}case'remove':{this['data']['rewards']['objects']['length']>MAX_REWARD_COUNT&&W_ERROR(WErrors['InvalidParam'],'rewards\x20count\x20exceeds\x20maximum\x20limit\x20'+MAX_REWARD_COUNT);const j=await LocalMark['Instance']()['get_many_address_availables'](this['data']['rewards']['objects']);reward_remove(b,f,e,j,c);break;}case'clear':{reward_clear(b,f,e,c);break;}}this['data']['owner_receive']!=null&&this['object_address']&&(this['data']['owner_receive']==='recently'&&(this['data']['owner_receive']=await query_received({'object':this['object_address'],'all_type':!![]})),await owner_receive(b,f,e,this['data']['owner_receive'],undefined,k=>PackageAddress+'::repository::'+k,c));if(this['data']['um']!==undefined){let k=null;this['data']['um']&&(k=await LocalMark['Instance']()['get_address'](this['data']['um'])||null,!k&&W_ERROR(WErrors['InvalidParam'],'CallRepository_Data.data.um:'+this['data']['um'])),um_set(b,f,e,k,c);}if(!this['permission_address']){const l=GetObject(this['data']?.['object']);await this['new_with_mark'](a,b,ObjectType['Permission'],a161a(b,e),GetObject(l['permission']));}!this['object_address']&&await this['new_with_mark'](a,b,ObjectType['Repository'],create(b,f),GetObject(this['data']?.['object']));}}export function create(a,b){return validObjects([b]),a['moveCall']({'target':repositoryFn('create'),'arguments':[toTxObject(a,b)]});}function policy_guard(a,b){return validObjects([b['guard']]),b['id_from_submission']!=null&&!isValidU8(b['id_from_submission'])&&W_ERROR(WErrors['IsValidU8'],'Id\x20from\x20submission\x20'+b['id_from_submission']+'\x20is\x20not\x20valid'),b['data_from_submission']!=null&&!isValidU8(b['data_from_submission'])&&W_ERROR(WErrors['IsValidU8'],'Data\x20from\x20submission\x20'+b['data_from_submission']+'\x20is\x20not\x20valid'),a['moveCall']({'target':repositoryFn('policy_guard'),'arguments':[toTxObject(a,b['guard']),a['pure']['option']('u8',b['id_from_submission']??null),a['pure']['option']('u8',b['data_from_submission']??null)]});}export function policy(a,b){typeof b['name']==='string'&&!isValidName(b['name'])&&W_ERROR(WErrors['InvalidParam'],'Policy\x20name\x20'+b['name']+'\x20is\x20not\x20valid');typeof b['description']==='string'&&!isValidDescription(b['description'])&&W_ERROR(WErrors['IsValidDescription'],'Description\x20exceeds\x20maximum\x20length\x20'+MAX_DESCRIPTION_LENGTH);validObjects([b['quote_guard'],...b['write_guard']['map'](e=>e['guard'])]);const c=parseIdFrom(b['id_from']),d=a['moveCall']({'target':repositoryFn('policy'),'arguments':[toTxString(a,b['name']),toTxString(a,b['description']),a['pure']['u8'](c),a['pure']['u8'](b['value_type'])]});if(b['quote_guard'])a['moveCall']({'target':repositoryFn('policy_quote_guard_set'),'arguments':[d,toTxObject(a,b['quote_guard'])]});else b['quote_guard']===null&&a['moveCall']({'target':repositoryFn('policy_quote_guard_none'),'arguments':[d]});return b['write_guard']['length']>0x0&&a['moveCall']({'target':repositoryFn('policy_write_guard_set'),'arguments':[d,a['makeMoveVec']({'elements':b['write_guard']['map'](e=>policy_guard(a,e)),'type':PackageAddress+'::repository::PolicyGuard'})]}),d;}export async function data_id_from(a,b,c,d,e){const f=parseIdFrom(c['id_from']);f===IdFrom['None']&&W_ERROR(WErrors['InvalidParam'],'id_from\x20must\x20be\x20set\x20when\x20id_from\x20is\x20IdFrom.None');if(d['write_guard']){!e&&W_ERROR(WErrors['InvalidParam'],'passport\x20is\x20required\x20when\x20write_guard\x20is\x20specified');if(c['write_guard']['find'](g=>g['guard']===d['write_guard'])){const g=parseValueType(c['value_type']);a['moveCall']({'target':repositoryFn('data_when_id_from_set_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['address'](d['write_guard']),a['pure']['vector']('u8',await valueToBcsBytes(g,d['data'])),a['object']['clock'](),e]});}else W_ERROR(WErrors['InvalidParam'],'Write\x20guard\x20'+d['write_guard']+'\x20is\x20not\x20in\x20policy\x20'+c['name']);}else{if(c['write_guard']['length']===0x0){const h=parseValueType(c['value_type']);a['moveCall']({'target':repositoryFn('data_when_id_from_set'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['vector']('u8',await valueToBcsBytes(h,d['data'])),a['object']['clock']()]});}else W_ERROR(WErrors['InvalidParam'],'specify\x20write\x20guard\x20in\x20policy\x20'+c['write_guard']['map'](i=>i['guard']));}}export function um_set(a,b,c,d,e){validObjects([b,c]),d?e?a['moveCall']({'target':repositoryFn('um_set_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),e,toTxObject(a,d),a['object']['mutRegistrar'](),a['object']['clock']()]}):a['moveCall']({'target':repositoryFn('um_set'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,d),a['object']['mutRegistrar'](),a['object']['clock']()]}):e?a['moveCall']({'target':repositoryFn('um_none_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),e,a['object']['mutRegistrar']()]}):a['moveCall']({'target':repositoryFn('um_none'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['object']['mutRegistrar']()]});}export async function data(a,b,c,d,e){validObjects([b]);c['id_from']!==IdFrom['None']&&W_ERROR(WErrors['InvalidParam'],'id_from\x20must\x20be\x20IdFrom.None\x20when\x20items\x20is\x20provided');const f=[],g=[],h=[];for(const i of d){if(!i['write_guard'])c['write_guard']['length']===0x0?f['push'](i):W_ERROR(WErrors['InvalidParam'],'specify\x20write\x20guard\x20in\x20policy\x20'+c['write_guard']['map'](j=>j['guard']));else{const j=i['write_guard'],k=c['write_guard']['find'](m=>m['guard']===j);!k&&W_ERROR(WErrors['InvalidParam'],'Guard\x20'+j+'\x20not\x20found\x20in\x20policy\x20'+c['write_guard']['map'](m=>m['guard']));const l=k['id_from_submission']!==undefined;if(l){if(i['data']['length']>0x0){const m=i['data'][i['data']['length']-0x1],n=h['findIndex'](o=>o['guard']===j);n>=0x0?h[n]={'guard':j,'id':m['id'],'data':m['data']}:h['push']({'guard':j,'id':m['id'],'data':m['data']});}}else{const o=g['find'](p=>p['guard']===j);o?o['items']['push'](i):g['push']({'guard':j,'items':[i]});}}}if(f['length']>0x0){const p=parseValueType(c['value_type']),q=f['flatMap'](s=>s['data']['map'](t=>t['id'])),r=await Promise['all'](f['flatMap'](s=>s['data'])['map'](async s=>await valueToBcsBytes(p,s['data'])));q['length']!==r['length']&&W_ERROR(WErrors['InvalidParam'],'Id\x20and\x20data\x20arrays\x20must\x20have\x20the\x20same\x20length'),a['moveCall']({'target':repositoryFn('id_data'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['vector']('address',q),a['makeMoveVec']({'elements':r['map'](s=>a['pure']['vector']('u8',s)),'type':'vector<u8>'})]});}if(h['length']>0x0){!e&&W_ERROR(WErrors['InvalidParam'],'Guard\x20specified\x20but\x20no\x20passport\x20provided');const s=parseValueType(c['value_type']),t=h['map'](w=>w['id']),u=await Promise['all'](h['map'](async w=>await valueToBcsBytes(s,w['data']))),v=h['map'](w=>w['guard']);(t['length']!==u['length']||t['length']!==v['length'])&&W_ERROR(WErrors['InvalidParam'],'Id,\x20data,\x20and\x20guard\x20arrays\x20must\x20have\x20the\x20same\x20length'),a['moveCall']({'target':repositoryFn('id_data_mixed_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['vector']('address',v),a['pure']['vector']('address',t),a['makeMoveVec']({'elements':u['map'](w=>a['pure']['vector']('u8',w)),'type':'vector<u8>'}),toTxObject(a,e)]});}for(const {guard:w,items:x}of g){!e&&W_ERROR(WErrors['InvalidParam'],'Guard\x20specified\x20but\x20no\x20passport\x20provided');const y=parseValueType(c['value_type']),z=x['flatMap'](C=>C['data']),A=z['map'](C=>C['id']),B=await Promise['all'](z['map'](async C=>await valueToBcsBytes(y,C['data'])));A['length']!==B['length']&&W_ERROR(WErrors['InvalidParam'],'Id\x20and\x20data\x20arrays\x20must\x20have\x20the\x20same\x20length\x20for\x20guard\x20'+w),a['moveCall']({'target':repositoryFn('id_data_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['address'](w),a['pure']['vector']('address',A),a['makeMoveVec']({'elements':B['map'](C=>a['pure']['vector']('u8',C)),'type':'vector<u8>'}),toTxObject(a,e)]});}}export function newRepository(a,b,c,d){return validObjects([b,d]),typeof c==='string'&&!isValidDescription(c)&&W_ERROR(WErrors['IsValidDescription'],'Description\x20exceeds\x20maximum\x20length\x20'+MAX_DESCRIPTION_LENGTH),d?a['moveCall']({'target':repositoryFn('new_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,d),toTxString(a,c),a['object']['mutRegistrar'](),a['object']['clock']()]}):a['moveCall']({'target':repositoryFn('new'),'arguments':[toTxObject(a,b),toTxString(a,c),a['object']['mutRegistrar'](),a['object']['clock']()]});}export function description_set(a,b,c,d,e){validObjects([b,c,e]),typeof d==='string'&&!isValidDescription(d)&&W_ERROR(WErrors['IsValidDescription'],'Description\x20exceeds\x20maximum\x20length\x20'+MAX_DESCRIPTION_LENGTH),e?a['moveCall']({'target':repositoryFn('description_set_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,e),toTxString(a,d)]}):a['moveCall']({'target':repositoryFn('description_set'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxString(a,d)]});}export function policy_add(a,b,c,d,e){if(d['length']===0x0)return;validObjects([b,c,e]),e?a['moveCall']({'target':repositoryFn('policy_add_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,e),a['makeMoveVec']({'elements':d['map'](f=>policy(a,f)),'type':PackageAddress+'::repository::PolicyRule'}),a['object']['mutRegistrar'](),a['object']['clock']()]}):a['moveCall']({'target':repositoryFn('policy_add'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['makeMoveVec']({'elements':d['map'](f=>policy(a,f)),'type':PackageAddress+'::repository::PolicyRule'}),a['object']['mutRegistrar'](),a['object']['clock']()]});}export function policy_set(a,b,c,d,e){validObjects([b,c,e]),e?a['moveCall']({'target':repositoryFn('policy_set_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,e),a['makeMoveVec']({'elements':d['map'](f=>policy(a,f)),'type':PackageAddress+'::repository::PolicyRule'}),a['object']['mutRegistrar'](),a['object']['clock']()]}):a['moveCall']({'target':repositoryFn('policy_set'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['makeMoveVec']({'elements':d['map'](f=>policy(a,f)),'type':PackageAddress+'::repository::PolicyRule'}),a['object']['mutRegistrar'](),a['object']['clock']()]});}export function policy_remove(a,b,c,d,e){if(d['length']===0x0)return;validObjects([b,c,e]),e?a['moveCall']({'target':repositoryFn('policy_remove_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,e),a['pure']['vector']('string',d),a['object']['mutRegistrar']()]}):a['moveCall']({'target':repositoryFn('policy_remove'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['pure']['vector']('string',d),a['object']['mutRegistrar']()]});}export function policy_clear(a,b,c,d){validObjects([b,c,d]),d?a['moveCall']({'target':repositoryFn('policy_clear_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,d),a['object']['mutRegistrar']()]}):a['moveCall']({'target':repositoryFn('policy_clear'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['object']['mutRegistrar']()]});}export function reward_add(a,b,c,d,e,f){validObjects([b,c,f,d]),!IsValidArgType(e)&&W_ERROR(WErrors['IsValidArgType'],'Reward\x20type\x20'+e+'\x20is\x20not\x20valid'),f?a['moveCall']({'target':repositoryFn('reward_add_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,f),a['object'](d)],'typeArguments':[e]}):a['moveCall']({'target':repositoryFn('reward_add'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['object'](d)],'typeArguments':[e]});}export function reward_remove(a,b,c,d,e){if(d['length']===0x0)return;validObjects([b,c,e,...d]),e?a['moveCall']({'target':repositoryFn('reward_remove_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,e),a['pure']['vector']('address',d)]}):a['moveCall']({'target':repositoryFn('reward_remove'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['pure']['vector']('address',d)]});}export function reward_clear(a,b,c,d){validObjects([b,c,d]),d?a['moveCall']({'target':repositoryFn('reward_clear_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,d)]}):a['moveCall']({'target':repositoryFn('reward_clear'),'arguments':[toTxObject(a,b),toTxObject(a,c)]});}export async function data_remove(a,b,c,d,e){validObjects([b]);if('items'in d){c['id_from']!==IdFrom['None']&&W_ERROR(WErrors['InvalidParam'],'id_from\x20must\x20be\x20IdFrom.None\x20when\x20items\x20is\x20provided');const f=[],g=[],h=[];for(const i of d['items']){if(!i['write_guard'])c['write_guard']['length']===0x0?f['push'](...i['id']):W_ERROR(WErrors['InvalidParam'],'specify\x20write\x20guard\x20in\x20policy\x20'+c['write_guard']['map'](j=>j['guard']));else{const j=i['write_guard'],k=c['write_guard']['find'](m=>m['guard']===j);!k&&W_ERROR(WErrors['InvalidParam'],'Guard\x20'+j+'\x20not\x20found\x20in\x20policy\x20'+c['write_guard']['map'](m=>m['guard']));const l=k['id_from_submission']!==undefined;if(l)h['push'](j);else{const m=g['find'](n=>n['guard']===j);m?m['id']['push'](...i['id']):g['push']({'guard':j,'id':[...i['id']]});}}}if(f['length']>0x0){c['write_guard']['length']!==0x0&&W_ERROR(WErrors['InvalidParam'],'specify\x20write\x20guard\x20in\x20policy\x20'+c['write_guard']['map'](o=>o['guard']));const n=[...new Set(f)];a['moveCall']({'target':repositoryFn('id_data_remove'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['vector']('address',n)]});}if(h['length']>0x0){!e&&W_ERROR(WErrors['InvalidParam'],'Guard\x20specified\x20but\x20no\x20passport\x20provided');const o=[...new Set(h)];a['moveCall']({'target':repositoryFn('id_data_mixed_remove_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['vector']('address',o),toTxObject(a,e)]});}for(const {guard:p,id:q}of g){const r=[...new Set(q)];a['moveCall']({'target':repositoryFn('id_data_remove_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['address'](p),a['pure']['vector']('address',r),toTxObject(a,e)]});}}else{const s=d['write_guard'];c['id_from']===IdFrom['None']&&W_ERROR(WErrors['InvalidParam'],'id_from\x20must\x20be\x20set\x20when\x20id_from\x20is\x20IdFrom.None'),s?c['write_guard']['find'](t=>t['guard']===s)?a['moveCall']({'target':repositoryFn('data_remove_when_id_from_set_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['address'](s),a['object']['clock'](),toTxObject(a,e)]}):W_ERROR(WErrors['InvalidParam'],'Write\x20guard\x20'+s+'\x20is\x20not\x20in\x20policy\x20'+c['write_guard']['map'](t=>t['guard'])):c['write_guard']['length']===0x0?a['moveCall']({'target':repositoryFn('data_remove_when_id_from_set'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['object']['clock']()]}):W_ERROR(WErrors['InvalidParam'],'specify\x20write\x20guard\x20in\x20policy\x20'+c['write_guard']['map'](t=>t['guard']));}}
|
|
1
|
+
import{toTxObject,toTxString,isValidDescription,MAX_DESCRIPTION_LENGTH,isValidName,PackageAddress,IsValidArgType,isValidU8,repositoryFn,parseValueType}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';import{owner_receive,validObjects,valueToBcsBytes,uint2address}from'../util.js';import{GetObjectExisted,GetObject,GetObjectDescription}from'../common.js';import{GetAccountOrMark_Address}from'../local/index.js';import{LocalMark}from'../local/local.js';import{CallBase}from'./base.js';import{BuiltinPermissionIndex,newPermission}from'./permission.js';import{IdFrom,ObjectType,parseIdFrom}from'../query/object.js';import{create as a161a}from'./permission.js';import{queryObjectsWithType}from'../query/util.js';import{query_received}from'../query/received.js';export const MAX_POLICY_DESCRIPTION_LEN=0x1f4;export const MAX_POLICY_COUNT=0x32;export const MAX_POLICY_GUARD_COUNT=0xa;export const MAX_DATA_SIZE=0xa000;export const MAX_ID_COUNT_ONCE=0x64;export const MAX_REWARD_COUNT=0x14;export class CallRepository extends CallBase{['data'];['object_address']=undefined;['permission_address']=undefined;['new_permission_description']=undefined;constructor(a){super(),this['data']=a;}async['prepare'](a){await super['prepare'](a);!this['object_address']&&(this['object_address']=await GetObjectExisted(this['data']?.['object']));if(this['object_address']){this['content']=undefined,await this['update_content'](a,ObjectType['Repository'],this['object_address']);if(!this['content'])W_ERROR(WErrors['InvalidParam'],'CallRepository_Data.data.object:'+this['object_address']);this['permission_address']=this['content']['permission'],!this['permission_address']&&W_ERROR(WErrors['InvalidParam'],'CallRepository_Data.data.object.permission\x20is\x20empty');}else{const b=GetObject(this['data']['object']);this['permission_address']=await GetObjectExisted(b?.['permission']),this['new_permission_description']=GetObjectDescription(b?.['permission']);}}async['call'](a){await this['prepare'](a);const b=[],c=[],d=f=>{!c['includes'](f)&&c['push'](f);},e=f=>{this['permission_address']&&!b['includes'](f)&&b['push'](f);};this['permission_address']&&!this['object_address']&&e(BuiltinPermissionIndex['REPOSITORY_NEW']);this['permission_address']&&this['data']?.['description']!=null&&this['object_address']&&e(BuiltinPermissionIndex['REPOSITORY_DESCRIPTION']);this['permission_address']&&this['data']?.['policies']!=null&&e(BuiltinPermissionIndex['REPOSITORY_POLICY']);if(this['data']?.['data_add']!=null){!this['content']&&W_ERROR(WErrors['InvalidParam'],'CallRepository_Data.data.data_add\x20fail\x20because\x20the\x20Repository\x20content\x20not\x20ready');const f=this['content']['policies']['find'](g=>g['name']===this['data']['data_add']['name']);!f&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20policy\x20name:\x20'+this['data']['data_add']['name']);if('items'in this['data']['data_add'])for(const g of this['data']['data_add']['items']){for(const h of g['data']){let i;if(typeof h['id']==='number'||typeof h['id']==='bigint'||typeof h['id']==='string')i=uint2address(h['id']);else{const j=await GetAccountOrMark_Address(h['id']);!j&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20id\x20address:\x20'+h['id']),i=j;}h['id']=i;}if(g['write_guard']){const k=await LocalMark['Instance']()['get_address'](g['write_guard']);k?(!f['write_guard']['find'](l=>l['guard']===k)&&W_ERROR(WErrors['InvalidParam'],g['write_guard']+'\x20('+k+')\x20is\x20not\x20match\x20in\x20policy\x20'+f['name']+'\x20with\x20write_guards:\x20'+f['write_guard']['map'](l=>l['guard'])['join'](',\x20')),g['write_guard']=k,d(k)):W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+g['write_guard']);}}else{if(this['data']['data_add']['write_guard']){const l=await LocalMark['Instance']()['get_address'](this['data']['data_add']['write_guard']);l?(!f['write_guard']['find'](m=>m['guard']===l)&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+this['data']['data_add']['write_guard']+'\x20in\x20policy\x20'+f['name']),this['data']['data_add']['write_guard']=l,d(l)):W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+this['data']['data_add']['write_guard']);}}}if(this['data']?.['data_remove']!=null){const m=this['content']['policies']['find'](n=>n['name']===this['data']['data_remove']['name']);!m&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20policy\x20name:\x20'+this['data']['data_remove']['name']);if('items'in this['data']['data_remove'])for(const n of this['data']['data_remove']['items']){const o=[];for(const q of n['id']){let s;if(typeof q==='number'||typeof q==='bigint'||typeof q==='string')s=uint2address(q);else{const t=await GetAccountOrMark_Address(q);!t&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20id\x20address:\x20'+q),s=t;}o['push'](s);}n['id']=o;if(n['write_guard']){const u=await LocalMark['Instance']()['get_address'](n['write_guard']);u?(!m['write_guard']['find'](v=>v['guard']===u)&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+n['write_guard']+'\x20in\x20policy\x20'+m['name']),n['write_guard']=u,d(u)):W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+n['write_guard']);}}else{if(this['data']['data_remove']['write_guard']){const v=await LocalMark['Instance']()['get_address'](this['data']['data_remove']['write_guard']);v?(!m['write_guard']['find'](w=>w['guard']===v)&&W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+this['data']['data_remove']['write_guard']+'\x20in\x20policy\x20'+m['name']),this['data']['data_remove']['write_guard']=v,d(v)):W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+this['data']['data_remove']['write_guard']);}}}this['permission_address']&&this['data']?.['rewards']!=null&&e(BuiltinPermissionIndex['REPOSITORY_REWARD']);this['permission_address']&&this['data']?.['owner_receive']!=null&&e(BuiltinPermissionIndex['REPOSITORY_OWNER_RECEIVE']);this['permission_address']&&this['data']?.['um']!==undefined&&e(BuiltinPermissionIndex['REPOSITORY_UM']);if(this['permission_address']||c['length']>0x0)return await this['check_permission_and_call'](a,this['permission_address'],b,c);return await this['exec'](a);}async['operate'](a,b,c,d){let e=this['permission_address'],f=this['object_address'];!this['object_address']&&(!e&&(e=newPermission(b,this['new_permission_description']??'')),e&&(f=newRepository(b,toTxObject(b,e),this['data']?.['description']??'',c)));(!f||!e)&&W_ERROR(WErrors['InvalidParam'],'CallRepository_Data.data.object:'+this['object_address']);this['data']?.['description']!=null&&this['object_address']&&description_set(b,f,e,this['data']['description'],c);if(this['data']?.['policies']!=null){(this['data']['policies']['op']==='set'||this['data']['policies']['op']==='add')&&await Promise['all'](this['data']['policies']['policy']['map'](async g=>{await Promise['all'](g['write_guard']['map'](async h=>{const i=await LocalMark['Instance']()['get_address'](h['guard']);i?h['guard']=i:W_ERROR(WErrors['InvalidParam'],'Invalid\x20write_guard\x20address:\x20'+h['guard']);}));if(g['quote_guard']&&typeof g['quote_guard']==='string'){const h=await LocalMark['Instance']()['get_address'](g['quote_guard']);h?g['quote_guard']=h:W_ERROR(WErrors['InvalidParam'],'Invalid\x20quote_guard\x20address:\x20'+g['quote_guard']);}}));switch(this['data']['policies']['op']){case'set':{policy_set(b,f,e,this['data']['policies']['policy'],c);break;}case'add':{policy_add(b,f,e,this['data']['policies']['policy'],c);break;}case'remove':{policy_remove(b,f,e,this['data']['policies']['policy'],c);break;}case'clear':{policy_clear(b,f,e,c);break;}}}if(this['data']?.['data_add']!=null&&this['content']){const g=this['content']['policies']['find'](h=>h['name']===this['data']['data_add']['name']);!g&&W_ERROR(WErrors['InvalidParam'],'policy\x20'+this['data']['data_add']['name']+'\x20not\x20found\x20in\x20policies\x20'+this['content']['policies']['map'](h=>h['name'])),'items'in this['data']['data_add']?data(b,f,g,this['data']['data_add']['items'],c):data_id_from(b,f,g,this['data']['data_add'],c);}if(this['data']?.['data_remove']!=null){const h=this['content']['policies']['find'](i=>i['name']===this['data']['data_remove']['name']);!h&&W_ERROR(WErrors['InvalidParam'],'policy\x20'+this['data']['data_remove']['name']+'\x20not\x20found\x20in\x20policies\x20'+this['content']['policies']['map'](i=>i['name'])),'items'in this['data']['data_remove']?data_remove(b,f,h,{'items':this['data']['data_remove']['items']},c):data_remove(b,f,h,{'write_guard':this['data']['data_remove']['write_guard']},c);}if(this['data']?.['rewards']!=null)switch(this['data']['rewards']['op']){case'set':case'add':{this['data']['rewards']['objects']['length']>MAX_REWARD_COUNT&&W_ERROR(WErrors['InvalidParam'],'rewards\x20count\x20exceeds\x20maximum\x20limit\x20'+MAX_REWARD_COUNT);this['data']['rewards']['op']==='set'&&reward_clear(b,f,e,c);const i=await queryObjectsWithType(a,this['data']['rewards']['objects'],ObjectType['Reward'],'reward::Reward',!![]);i['forEach'](j=>{reward_add(b,f,e,j['object'],j['type'],c);});break;}case'remove':{this['data']['rewards']['objects']['length']>MAX_REWARD_COUNT&&W_ERROR(WErrors['InvalidParam'],'rewards\x20count\x20exceeds\x20maximum\x20limit\x20'+MAX_REWARD_COUNT);const j=await LocalMark['Instance']()['get_many_address_availables'](this['data']['rewards']['objects']);reward_remove(b,f,e,j,c);break;}case'clear':{reward_clear(b,f,e,c);break;}}this['data']['owner_receive']!=null&&this['object_address']&&(this['data']['owner_receive']==='recently'&&(this['data']['owner_receive']=await query_received({'object':this['object_address'],'all_type':!![]})),await owner_receive(b,f,e,this['data']['owner_receive'],undefined,k=>PackageAddress+'::repository::'+k,c));if(this['data']['um']!==undefined){let k=null;this['data']['um']&&(k=await LocalMark['Instance']()['get_address'](this['data']['um'])||null,!k&&W_ERROR(WErrors['InvalidParam'],'CallRepository_Data.data.um:'+this['data']['um'])),um_set(b,f,e,k,c);}if(!this['permission_address']){const l=GetObject(this['data']?.['object']);await this['new_with_mark'](a,b,ObjectType['Permission'],a161a(b,e),GetObject(l['permission']));}!this['object_address']&&await this['new_with_mark'](a,b,ObjectType['Repository'],create(b,f),GetObject(this['data']?.['object']));}}export function create(a,b){return validObjects([b]),a['moveCall']({'target':repositoryFn('create'),'arguments':[toTxObject(a,b)]});}function policy_guard(a,b){return validObjects([b['guard']]),b['id_from_submission']!=null&&!isValidU8(b['id_from_submission'])&&W_ERROR(WErrors['IsValidU8'],'Id\x20from\x20submission\x20'+b['id_from_submission']+'\x20is\x20not\x20valid'),b['data_from_submission']!=null&&!isValidU8(b['data_from_submission'])&&W_ERROR(WErrors['IsValidU8'],'Data\x20from\x20submission\x20'+b['data_from_submission']+'\x20is\x20not\x20valid'),a['moveCall']({'target':repositoryFn('policy_guard'),'arguments':[toTxObject(a,b['guard']),a['pure']['option']('u8',b['id_from_submission']??null),a['pure']['option']('u8',b['data_from_submission']??null)]});}export function policy(a,b){typeof b['name']==='string'&&!isValidName(b['name'])&&W_ERROR(WErrors['InvalidParam'],'Policy\x20name\x20'+b['name']+'\x20is\x20not\x20valid');typeof b['description']==='string'&&!isValidDescription(b['description'])&&W_ERROR(WErrors['IsValidDescription'],'Description\x20exceeds\x20maximum\x20length\x20'+MAX_DESCRIPTION_LENGTH);validObjects([b['quote_guard'],...b['write_guard']['map'](f=>f['guard'])]);const c=parseIdFrom(b['id_from']),d=parseValueType(b['value_type']),e=a['moveCall']({'target':repositoryFn('policy'),'arguments':[toTxString(a,b['name']),toTxString(a,b['description']),a['pure']['u8'](c),a['pure']['u8'](d)]});if(b['quote_guard'])a['moveCall']({'target':repositoryFn('policy_quote_guard_set'),'arguments':[e,toTxObject(a,b['quote_guard'])]});else b['quote_guard']===null&&a['moveCall']({'target':repositoryFn('policy_quote_guard_none'),'arguments':[e]});return b['write_guard']['length']>0x0&&a['moveCall']({'target':repositoryFn('policy_write_guard_set'),'arguments':[e,a['makeMoveVec']({'elements':b['write_guard']['map'](f=>policy_guard(a,f)),'type':PackageAddress+'::repository::PolicyGuard'})]}),e;}export async function data_id_from(a,b,c,d,e){const f=parseIdFrom(c['id_from']);f===IdFrom['None']&&W_ERROR(WErrors['InvalidParam'],'id_from\x20must\x20be\x20set\x20when\x20id_from\x20is\x20IdFrom.None');if(d['write_guard']){!e&&W_ERROR(WErrors['InvalidParam'],'passport\x20is\x20required\x20when\x20write_guard\x20is\x20specified');if(c['write_guard']['find'](g=>g['guard']===d['write_guard'])){const g=parseValueType(c['value_type']);a['moveCall']({'target':repositoryFn('data_when_id_from_set_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['address'](d['write_guard']),a['pure']['vector']('u8',await valueToBcsBytes(g,d['data'])),a['object']['clock'](),e]});}else W_ERROR(WErrors['InvalidParam'],'Write\x20guard\x20'+d['write_guard']+'\x20is\x20not\x20in\x20policy\x20'+c['name']);}else{if(c['write_guard']['length']===0x0){const h=parseValueType(c['value_type']);a['moveCall']({'target':repositoryFn('data_when_id_from_set'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['vector']('u8',await valueToBcsBytes(h,d['data'])),a['object']['clock']()]});}else W_ERROR(WErrors['InvalidParam'],'specify\x20write\x20guard\x20in\x20policy\x20'+c['write_guard']['map'](i=>i['guard']));}}export function um_set(a,b,c,d,e){validObjects([b,c]),d?e?a['moveCall']({'target':repositoryFn('um_set_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),e,toTxObject(a,d),a['object']['mutRegistrar'](),a['object']['clock']()]}):a['moveCall']({'target':repositoryFn('um_set'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,d),a['object']['mutRegistrar'](),a['object']['clock']()]}):e?a['moveCall']({'target':repositoryFn('um_none_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),e,a['object']['mutRegistrar']()]}):a['moveCall']({'target':repositoryFn('um_none'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['object']['mutRegistrar']()]});}export async function data(a,b,c,d,e){validObjects([b]);c['id_from']!==IdFrom['None']&&W_ERROR(WErrors['InvalidParam'],'id_from\x20must\x20be\x20IdFrom.None\x20when\x20items\x20is\x20provided');const f=[],g=[],h=[];for(const i of d){if(!i['write_guard'])c['write_guard']['length']===0x0?f['push'](i):W_ERROR(WErrors['InvalidParam'],'specify\x20write\x20guard\x20in\x20policy\x20'+c['write_guard']['map'](j=>j['guard']));else{const j=i['write_guard'],k=c['write_guard']['find'](m=>m['guard']===j);!k&&W_ERROR(WErrors['InvalidParam'],'Guard\x20'+j+'\x20not\x20found\x20in\x20policy\x20'+c['write_guard']['map'](m=>m['guard']));const l=k['id_from_submission']!==undefined;if(l){if(i['data']['length']>0x0){const m=i['data'][i['data']['length']-0x1],n=h['findIndex'](o=>o['guard']===j);n>=0x0?h[n]={'guard':j,'id':m['id'],'data':m['data']}:h['push']({'guard':j,'id':m['id'],'data':m['data']});}}else{const o=g['find'](p=>p['guard']===j);o?o['items']['push'](i):g['push']({'guard':j,'items':[i]});}}}if(f['length']>0x0){const p=parseValueType(c['value_type']),q=f['flatMap'](s=>s['data']['map'](t=>t['id'])),r=await Promise['all'](f['flatMap'](s=>s['data'])['map'](async s=>await valueToBcsBytes(p,s['data'])));q['length']!==r['length']&&W_ERROR(WErrors['InvalidParam'],'Id\x20and\x20data\x20arrays\x20must\x20have\x20the\x20same\x20length'),a['moveCall']({'target':repositoryFn('id_data'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['vector']('address',q),a['makeMoveVec']({'elements':r['map'](s=>a['pure']['vector']('u8',s)),'type':'vector<u8>'})]});}if(h['length']>0x0){!e&&W_ERROR(WErrors['InvalidParam'],'Guard\x20specified\x20but\x20no\x20passport\x20provided');const s=parseValueType(c['value_type']),t=h['map'](w=>w['id']),u=await Promise['all'](h['map'](async w=>await valueToBcsBytes(s,w['data']))),v=h['map'](w=>w['guard']);(t['length']!==u['length']||t['length']!==v['length'])&&W_ERROR(WErrors['InvalidParam'],'Id,\x20data,\x20and\x20guard\x20arrays\x20must\x20have\x20the\x20same\x20length'),a['moveCall']({'target':repositoryFn('id_data_mixed_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['vector']('address',v),a['pure']['vector']('address',t),a['makeMoveVec']({'elements':u['map'](w=>a['pure']['vector']('u8',w)),'type':'vector<u8>'}),toTxObject(a,e)]});}for(const {guard:w,items:x}of g){!e&&W_ERROR(WErrors['InvalidParam'],'Guard\x20specified\x20but\x20no\x20passport\x20provided');const y=parseValueType(c['value_type']),z=x['flatMap'](C=>C['data']),A=z['map'](C=>C['id']),B=await Promise['all'](z['map'](async C=>await valueToBcsBytes(y,C['data'])));A['length']!==B['length']&&W_ERROR(WErrors['InvalidParam'],'Id\x20and\x20data\x20arrays\x20must\x20have\x20the\x20same\x20length\x20for\x20guard\x20'+w),a['moveCall']({'target':repositoryFn('id_data_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['address'](w),a['pure']['vector']('address',A),a['makeMoveVec']({'elements':B['map'](C=>a['pure']['vector']('u8',C)),'type':'vector<u8>'}),toTxObject(a,e)]});}}export function newRepository(a,b,c,d){return validObjects([b,d]),typeof c==='string'&&!isValidDescription(c)&&W_ERROR(WErrors['IsValidDescription'],'Description\x20exceeds\x20maximum\x20length\x20'+MAX_DESCRIPTION_LENGTH),d?a['moveCall']({'target':repositoryFn('new_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,d),toTxString(a,c),a['object']['mutRegistrar'](),a['object']['clock']()]}):a['moveCall']({'target':repositoryFn('new'),'arguments':[toTxObject(a,b),toTxString(a,c),a['object']['mutRegistrar'](),a['object']['clock']()]});}export function description_set(a,b,c,d,e){validObjects([b,c,e]),typeof d==='string'&&!isValidDescription(d)&&W_ERROR(WErrors['IsValidDescription'],'Description\x20exceeds\x20maximum\x20length\x20'+MAX_DESCRIPTION_LENGTH),e?a['moveCall']({'target':repositoryFn('description_set_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,e),toTxString(a,d)]}):a['moveCall']({'target':repositoryFn('description_set'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxString(a,d)]});}export function policy_add(a,b,c,d,e){if(d['length']===0x0)return;validObjects([b,c,e]),e?a['moveCall']({'target':repositoryFn('policy_add_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,e),a['makeMoveVec']({'elements':d['map'](f=>policy(a,f)),'type':PackageAddress+'::repository::PolicyRule'}),a['object']['mutRegistrar'](),a['object']['clock']()]}):a['moveCall']({'target':repositoryFn('policy_add'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['makeMoveVec']({'elements':d['map'](f=>policy(a,f)),'type':PackageAddress+'::repository::PolicyRule'}),a['object']['mutRegistrar'](),a['object']['clock']()]});}export function policy_set(a,b,c,d,e){validObjects([b,c,e]),e?a['moveCall']({'target':repositoryFn('policy_set_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,e),a['makeMoveVec']({'elements':d['map'](f=>policy(a,f)),'type':PackageAddress+'::repository::PolicyRule'}),a['object']['mutRegistrar'](),a['object']['clock']()]}):a['moveCall']({'target':repositoryFn('policy_set'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['makeMoveVec']({'elements':d['map'](f=>policy(a,f)),'type':PackageAddress+'::repository::PolicyRule'}),a['object']['mutRegistrar'](),a['object']['clock']()]});}export function policy_remove(a,b,c,d,e){if(d['length']===0x0)return;validObjects([b,c,e]),e?a['moveCall']({'target':repositoryFn('policy_remove_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,e),a['pure']['vector']('string',d),a['object']['mutRegistrar']()]}):a['moveCall']({'target':repositoryFn('policy_remove'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['pure']['vector']('string',d),a['object']['mutRegistrar']()]});}export function policy_clear(a,b,c,d){validObjects([b,c,d]),d?a['moveCall']({'target':repositoryFn('policy_clear_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,d),a['object']['mutRegistrar']()]}):a['moveCall']({'target':repositoryFn('policy_clear'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['object']['mutRegistrar']()]});}export function reward_add(a,b,c,d,e,f){validObjects([b,c,f,d]),!IsValidArgType(e)&&W_ERROR(WErrors['IsValidArgType'],'Reward\x20type\x20'+e+'\x20is\x20not\x20valid'),f?a['moveCall']({'target':repositoryFn('reward_add_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,f),a['object'](d)],'typeArguments':[e]}):a['moveCall']({'target':repositoryFn('reward_add'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['object'](d)],'typeArguments':[e]});}export function reward_remove(a,b,c,d,e){if(d['length']===0x0)return;validObjects([b,c,e,...d]),e?a['moveCall']({'target':repositoryFn('reward_remove_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,e),a['pure']['vector']('address',d)]}):a['moveCall']({'target':repositoryFn('reward_remove'),'arguments':[toTxObject(a,b),toTxObject(a,c),a['pure']['vector']('address',d)]});}export function reward_clear(a,b,c,d){validObjects([b,c,d]),d?a['moveCall']({'target':repositoryFn('reward_clear_with_passport'),'arguments':[toTxObject(a,b),toTxObject(a,c),toTxObject(a,d)]}):a['moveCall']({'target':repositoryFn('reward_clear'),'arguments':[toTxObject(a,b),toTxObject(a,c)]});}export async function data_remove(a,b,c,d,e){validObjects([b]);if('items'in d){c['id_from']!==IdFrom['None']&&W_ERROR(WErrors['InvalidParam'],'id_from\x20must\x20be\x20IdFrom.None\x20when\x20items\x20is\x20provided');const f=[],g=[],h=[];for(const i of d['items']){if(!i['write_guard'])c['write_guard']['length']===0x0?f['push'](...i['id']):W_ERROR(WErrors['InvalidParam'],'specify\x20write\x20guard\x20in\x20policy\x20'+c['write_guard']['map'](j=>j['guard']));else{const j=i['write_guard'],k=c['write_guard']['find'](m=>m['guard']===j);!k&&W_ERROR(WErrors['InvalidParam'],'Guard\x20'+j+'\x20not\x20found\x20in\x20policy\x20'+c['write_guard']['map'](m=>m['guard']));const l=k['id_from_submission']!==undefined;if(l)h['push'](j);else{const m=g['find'](n=>n['guard']===j);m?m['id']['push'](...i['id']):g['push']({'guard':j,'id':[...i['id']]});}}}if(f['length']>0x0){c['write_guard']['length']!==0x0&&W_ERROR(WErrors['InvalidParam'],'specify\x20write\x20guard\x20in\x20policy\x20'+c['write_guard']['map'](o=>o['guard']));const n=[...new Set(f)];a['moveCall']({'target':repositoryFn('id_data_remove'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['vector']('address',n)]});}if(h['length']>0x0){!e&&W_ERROR(WErrors['InvalidParam'],'Guard\x20specified\x20but\x20no\x20passport\x20provided');const o=[...new Set(h)];a['moveCall']({'target':repositoryFn('id_data_mixed_remove_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['vector']('address',o),toTxObject(a,e)]});}for(const {guard:p,id:q}of g){const r=[...new Set(q)];a['moveCall']({'target':repositoryFn('id_data_remove_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['address'](p),a['pure']['vector']('address',r),toTxObject(a,e)]});}}else{const s=d['write_guard'];c['id_from']===IdFrom['None']&&W_ERROR(WErrors['InvalidParam'],'id_from\x20must\x20be\x20set\x20when\x20id_from\x20is\x20IdFrom.None'),s?c['write_guard']['find'](t=>t['guard']===s)?a['moveCall']({'target':repositoryFn('data_remove_when_id_from_set_with_passport'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['pure']['address'](s),a['object']['clock'](),toTxObject(a,e)]}):W_ERROR(WErrors['InvalidParam'],'Write\x20guard\x20'+s+'\x20is\x20not\x20in\x20policy\x20'+c['write_guard']['map'](t=>t['guard'])):c['write_guard']['length']===0x0?a['moveCall']({'target':repositoryFn('data_remove_when_id_from_set'),'arguments':[toTxObject(a,b),toTxString(a,c['name']),a['object']['clock']()]}):W_ERROR(WErrors['InvalidParam'],'specify\x20write\x20guard\x20in\x20policy\x20'+c['write_guard']['map'](t=>t['guard']));}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Messenger}from'./messenger.js';import{MessageStorage}from'./storage.js';import{MessengerPersistStorage}from'./storage.js';import{MessageType,MessageStatus,WTS_MAX_MESSAGE_COUNT,WTS_SCHEMA_URL}from'./types.js';import{MessengerError,MessengerErrorCode,DEFAULT_MESSENGER_CONFIG}from'./types.js';import{canonicalizeJson}from'./utils.js';import{MAX_MESSENGER_ACCOUNTS}from'../local/account.js';import{GetAccountOrMark_Address}from'../local/index.js';const MAX_ACCOUNTS=MAX_MESSENGER_ACCOUNTS,sleep=a=>new Promise(b=>setTimeout(b,a));export class MessengerManager{['accounts']=new Map();['config'];['messageListeners']=new Set();['isWatching']=![];['persistStorage'];['instanceId'];['accountRefreshTimer']=null;['pollingLockedAccounts']=new Set();constructor(a){this['config']={...DEFAULT_MESSENGER_CONFIG,...a?.['messengerConfig']},this['instanceId']=a?.['instanceId']||'default',this['persistStorage']=new MessengerPersistStorage();}['findAccount'](a){return this['accounts']['get'](a['toLowerCase']());}['getConfig'](){return this['config'];}['get_accounts'](){return Array['from'](this['accounts']['values']())['map'](a=>a['address']);}async['refresh_accounts'](){const {Account:a}=await import('../local/account.js'),b=await a['Instance']()['list_messenger_accounts'](),c=new Set(this['accounts']['keys']()),d=new Set(b['map'](e=>e['address']['toLowerCase']()));for(const e of c){!d['has'](e)&&this['remove_account_internal'](e);}for(const f of b){const g=f['address']['toLowerCase']();if(!this['accounts']['has'](g))try{await this['add_account_internal'](f['address']);}catch(h){console['error']('Failed\x20to\x20add\x20account\x20'+g+'\x20to\x20messenger\x20manager:',h);}}if(this['accounts']['size']>0x0&&!this['isWatching'])this['startPolling']();else this['accounts']['size']===0x0&&this['isWatching']&&this['stopPolling']();await this['syncAllContactLists']();}async['start'](){await this['refresh_accounts']();for(const a of this['accounts']['values']()){const b=this['persistStorage']['tryAcquirePollingLock'](a['address'],this['instanceId']);b?(this['pollingLockedAccounts']['add'](a['address']['toLowerCase']()),a['messenger']['setOnMessageCallback'](c=>{for(const d of this['messageListeners']){d(c);}})):console['debug']('Another\x20process\x20holds\x20polling\x20lock\x20for\x20'+a['address']);}!this['isWatching']&&this['startPolling'](),this['accountRefreshTimer']&&clearInterval(this['accountRefreshTimer']),this['accountRefreshTimer']=setInterval(()=>{this['refresh_accounts']()['catch'](c=>{console['error']('Failed\x20to\x20refresh\x20accounts:',c);});},this['config']['watch_interval_ms']);}['stop'](){this['accountRefreshTimer']&&(clearInterval(this['accountRefreshTimer']),this['accountRefreshTimer']=null);for(const a of this['pollingLockedAccounts']){this['persistStorage']['releasePollingLock'](a,this['instanceId']);}this['pollingLockedAccounts']['clear'](),this['stopPolling'](),this['clear_accounts']();}async['ensureAccountReady'](a){const b=a['toLowerCase'](),c=this['accounts']['get'](b);if(c?.['initialized'])return c;if(c?.['initializing']){await c['initializing'];const d=this['accounts']['get'](b);if(d?.['initialized'])return d;throw new MessengerError(MessengerErrorCode['SERVER_ERROR'],'Account\x20'+a+'\x20initialization\x20failed');}return this['initializeAccount'](b);}async['initializeAccount'](a){const b=a['toLowerCase']();if(this['accounts']['size']>=MAX_ACCOUNTS)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Maximum\x20'+MAX_ACCOUNTS+'\x20accounts\x20allowed');const c=this['doInitialize'](b),d={'address':b,'messenger':null,'initialized':![],'initializing':c,'contactLists':{'friends':[],'guards':[],'lastUpdatedAt':0x0}};this['accounts']['set'](b,d);try{await c;const e=this['accounts']['get'](b);if(!e||!e['initialized'])throw new MessengerError(MessengerErrorCode['SERVER_ERROR'],'Account\x20'+a+'\x20initialization\x20failed');return e;}catch(f){this['accounts']['delete'](b);throw f;}}async['doInitialize'](a){const b=new Messenger(a,this['config']);try{await b['initialize']();}catch(d){throw new MessengerError(MessengerErrorCode['SERVER_ERROR'],'Failed\x20to\x20initialize\x20account\x20'+a+':\x20'+(d instanceof Error?d['message']:String(d)));}await sleep(0x3e8);const c={'friends':[],'guards':[],'lastUpdatedAt':0x0};this['accounts']['set'](a,{'address':a,'messenger':b,'initialized':!![],'contactLists':c});if(this['isWatching']){const e=this['persistStorage']['tryAcquirePollingLock'](a,this['instanceId']);e&&(this['pollingLockedAccounts']['add'](a),b['setOnMessageCallback'](f=>{for(const g of this['messageListeners']){g(f);}}));}}async['add_account_internal'](a){await this['ensureAccountReady'](a);}['remove_account_internal'](a){const b=a['toLowerCase'](),c=this['accounts']['get'](b);if(!c)return![];return c['initialized']&&c['messenger']&&c['messenger']['disconnect'](),this['persistStorage']['releasePollingLock'](b,this['instanceId']),this['pollingLockedAccounts']['delete'](b),this['accounts']['delete'](b);}['clear_accounts'](){this['stopPolling']();for(const a of this['accounts']['values']()){a['messenger']['disconnect']();}this['accounts']['clear']();}async['send'](a,b,c,d){const {Account:e}=await import('../local/account.js'),f=await e['Instance']()['get'](a,![]);if(!f)throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'Account\x20'+a+'\x20not\x20found');if(f['m']==null){if(d?.['new_messenger_name']==null)throw new MessengerError(MessengerErrorCode['ACCOUNT_MESSENGER_NOT_ENABLED'],'Account\x20messenger\x20name\x20not\x20set.\x20Use\x20new_messenger_name\x20parameter\x20to\x20set\x20it\x20automatically.');await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}const g=await this['ensureAccountReady'](a);if(d?.['new_messenger_name']!=null){const h=await e['Instance']()['get'](a,![]);h&&h['m']!==d['new_messenger_name']&&await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}return g['messenger']['sendMessage'](b,c,{'guardAddress':d?.['guardAddress'],'passportAddress':d?.['passportAddress'],'force':d?.['force']});}async['send_file'](a,b,c,d){const {Account:e}=await import('../local/account.js'),f=await e['Instance']()['get'](a,![]);if(!f)throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'Account\x20'+a+'\x20not\x20found');if(f['m']==null){if(d?.['new_messenger_name']==null)throw new MessengerError(MessengerErrorCode['ACCOUNT_MESSENGER_NOT_ENABLED'],'Account\x20messenger\x20name\x20not\x20set.\x20Use\x20new_messenger_name\x20parameter\x20to\x20set\x20it\x20automatically.');await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}const g=await this['ensureAccountReady'](a);if(d?.['new_messenger_name']!=null){const h=await e['Instance']()['get'](a,![]);h&&h['m']!==d['new_messenger_name']&&await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}return g['messenger']['sendZipFile'](b,c,{'fileName':d?.['fileName'],'contentType':d?.['contentType'],'guardAddress':d?.['guardAddress'],'passportAddress':d?.['passportAddress'],'force':d?.['force']});}async['watch'](a){let b=[];if(a?.['account']!==undefined){const i=a['account']['toLowerCase'](),j=this['accounts']['get'](i);j?.['messenger']&&await j['messenger']['pullMessages']();const k=new MessageStorage(i);b=k['getAllMessages'](i);}else for(const l of this['accounts']['values']()){l['messenger']&&await l['messenger']['pullMessages']();const m=new MessageStorage(l['address']),n=m['getAllMessages'](l['address']);b['push'](...n);}if(a){const o=a['peerAddress']?await GetAccountOrMark_Address(a['peerAddress']):undefined;b=b['filter'](p=>{if(a?.['account']!==undefined){const r=a['account']['toLowerCase'](),s=p['fromAddress']['toLowerCase'](),t=p['toAddress']['toLowerCase']();if(s!==r&&t!==r)return![];}if(a['direction']&&p['direction']!==a['direction'])return![];if(a['status']&&p['status']!==a['status'])return![];if(a['msgType']!==undefined&&p['msgType']!==a['msgType'])return![];if(a['contentType'])switch(a['contentType']){case'text':if(p['msgType']!==MessageType['NORMAL_MESSAGE'])return![];break;case'zip':if(!p['zipMetadata'])return![];break;case'wts':if(!p['zipMetadata']||p['zipMetadata']?.['contentType']!=='wts')return![];break;case'wip':if(!p['zipMetadata']||p['zipMetadata']?.['contentType']!=='wip')return![];break;}if(a['peerAddress']&&o){const u=o['toLowerCase'](),v=p['fromAddress']['toLowerCase'](),w=p['toAddress']['toLowerCase']();if(v!==u&&w!==u)return![];}const q=a['timeField']||'createdAt';if(a['startTime']!==undefined||a['endTime']!==undefined){const x=p[q];if(x!==undefined){if(a['startTime']!==undefined&&x<a['startTime'])return![];if(a['endTime']!==undefined&&x>a['endTime'])return![];}}if(a['createdAtStart']!==undefined&&p['createdAt']<a['createdAtStart'])return![];if(a['createdAtEnd']!==undefined&&p['createdAt']>a['createdAtEnd'])return![];if(a['receivedAtStart']!==undefined){if(p['receivedAt']===undefined||p['receivedAt']<a['receivedAtStart'])return![];}if(a['receivedAtEnd']!==undefined){if(p['receivedAt']===undefined||p['receivedAt']>a['receivedAtEnd'])return![];}if(a['serverTimestampStart']!==undefined){if(p['serverTimestamp']===undefined||p['serverTimestamp']<a['serverTimestampStart'])return![];}if(a['serverTimestampEnd']!==undefined){if(p['serverTimestamp']===undefined||p['serverTimestamp']>a['serverTimestampEnd'])return![];}if(a['decryptedOnly']&&!p['plaintext'])return![];if(a['confirmedOnly']&&p['status']!==MessageStatus['CONFIRMED'])return![];if(a['arkConfirmedOnly']){if(!p['arkConfirmed'])return![];}if(a['proofedOnly']){if(!p['proof'])return![];}if(a['arkTimestampStart']!==undefined){if(p['arkConfirmed']===undefined||p['arkConfirmed']['timestamp']<a['arkTimestampStart'])return![];}if(a['arkTimestampEnd']!==undefined){if(p['arkConfirmed']===undefined||p['arkConfirmed']['timestamp']>a['arkTimestampEnd'])return![];}if(a['hasLastReceivedIndexOnly']){if(p['lastReceivedLeafIndex']===undefined||p['lastReceivedLeafIndex']===null)return![];}if(a['lastReceivedIndexMin']!==undefined){if(p['lastReceivedLeafIndex']===undefined||p['lastReceivedLeafIndex']<a['lastReceivedIndexMin'])return![];}if(a['lastReceivedIndexMax']!==undefined){if(p['lastReceivedLeafIndex']===undefined||p['lastReceivedLeafIndex']>a['lastReceivedIndexMax'])return![];}if(a['keyword']&&p['plaintext']){if(!p['plaintext']['toLowerCase']()['includes'](a['keyword']['toLowerCase']()))return![];}if(a['listFilterMode']&&a['listFilterMode']!=='any'){const y=this['findAccount'](p['toAddress']);if(!y)return![];const z=p['fromAddress']['toLowerCase'](),A=y['contactLists'],B=new Set(A['friends']['map'](G=>G['toLowerCase']())),C=new Set(A['guards']['map'](G=>G['guardAddress']['toLowerCase']())),D=B['has'](z),E=C['has'](z),F=!D&&!E;switch(a['listFilterMode']){case'friends':if(!D)return![];break;case'guard':if(!E)return![];break;case'stranger':if(!F)return![];break;}if(a['customListFilter']){const {includeAddresses:G,excludeAddresses:H,relation:relation='union'}=a['customListFilter'];if(H){const I=new Set(H['map'](J=>J['toLowerCase']()));if(I['has'](z))return![];}if(G&&G['length']>0x0){const J=new Set(G['map'](L=>L['toLowerCase']())),K=J['has'](z);if(relation==='union'){const L=a['listFilterMode']==='friends'&&D||a['listFilterMode']==='guard'&&E||a['listFilterMode']==='stranger'&&F;if(!K&&!L)return![];}else{if(!K)return![];}}}}if(a['viewed']!==undefined){const M=p['viewedAt']!==undefined;if(a['viewed']!==M)return![];}if(a['viewedAtStart']!==undefined){if(p['viewedAt']===undefined||p['viewedAt']<a['viewedAtStart'])return![];}if(a['viewedAtEnd']!==undefined){if(p['viewedAt']===undefined||p['viewedAt']>a['viewedAtEnd'])return![];}return!![];});}const c=a?.['sortOrder']??'desc',d=a?.['timeField']||'createdAt';b['sort']((p,q)=>{const r=p[d]||0x0,s=q[d]||0x0;return c==='asc'?r-s:s-r;});const {MAX_QUERY_LIMIT:e}=await import('./types.js'),f=this['config']['defaultQueryLimit']??0x32,g=Math['min'](a?.['limit']??f,e),h=a?.['offset']??0x0;return b=b['slice'](h,h+g),b;}['startPolling'](){if(this['isWatching'])return;this['isWatching']=!![];}['stopPolling'](){this['isWatching']=![];}['onMessage'](a){this['messageListeners']['add'](a);}['offMessage'](a){this['messageListeners']['delete'](a);}['destroy'](){this['stop'](),this['messageListeners']['clear']();}async['syncContactLists'](a){const b=this['findAccount'](a);if(!b)return{'success':![],'friends':[],'guards':[],'error':'Account\x20not\x20found:\x20'+a};try{const [c,d]=await Promise['all']([b['messenger']['getFriendsList'](),b['messenger']['getGuardList']()]),e=d['currentGuardList']||[];return b['contactLists']={'friends':c,'guards':e,'lastUpdatedAt':Date['now']()},{'success':!![],'friends':c,'guards':e};}catch(f){return console['error']('Failed\x20to\x20sync\x20contact\x20lists\x20for\x20'+a+':',f),{'success':![],'friends':b['contactLists']['friends'],'guards':b['contactLists']['guards'],'error':f instanceof Error?f['message']:String(f)};}}async['syncAllContactLists'](){const a=new Map();for(const b of this['accounts']['values']()){const c=await this['syncContactLists'](b['address']);a['set'](b['address'],c);}return a;}['getContactLists'](a){const b=this['findAccount'](a);return b?.['contactLists'];}['setContactLists'](a,b){const c=this['findAccount'](a);if(!c)return![];return c['contactLists']={...c['contactLists'],...b,'lastUpdatedAt':Date['now']()},!![];}['isStranger'](a,b){const c=this['findAccount'](a);if(!c)return!![];const d=b['toLowerCase'](),e=c['contactLists'],f=e['friends']['some'](h=>h['toLowerCase']()===d),g=e['guards']['some'](h=>h['guardAddress']['toLowerCase']()===d);return!f&&!g;}['recordGuardSender'](a,b){const c=this['findAccount'](a);if(!c)return![];const d=b['toLowerCase'](),e=c['contactLists']['guards']['some'](f=>f['guardAddress']['toLowerCase']()===d);return!e&&(c['contactLists']['guards']['push']({'guardAddress':b,'passportValiditySeconds':0x15180}),c['contactLists']['lastUpdatedAt']=Date['now']()),!![];}['generateNonce'](){return Math['random']()['toString'](0x24)['substring'](0x2,0xf)+Math['random']()['toString'](0x24)['substring'](0x2,0xf);}async['watch_paginated'](a){const {MAX_QUERY_LIMIT:b}=await import('./types.js'),c=await this['watch'](a),d=c['length'],e=this['config']['defaultQueryLimit']??0x32,f=Math['min'](a?.['limit']??e,b),g=a?.['offset']??0x0,h=c['slice'](g,g+f);return{'messages':h,'total':d,'offset':g,'limit':f};}async['get_conversations'](a){const b=a?{'account':a}:undefined,c=await this['watch'](b),d=new Map();for(const e of c){const f=a?.['toLowerCase'](),g=e['fromAddress']['toLowerCase']()===f?e['toAddress']:e['fromAddress'];!d['has'](g)&&d['set'](g,{'peerAddress':g,'lastMessageAt':e['createdAt'],'messageCount':0x0,'unreadCount':0x0,'lastMessagePreview':e['plaintext']});const h=d['get'](g);h['messageCount']++,e['createdAt']>h['lastMessageAt']&&(h['lastMessageAt']=e['createdAt'],h['lastMessagePreview']=e['plaintext']),e['status']!==MessageStatus['READ']&&e['toAddress']['toLowerCase']()===f&&h['unreadCount']++;}return Array['from'](d['values']())['sort']((i,j)=>j['lastMessageAt']-i['lastMessageAt']);}async['generate_wts'](a,b,c,d,e){const f=await import('fs'),g=await import('path'),h=b['toLowerCase'](),k=c['toLowerCase'](),l=new MessageStorage(h),m=l['getAllMessages'](h);let n=m['filter'](w=>{const x=w['fromAddress']['toLowerCase'](),y=w['toAddress']['toLowerCase'](),z=x===h&&y===k||x===k&&y===h;return z;});n=n['filter'](w=>w['leafIndex']!==undefined&&w['serverTimestamp']!==undefined)['reduce']((w,x)=>{const y=w['find'](z=>z['messageId']===x['messageId']);return!y&&w['push'](x),w;},[])['sort']((w,x)=>{const y=w['serverTimestamp']-x['serverTimestamp'];if(y!==0x0)return y;return w['leafIndex']-x['leafIndex'];});if(d)switch(d['type']){case'time':{const w=Math['min'](d['start'],d['end']),x=Math['max'](d['start'],d['end']);n=n['filter'](y=>y['createdAt']>=w&&y['createdAt']<=x);break;}case'messageId':{const y=d['start'],z=d['end'];n=n['filter'](A=>A['messageId']>=y&&A['messageId']<=z);break;}case'seqIndex':{const A=Math['min'](d['start'],d['end']),B=Math['max'](d['start'],d['end']);n=n['filter'](C=>C['leafIndex']>=A&&C['leafIndex']<=B);break;}}if(n['length']===0x0)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'No\x20messages\x20found\x20for\x20the\x20given\x20criteria');const o=n['map'](C=>C['leafIndex'])['filter'](C=>C!==undefined)['sort']((C,D)=>C-D),p=[];for(let C=0x1;C<o['length'];C++){const D=o[C-0x1]+0x1,E=o[C];if(E!==D)for(let F=D;F<E;F++){p['push'](F);}}p['length']>0x0&&console['warn']('[generate_wts]\x20Warning:\x20Missing\x20leafIndices\x20'+p['join'](',\x20')+'.\x20'+'WTS\x20will\x20contain\x20non-continuous\x20message\x20sequence.\x20'+'Verification\x20may\x20fail\x20if\x20strict\x20continuity\x20check\x20is\x20enabled.');if(n['length']>WTS_MAX_MESSAGE_COUNT)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20count\x20('+n['length']+')\x20exceeds\x20maximum\x20allowed\x20('+WTS_MAX_MESSAGE_COUNT+')');!f['existsSync'](a)&&f['mkdirSync'](a,{'recursive':!![]});const q=h['slice'](0x0,0x6)+'_'+k['slice'](0x0,0x6),r=[];let s=[];for(let G=0x0;G<n['length'];G++){const H=n[G];if(s['length']===0x0)s['push'](H);else{const I=s[s['length']-0x1],J=I['leafIndex']+0x1;s['length']>=WTS_MAX_MESSAGE_COUNT||H['leafIndex']!==J?(r['push'](s),s=[H]):s['push'](H);}}s['length']>0x0&&r['push'](s);console['log']('[generate_wts]\x20Grouped\x20'+n['length']+'\x20messages\x20into\x20'+r['length']+'\x20continuous\x20group(s)'),r['forEach']((K,L)=>{const M=K['map'](N=>N['leafIndex'])['join'](',\x20');console['log']('\x20\x20Group\x20'+(L+0x1)+':\x20leafIndices\x20['+M+']');});const t=[];for(const K of r){const L=K['map'](a2=>a2['leafIndex'])['filter'](a2=>a2!==undefined),M=Math['min'](...L),N=Math['max'](...L),O=K[0x0]['createdAt'],P=K[K['length']-0x1]['createdAt'];for(const a2 of K){if(a2['serverTimestamp']===undefined)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a2['messageId']+'\x20missing\x20serverTimestamp');if(a2['leafIndex']===undefined)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a2['messageId']+'\x20missing\x20leafIndex');if(!a2['prevRoot'])throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a2['messageId']+'\x20missing\x20prevRoot');if(!a2['newRoot'])throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a2['messageId']+'\x20missing\x20newRoot');if(!a2['serverSignature'])throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a2['messageId']+'\x20missing\x20serverSignature');}const Q=K['map'](a3=>{const a4={'id':a3['messageId'],'from':a3['fromAddress'],'to':a3['toAddress'],'plaintextHash':a3['plaintextHash'],'clientTimestamp':a3['createdAt'],'timestamp':a3['serverTimestamp'],'leafIndex':a3['leafIndex'],'prevRoot':a3['prevRoot'],'merkleRoot':a3['newRoot'],'serverSignature':a3['serverSignature'],'serverPublicKey':a3['serverPublicKey']||'','msgType':a3['msgType']};return!e&&a3['plaintext']!==undefined&&(a4['plaintext']=a3['plaintext']),a3['guardAddress']!==undefined&&(a4['guardAddress']=a3['guardAddress']),a3['passportAddress']!==undefined&&(a4['passportAddress']=a3['passportAddress']),a3['arkConfirmed']!==undefined&&(a4['arkConfirmed']={'recipient':a3['arkConfirmed']['recipient'],'recipientPublicKey':a3['arkConfirmed']['recipientPublicKey'],'signature':a3['arkConfirmed']['signature'],'timestamp':a3['arkConfirmed']['timestamp']}),a3['zipMetadata']!==undefined&&(a4['zipMetadata']=a3['zipMetadata']),a3['lastReceivedLeafIndex']!==undefined&&a3['lastReceivedLeafIndex']!==-0x1&&(a4['lastReceivedLeafIndex']=a3['lastReceivedLeafIndex']),a4;}),R=[h,k]['sort'](),S={'participants':R},T={'session':S,'messages':Q},{sha256:U}=await import('@noble/hashes/sha256'),{bytesToHex:V}=await import('@noble/hashes/utils'),W=canonicalizeJson(T),X='sha256:'+V(U(new TextEncoder()['encode'](W))),Y={'type':'wts','version':'1.0','created':new Date()['toISOString'](),'hash':X,'algorithm':'sha256','startTime':O,'endTime':P,'messageCount':Q['length'],'merkleRoot':Q[Q['length']-0x1]['merkleRoot'],'creator':h,'participant':k},Z={'wts':WTS_SCHEMA_URL,'payload':T,'meta':Y},a0=q+'_'+M+'-'+N+'.wts',a1=g['join'](a,a0);f['writeFileSync'](a1,JSON['stringify'](Z,null,0x2)),t['push'](a1);}const u=n[0x0]?.['createdAt']||0x0,v=n[n['length']-0x1]?.['createdAt']||0x0;return{'files':t,'totalMessageCount':n['length'],'timeRange':{'start':u,'end':v}};}async['addToBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToBlacklist'](b);}async['removeFromBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromBlacklist'](b);}async['clearBlacklist'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['clearBlacklist']();}async['getBlacklist'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getBlacklist']();}async['existInBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['existInBlacklist'](b);}async['addToFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToFriendsList'](b);}async['removeFromFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromFriendsList'](b);}async['clearFriendsList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['clearFriendsList']();}async['getFriendsList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getFriendsList']();}async['existInFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['existInFriendsList'](b);}async['addToGuardList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToGuardList'](b);}async['removeFromGuardList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromGuardList'](b);}async['getGuardList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getGuardList']();}async['getSettings'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getSettings']();}async['setSettings'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['setSettings'](b);}}
|
|
1
|
+
import{Messenger}from'./messenger.js';import{MessageStorage}from'./storage.js';import{MessengerPersistStorage}from'./storage.js';import{MessageType,MessageStatus,WTS_MAX_MESSAGE_COUNT,WTS_SCHEMA_URL}from'./types.js';import{MessengerError,MessengerErrorCode,DEFAULT_MESSENGER_CONFIG}from'./types.js';import{canonicalizeJson}from'./utils.js';import{MAX_MESSENGER_ACCOUNTS}from'../local/account.js';import{GetAccountOrMark_Address}from'../local/index.js';const MAX_ACCOUNTS=MAX_MESSENGER_ACCOUNTS,sleep=a=>new Promise(b=>setTimeout(b,a));export class MessengerManager{['accounts']=new Map();['config'];['messageListeners']=new Set();['isWatching']=![];['persistStorage'];['instanceId'];['accountRefreshTimer']=null;['pollingLockedAccounts']=new Set();constructor(a){this['config']={...DEFAULT_MESSENGER_CONFIG,...a?.['messengerConfig']},this['instanceId']=a?.['instanceId']||'default',this['persistStorage']=new MessengerPersistStorage();}['findAccount'](a){return this['accounts']['get'](a['toLowerCase']());}['getConfig'](){return this['config'];}['get_accounts'](){return Array['from'](this['accounts']['values']())['map'](a=>a['address']);}async['refresh_accounts'](){const {Account:a}=await import('../local/account.js'),b=await a['Instance']()['list_messenger_accounts'](),c=new Set(this['accounts']['keys']()),d=new Set(b['map'](e=>e['address']['toLowerCase']()));for(const e of c){!d['has'](e)&&this['remove_account_internal'](e);}for(const f of b){const g=f['address']['toLowerCase']();if(!this['accounts']['has'](g))try{await this['add_account_internal'](f['address']);}catch(h){}}if(this['accounts']['size']>0x0&&!this['isWatching'])this['startPolling']();else this['accounts']['size']===0x0&&this['isWatching']&&this['stopPolling']();await this['syncAllContactLists']();}async['start'](){await this['refresh_accounts']();for(const a of this['accounts']['values']()){const b=this['persistStorage']['tryAcquirePollingLock'](a['address'],this['instanceId']);if(b)this['pollingLockedAccounts']['add'](a['address']['toLowerCase']()),a['messenger']['setOnMessageCallback'](c=>{for(const d of this['messageListeners']){d(c);}});else{}}!this['isWatching']&&this['startPolling'](),this['accountRefreshTimer']&&clearInterval(this['accountRefreshTimer']),this['accountRefreshTimer']=setInterval(()=>{this['refresh_accounts']()['catch'](c=>{});},this['config']['watch_interval_ms']);}['stop'](){this['accountRefreshTimer']&&(clearInterval(this['accountRefreshTimer']),this['accountRefreshTimer']=null);for(const a of this['pollingLockedAccounts']){this['persistStorage']['releasePollingLock'](a,this['instanceId']);}this['pollingLockedAccounts']['clear'](),this['stopPolling'](),this['clear_accounts']();}async['ensureAccountReady'](a){const b=a['toLowerCase'](),c=this['accounts']['get'](b);if(c?.['initialized'])return c;if(c?.['initializing']){await c['initializing'];const d=this['accounts']['get'](b);if(d?.['initialized'])return d;throw new MessengerError(MessengerErrorCode['SERVER_ERROR'],'Account\x20'+a+'\x20initialization\x20failed');}return this['initializeAccount'](b);}async['initializeAccount'](a){const b=a['toLowerCase']();if(this['accounts']['size']>=MAX_ACCOUNTS)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Maximum\x20'+MAX_ACCOUNTS+'\x20accounts\x20allowed');const c=this['doInitialize'](b),d={'address':b,'messenger':null,'initialized':![],'initializing':c,'contactLists':{'friends':[],'guards':[],'lastUpdatedAt':0x0}};this['accounts']['set'](b,d);try{await c;const e=this['accounts']['get'](b);if(!e||!e['initialized'])throw new MessengerError(MessengerErrorCode['SERVER_ERROR'],'Account\x20'+a+'\x20initialization\x20failed');return e;}catch(f){this['accounts']['delete'](b);throw f;}}async['doInitialize'](a){const b=new Messenger(a,this['config']);try{await b['initialize']();}catch(d){throw new MessengerError(MessengerErrorCode['SERVER_ERROR'],'Failed\x20to\x20initialize\x20account\x20'+a+':\x20'+(d instanceof Error?d['message']:String(d)));}await sleep(0x3e8);const c={'friends':[],'guards':[],'lastUpdatedAt':0x0};this['accounts']['set'](a,{'address':a,'messenger':b,'initialized':!![],'contactLists':c});if(this['isWatching']){const e=this['persistStorage']['tryAcquirePollingLock'](a,this['instanceId']);e&&(this['pollingLockedAccounts']['add'](a),b['setOnMessageCallback'](f=>{for(const g of this['messageListeners']){g(f);}}));}}async['add_account_internal'](a){await this['ensureAccountReady'](a);}['remove_account_internal'](a){const b=a['toLowerCase'](),c=this['accounts']['get'](b);if(!c)return![];return c['initialized']&&c['messenger']&&c['messenger']['disconnect'](),this['persistStorage']['releasePollingLock'](b,this['instanceId']),this['pollingLockedAccounts']['delete'](b),this['accounts']['delete'](b);}['clear_accounts'](){this['stopPolling']();for(const a of this['accounts']['values']()){a['messenger']&&a['messenger']['disconnect']();}this['accounts']['clear']();}async['send'](a,b,c,d){const {Account:e}=await import('../local/account.js'),f=await e['Instance']()['get'](a,![]);if(!f)throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'Account\x20'+a+'\x20not\x20found');if(f['m']==null){if(d?.['new_messenger_name']==null)throw new MessengerError(MessengerErrorCode['ACCOUNT_MESSENGER_NOT_ENABLED'],'Account\x20messenger\x20name\x20not\x20set.\x20Use\x20new_messenger_name\x20parameter\x20to\x20set\x20it\x20automatically.');await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}const g=await this['ensureAccountReady'](a);if(d?.['new_messenger_name']!=null){const h=await e['Instance']()['get'](a,![]);h&&h['m']!==d['new_messenger_name']&&await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}return g['messenger']['sendMessage'](b,c,{'guardAddress':d?.['guardAddress'],'passportAddress':d?.['passportAddress'],'force':d?.['force']});}async['send_file'](a,b,c,d){const {Account:e}=await import('../local/account.js'),f=await e['Instance']()['get'](a,![]);if(!f)throw new MessengerError(MessengerErrorCode['IDENTITY_NOT_FOUND'],'Account\x20'+a+'\x20not\x20found');if(f['m']==null){if(d?.['new_messenger_name']==null)throw new MessengerError(MessengerErrorCode['ACCOUNT_MESSENGER_NOT_ENABLED'],'Account\x20messenger\x20name\x20not\x20set.\x20Use\x20new_messenger_name\x20parameter\x20to\x20set\x20it\x20automatically.');await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}const g=await this['ensureAccountReady'](a);if(d?.['new_messenger_name']!=null){const h=await e['Instance']()['get'](a,![]);h&&h['m']!==d['new_messenger_name']&&await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}return g['messenger']['sendZipFile'](b,c,{'fileName':d?.['fileName'],'contentType':d?.['contentType'],'guardAddress':d?.['guardAddress'],'passportAddress':d?.['passportAddress'],'force':d?.['force']});}async['watch'](a){let b=[];if(a?.['account']!==undefined){const i=a['account']['toLowerCase'](),j=this['accounts']['get'](i);j?.['messenger']&&await j['messenger']['pullMessages']();const k=new MessageStorage(i);b=k['getAllMessages'](i);}else for(const l of this['accounts']['values']()){l['messenger']&&await l['messenger']['pullMessages']();const m=new MessageStorage(l['address']),n=m['getAllMessages'](l['address']);b['push'](...n);}if(a){const o=a['peerAddress']?await GetAccountOrMark_Address(a['peerAddress']):undefined;b=b['filter'](p=>{if(a?.['account']!==undefined){const r=a['account']['toLowerCase'](),s=p['fromAddress']['toLowerCase'](),t=p['toAddress']['toLowerCase']();if(s!==r&&t!==r)return![];}if(a['direction']&&p['direction']!==a['direction'])return![];if(a['status']&&p['status']!==a['status'])return![];if(a['msgType']!==undefined&&p['msgType']!==a['msgType'])return![];if(a['contentType'])switch(a['contentType']){case'text':if(p['msgType']!==MessageType['NORMAL_MESSAGE'])return![];break;case'zip':if(!p['zipMetadata'])return![];break;case'wts':if(!p['zipMetadata']||p['zipMetadata']?.['contentType']!=='wts')return![];break;case'wip':if(!p['zipMetadata']||p['zipMetadata']?.['contentType']!=='wip')return![];break;}if(a['peerAddress']&&o){const u=o['toLowerCase'](),v=p['fromAddress']['toLowerCase'](),w=p['toAddress']['toLowerCase']();if(v!==u&&w!==u)return![];}const q=a['timeField']||'createdAt';if(a['startTime']!==undefined||a['endTime']!==undefined){const x=p[q];if(x!==undefined){if(a['startTime']!==undefined&&x<a['startTime'])return![];if(a['endTime']!==undefined&&x>a['endTime'])return![];}}if(a['createdAtStart']!==undefined&&p['createdAt']<a['createdAtStart'])return![];if(a['createdAtEnd']!==undefined&&p['createdAt']>a['createdAtEnd'])return![];if(a['receivedAtStart']!==undefined){if(p['receivedAt']===undefined||p['receivedAt']<a['receivedAtStart'])return![];}if(a['receivedAtEnd']!==undefined){if(p['receivedAt']===undefined||p['receivedAt']>a['receivedAtEnd'])return![];}if(a['serverTimestampStart']!==undefined){if(p['serverTimestamp']===undefined||p['serverTimestamp']<a['serverTimestampStart'])return![];}if(a['serverTimestampEnd']!==undefined){if(p['serverTimestamp']===undefined||p['serverTimestamp']>a['serverTimestampEnd'])return![];}if(a['decryptedOnly']&&!p['plaintext'])return![];if(a['confirmedOnly']&&p['status']!==MessageStatus['CONFIRMED'])return![];if(a['arkConfirmedOnly']){if(!p['arkConfirmed'])return![];}if(a['proofedOnly']){if(!p['proof'])return![];}if(a['arkTimestampStart']!==undefined){if(p['arkConfirmed']===undefined||p['arkConfirmed']['timestamp']<a['arkTimestampStart'])return![];}if(a['arkTimestampEnd']!==undefined){if(p['arkConfirmed']===undefined||p['arkConfirmed']['timestamp']>a['arkTimestampEnd'])return![];}if(a['hasLastReceivedIndexOnly']){if(p['lastReceivedLeafIndex']===undefined||p['lastReceivedLeafIndex']===null)return![];}if(a['lastReceivedIndexMin']!==undefined){if(p['lastReceivedLeafIndex']===undefined||p['lastReceivedLeafIndex']<a['lastReceivedIndexMin'])return![];}if(a['lastReceivedIndexMax']!==undefined){if(p['lastReceivedLeafIndex']===undefined||p['lastReceivedLeafIndex']>a['lastReceivedIndexMax'])return![];}if(a['keyword']&&p['plaintext']){if(!p['plaintext']['toLowerCase']()['includes'](a['keyword']['toLowerCase']()))return![];}if(a['listFilterMode']&&a['listFilterMode']!=='any'){const y=this['findAccount'](p['toAddress']);if(!y)return![];const z=p['fromAddress']['toLowerCase'](),A=y['contactLists'],B=new Set(A['friends']['map'](G=>G['toLowerCase']())),C=new Set(A['guards']['map'](G=>G['guardAddress']['toLowerCase']())),D=B['has'](z),E=C['has'](z),F=!D&&!E;switch(a['listFilterMode']){case'friends':if(!D)return![];break;case'guard':if(!E)return![];break;case'stranger':if(!F)return![];break;}if(a['customListFilter']){const {includeAddresses:G,excludeAddresses:H,relation:relation='union'}=a['customListFilter'];if(H){const I=new Set(H['map'](J=>J['toLowerCase']()));if(I['has'](z))return![];}if(G&&G['length']>0x0){const J=new Set(G['map'](L=>L['toLowerCase']())),K=J['has'](z);if(relation==='union'){const L=a['listFilterMode']==='friends'&&D||a['listFilterMode']==='guard'&&E||a['listFilterMode']==='stranger'&&F;if(!K&&!L)return![];}else{if(!K)return![];}}}}if(a['viewed']!==undefined){const M=p['viewedAt']!==undefined;if(a['viewed']!==M)return![];}if(a['viewedAtStart']!==undefined){if(p['viewedAt']===undefined||p['viewedAt']<a['viewedAtStart'])return![];}if(a['viewedAtEnd']!==undefined){if(p['viewedAt']===undefined||p['viewedAt']>a['viewedAtEnd'])return![];}return!![];});}const c=a?.['sortOrder']??'desc',d=a?.['timeField']||'createdAt';b['sort']((p,q)=>{const r=p[d]||0x0,s=q[d]||0x0;return c==='asc'?r-s:s-r;});const {MAX_QUERY_LIMIT:e}=await import('./types.js'),f=this['config']['defaultQueryLimit']??0x32,g=Math['min'](a?.['limit']??f,e),h=a?.['offset']??0x0;return b=b['slice'](h,h+g),b;}['startPolling'](){if(this['isWatching'])return;this['isWatching']=!![];}['stopPolling'](){this['isWatching']=![];}['onMessage'](a){this['messageListeners']['add'](a);}['offMessage'](a){this['messageListeners']['delete'](a);}['destroy'](){this['stop'](),this['messageListeners']['clear']();}async['syncContactLists'](a){const b=this['findAccount'](a);if(!b)return{'success':![],'friends':[],'guards':[],'error':'Account\x20not\x20found:\x20'+a};try{const [c,d]=await Promise['all']([b['messenger']['getFriendsList'](),b['messenger']['getGuardList']()]),e=d['currentGuardList']||[];return b['contactLists']={'friends':c,'guards':e,'lastUpdatedAt':Date['now']()},{'success':!![],'friends':c,'guards':e};}catch(f){return{'success':![],'friends':b['contactLists']['friends'],'guards':b['contactLists']['guards'],'error':f instanceof Error?f['message']:String(f)};}}async['syncAllContactLists'](){const a=new Map();for(const b of this['accounts']['values']()){const c=await this['syncContactLists'](b['address']);a['set'](b['address'],c);}return a;}['getContactLists'](a){const b=this['findAccount'](a);return b?.['contactLists'];}['setContactLists'](a,b){const c=this['findAccount'](a);if(!c)return![];return c['contactLists']={...c['contactLists'],...b,'lastUpdatedAt':Date['now']()},!![];}['isStranger'](a,b){const c=this['findAccount'](a);if(!c)return!![];const d=b['toLowerCase'](),e=c['contactLists'],f=e['friends']['some'](h=>h['toLowerCase']()===d),g=e['guards']['some'](h=>h['guardAddress']['toLowerCase']()===d);return!f&&!g;}['recordGuardSender'](a,b){const c=this['findAccount'](a);if(!c)return![];const d=b['toLowerCase'](),e=c['contactLists']['guards']['some'](f=>f['guardAddress']['toLowerCase']()===d);return!e&&(c['contactLists']['guards']['push']({'guardAddress':b,'passportValiditySeconds':0x15180}),c['contactLists']['lastUpdatedAt']=Date['now']()),!![];}['generateNonce'](){return Math['random']()['toString'](0x24)['substring'](0x2,0xf)+Math['random']()['toString'](0x24)['substring'](0x2,0xf);}async['watch_paginated'](a){const {MAX_QUERY_LIMIT:b}=await import('./types.js'),c=await this['watch'](a),d=c['length'],e=this['config']['defaultQueryLimit']??0x32,f=Math['min'](a?.['limit']??e,b),g=a?.['offset']??0x0,h=c['slice'](g,g+f);return{'messages':h,'total':d,'offset':g,'limit':f};}async['get_conversations'](a){const b=a?{'account':a}:undefined,c=await this['watch'](b),d=new Map();for(const e of c){const f=a?.['toLowerCase'](),g=e['fromAddress']['toLowerCase']()===f?e['toAddress']:e['fromAddress'];!d['has'](g)&&d['set'](g,{'peerAddress':g,'lastMessageAt':e['createdAt'],'messageCount':0x0,'unreadCount':0x0,'lastMessagePreview':e['plaintext']});const h=d['get'](g);h['messageCount']++,e['createdAt']>h['lastMessageAt']&&(h['lastMessageAt']=e['createdAt'],h['lastMessagePreview']=e['plaintext']),e['status']!==MessageStatus['READ']&&e['toAddress']['toLowerCase']()===f&&h['unreadCount']++;}return Array['from'](d['values']())['sort']((i,j)=>j['lastMessageAt']-i['lastMessageAt']);}async['generate_wts'](a,b,c,d,e){const f=await import('fs'),g=await import('path'),h=b['toLowerCase'](),k=c['toLowerCase'](),l=new MessageStorage(h),m=l['getAllMessages'](h);let n=m['filter'](w=>{const x=w['fromAddress']['toLowerCase'](),y=w['toAddress']['toLowerCase'](),z=x===h&&y===k||x===k&&y===h;return z;});n=n['filter'](w=>w['leafIndex']!==undefined&&w['serverTimestamp']!==undefined)['reduce']((w,x)=>{const y=w['find'](z=>z['messageId']===x['messageId']);return!y&&w['push'](x),w;},[])['sort']((w,x)=>{const y=w['serverTimestamp']-x['serverTimestamp'];if(y!==0x0)return y;return w['leafIndex']-x['leafIndex'];});if(d)switch(d['type']){case'time':{const w=Math['min'](d['start'],d['end']),x=Math['max'](d['start'],d['end']);n=n['filter'](y=>y['createdAt']>=w&&y['createdAt']<=x);break;}case'messageId':{const y=d['start'],z=d['end'];n=n['filter'](A=>A['messageId']>=y&&A['messageId']<=z);break;}case'seqIndex':{const A=Math['min'](d['start'],d['end']),B=Math['max'](d['start'],d['end']);n=n['filter'](C=>C['leafIndex']>=A&&C['leafIndex']<=B);break;}}if(n['length']===0x0)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'No\x20messages\x20found\x20for\x20the\x20given\x20criteria');const o=n['map'](C=>C['leafIndex'])['filter'](C=>C!==undefined)['sort']((C,D)=>C-D),p=[];for(let C=0x1;C<o['length'];C++){const D=o[C-0x1]+0x1,E=o[C];if(E!==D)for(let F=D;F<E;F++){p['push'](F);}}if(p['length']>0x0){}if(n['length']>WTS_MAX_MESSAGE_COUNT)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20count\x20('+n['length']+')\x20exceeds\x20maximum\x20allowed\x20('+WTS_MAX_MESSAGE_COUNT+')');!f['existsSync'](a)&&f['mkdirSync'](a,{'recursive':!![]});const q=h['slice'](0x0,0x6)+'_'+k['slice'](0x0,0x6),r=[];let s=[];for(let G=0x0;G<n['length'];G++){const H=n[G];if(s['length']===0x0)s['push'](H);else{const I=s[s['length']-0x1],J=I['leafIndex']+0x1;s['length']>=WTS_MAX_MESSAGE_COUNT||H['leafIndex']!==J?(r['push'](s),s=[H]):s['push'](H);}}s['length']>0x0&&r['push'](s);r['forEach']((K,L)=>{const M=K['map'](N=>N['leafIndex'])['join'](',\x20');});const t=[];for(const K of r){const L=K['map'](a2=>a2['leafIndex'])['filter'](a2=>a2!==undefined),M=Math['min'](...L),N=Math['max'](...L),O=K[0x0]['createdAt'],P=K[K['length']-0x1]['createdAt'];for(const a2 of K){if(a2['serverTimestamp']===undefined)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a2['messageId']+'\x20missing\x20serverTimestamp');if(a2['leafIndex']===undefined)throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a2['messageId']+'\x20missing\x20leafIndex');if(!a2['prevRoot'])throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a2['messageId']+'\x20missing\x20prevRoot');if(!a2['newRoot'])throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a2['messageId']+'\x20missing\x20newRoot');if(!a2['serverSignature'])throw new MessengerError(MessengerErrorCode['INVALID_INPUT'],'Message\x20'+a2['messageId']+'\x20missing\x20serverSignature');}const Q=K['map'](a3=>{const a4={'id':a3['messageId'],'from':a3['fromAddress'],'to':a3['toAddress'],'plaintextHash':a3['plaintextHash'],'clientTimestamp':a3['createdAt'],'timestamp':a3['serverTimestamp'],'leafIndex':a3['leafIndex'],'prevRoot':a3['prevRoot'],'merkleRoot':a3['newRoot'],'serverSignature':a3['serverSignature'],'serverPublicKey':a3['serverPublicKey']||'','msgType':a3['msgType']};return!e&&a3['plaintext']!==undefined&&(a4['plaintext']=a3['plaintext']),a3['guardAddress']!==undefined&&(a4['guardAddress']=a3['guardAddress']),a3['passportAddress']!==undefined&&(a4['passportAddress']=a3['passportAddress']),a3['arkConfirmed']!==undefined&&(a4['arkConfirmed']={'recipient':a3['arkConfirmed']['recipient'],'recipientPublicKey':a3['arkConfirmed']['recipientPublicKey'],'signature':a3['arkConfirmed']['signature'],'timestamp':a3['arkConfirmed']['timestamp']}),a3['zipMetadata']!==undefined&&(a4['zipMetadata']=a3['zipMetadata']),a3['lastReceivedLeafIndex']!==undefined&&a3['lastReceivedLeafIndex']!==-0x1&&(a4['lastReceivedLeafIndex']=a3['lastReceivedLeafIndex']),a4;}),R=[h,k]['sort'](),S={'participants':R},T={'session':S,'messages':Q},{sha256:U}=await import('@noble/hashes/sha256'),{bytesToHex:V}=await import('@noble/hashes/utils'),W=canonicalizeJson(T),X='sha256:'+V(U(new TextEncoder()['encode'](W))),Y={'type':'wts','version':'1.0','created':new Date()['toISOString'](),'hash':X,'algorithm':'sha256','startTime':O,'endTime':P,'messageCount':Q['length'],'merkleRoot':Q[Q['length']-0x1]['merkleRoot'],'creator':h,'participant':k},Z={'wts':WTS_SCHEMA_URL,'payload':T,'meta':Y},a0=q+'_'+M+'-'+N+'.wts',a1=g['join'](a,a0);f['writeFileSync'](a1,JSON['stringify'](Z,null,0x2)),t['push'](a1);}const u=n[0x0]?.['createdAt']||0x0,v=n[n['length']-0x1]?.['createdAt']||0x0;return{'files':t,'totalMessageCount':n['length'],'timeRange':{'start':u,'end':v}};}async['addToBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToBlacklist'](b);}async['removeFromBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromBlacklist'](b);}async['clearBlacklist'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['clearBlacklist']();}async['getBlacklist'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getBlacklist']();}async['existInBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['existInBlacklist'](b);}async['addToFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToFriendsList'](b);}async['removeFromFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromFriendsList'](b);}async['clearFriendsList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['clearFriendsList']();}async['getFriendsList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getFriendsList']();}async['existInFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['existInFriendsList'](b);}async['addToGuardList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToGuardList'](b);}async['removeFromGuardList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromGuardList'](b);}async['getGuardList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getGuardList']();}async['getSettings'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getSettings']();}async['setSettings'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError(MessengerErrorCode['ACCOUNT_NOT_FOUND'],'Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['setSettings'](b);}}
|