@wowok/wowok 2.2.13 → 2.2.15
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/allocation.js +1 -1
- package/dist/cjs/w/call/arbitration.js +1 -1
- package/dist/cjs/w/call/base.d.ts +1 -0
- package/dist/cjs/w/call/base.js +1 -1
- package/dist/cjs/w/call/contact.js +1 -1
- package/dist/cjs/w/call/demand.js +1 -1
- package/dist/cjs/w/call/machine.js +1 -1
- package/dist/cjs/w/call/order.js +1 -1
- package/dist/cjs/w/call/permission.js +1 -1
- package/dist/cjs/w/call/repository.js +1 -1
- package/dist/cjs/w/call/reward.js +1 -1
- package/dist/cjs/w/call/service.js +1 -1
- package/dist/cjs/w/call/treasury.js +1 -1
- package/dist/cjs/w/local/account.d.ts +2 -0
- package/dist/cjs/w/local/account.js +1 -1
- package/dist/cjs/w/local/cache.js +1 -1
- package/dist/cjs/w/local/index.js +1 -1
- package/dist/cjs/w/local/local.d.ts +3 -0
- package/dist/cjs/w/local/local.js +1 -1
- package/dist/cjs/w/query/received.d.ts +1 -1
- package/dist/cjs/w/query/received.js +1 -1
- package/dist/esm/w/call/allocation.js +1 -1
- package/dist/esm/w/call/arbitration.js +1 -1
- package/dist/esm/w/call/base.d.ts +1 -0
- package/dist/esm/w/call/base.js +1 -1
- package/dist/esm/w/call/contact.js +1 -1
- package/dist/esm/w/call/demand.js +1 -1
- package/dist/esm/w/call/machine.js +1 -1
- package/dist/esm/w/call/order.js +1 -1
- package/dist/esm/w/call/permission.js +1 -1
- package/dist/esm/w/call/repository.js +1 -1
- package/dist/esm/w/call/reward.js +1 -1
- package/dist/esm/w/call/service.js +1 -1
- package/dist/esm/w/call/treasury.js +1 -1
- package/dist/esm/w/local/account.d.ts +2 -0
- package/dist/esm/w/local/account.js +1 -1
- package/dist/esm/w/local/cache.js +1 -1
- package/dist/esm/w/local/index.js +1 -1
- package/dist/esm/w/local/local.d.ts +3 -0
- package/dist/esm/w/local/local.js +1 -1
- package/dist/esm/w/query/received.d.ts +1 -1
- package/dist/esm/w/query/received.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{GasTokenType}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';import{Account}from'./account.js';import{LocalInfo,LocalInfoNameDefault,LocalMark}from'./local.js';import{TokenInfo}from'./token.js';import{isValidWowAddress}from'../../utils/wow-types.js';import{ENTITY_LINKER_ADDRESS,ENTITY_REGISTRAR_ADDRESS}from'../common.js';export{Account,LocalInfo,LocalMark};export const GetAccountOrMark_Address=async a=>{if(!a)return await Account['Instance']()['get_address'](undefined);const b=typeof a==='string'?a:a['name_or_address'];if(!b)return await Account['Instance']()['get_address'](undefined);if(b['toLowerCase']()==='0xaaa')return ENTITY_LINKER_ADDRESS;if(b['toLowerCase']()==='0xaab')return ENTITY_REGISTRAR_ADDRESS;if(isValidWowAddress(b))return b;if(typeof a==='object'&&a?.['local_mark_first']){const c=await LocalMark['Instance']()['get_address'](b);if(!c)return await Account['Instance']()['get_address'](b);return c;}else{const d=await Account['Instance']()['get_address'](b);if(!d)return await LocalMark['Instance']()['get_address'](b);return d;}};export const GetLocalNamesByAddresses=async a=>{const [b,c]=await Promise['all']([Account['Instance']()['get_many'](a),LocalMark['Instance']()['get_many'](a)]);return a['map']((d,e)=>({'account':b[e]?.['name'],'local_mark':c[e]?.['name'],'address':d}));};export const GetManyAccountOrMark_Address=async a=>{const b=[];for(let c=0x0;c<a['entities']['length'];++c){const d=await GetAccountOrMark_Address(a['entities'][c]);!d&&a['check_all_founded']&&W_ERROR(WErrors['InvalidParam'],'entity\x20'+a['entities'][c]?.['name_or_address']+'\x20is\x20not\x20a\x20valid\x20address,\x20account\x20or\x20mark'),
|
|
1
|
+
import{GasTokenType}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';import{Account}from'./account.js';import{LocalInfo,LocalInfoNameDefault,LocalMark}from'./local.js';import{TokenInfo}from'./token.js';import{isValidWowAddress}from'../../utils/wow-types.js';import{ENTITY_LINKER_ADDRESS,ENTITY_REGISTRAR_ADDRESS}from'../common.js';export{Account,LocalInfo,LocalMark};export const GetAccountOrMark_Address=async a=>{if(!a)return await Account['Instance']()['get_address'](undefined);const b=typeof a==='string'?a:a['name_or_address'];if(!b)return await Account['Instance']()['get_address'](undefined);if(b['toLowerCase']()==='0xaaa')return ENTITY_LINKER_ADDRESS;if(b['toLowerCase']()==='0xaab')return ENTITY_REGISTRAR_ADDRESS;if(isValidWowAddress(b))return b;if(typeof a==='object'&&a?.['local_mark_first']){const c=await LocalMark['Instance']()['get_address'](b);if(!c)return await Account['Instance']()['get_address'](b);return c;}else{const d=await Account['Instance']()['get_address'](b);if(!d)return await LocalMark['Instance']()['get_address'](b);return d;}};export const GetLocalNamesByAddresses=async a=>{const [b,c]=await Promise['all']([Account['Instance']()['get_many'](a),LocalMark['Instance']()['get_many'](a)]);return a['map']((d,e)=>({'account':b[e]?.['name'],'local_mark':c[e]?.['name'],'address':d}));};export const GetManyAccountOrMark_Address=async a=>{const b=[];for(let c=0x0;c<a['entities']['length'];++c){const d=await GetAccountOrMark_Address(a['entities'][c]);!d&&a['check_all_founded']&&W_ERROR(WErrors['InvalidParam'],'entity\x20'+a['entities'][c]?.['name_or_address']+'\x20is\x20not\x20a\x20valid\x20address,\x20account\x20or\x20mark'),d&&b['push'](d);}return b;};export const query_local_mark_list=async a=>{return await LocalMark['Instance']()['list'](a);};export const query_account_list=async a=>{return await Account['Instance']()['list'](a);};export const query_local_info_list=async a=>{return await LocalInfo['Instance']()['list'](a);};export const query_local_token_list=async a=>{return await TokenInfo['Instance']()['list'](a);};export const query_local_mark=async a=>{if(typeof a==='string')return await LocalMark['Instance']()['get'](a);else{if(Array['isArray'](a))return await LocalMark['Instance']()['get_many'](a);}return undefined;};export const query_local_info=async(a=LocalInfoNameDefault)=>{if(typeof a==='string')return await LocalInfo['Instance']()['get'](a);else{if(Array['isArray'](a))return await LocalInfo['Instance']()['get_many'](a);}return undefined;};export const query_local_info_default=async(a=LocalInfoNameDefault)=>{if(typeof a==='string')return await LocalInfo['Instance']()['get_default'](a);else{if(Array['isArray'](a))return(await LocalInfo['Instance']()['get_many'](a))['map'](b=>b?.['default']);}return undefined;};export const query_account=async a=>{const b=await Account['Instance']()['get'](a['name_or_address']);if(!b)return{'name_or_address':a['name_or_address']};const c={'address':b['address'],'name_or_address':b['name']},d=a['token_type']??GasTokenType;if(a?.['balance'])c['balance']=await Account['Instance']()['balance'](d,b['address'],a['network']);else a?.['coin']&&(c['coin']=await Account['Instance']()['coin'](d,a['coin']['cursor'],a['coin']['limit'],b['address'],a['network']));return c;};export const account_operation=async a=>{var b={};if(a['gen']!=null){const c=await Account['Instance']()['gen'](a['gen']?.['name'],a['gen']?.['replaceExistName'],a['gen']?.['m']);b['gen']={'address':c?.['address'],'name':c?.['name'],'m':c?.['m']};}a['faucet']!=null&&(b['faucet']={'name_or_address':a['faucet']['name_or_address'],'result':await Account['Instance']()['faucet'](a['faucet']['name_or_address'],a['faucet']['network']),'network':a['faucet']['network']});a['suspend']!=null&&(b['suspend']={'name_or_address':a['suspend']['name_or_address'],'success':await Account['Instance']()['suspend'](a['suspend']['name_or_address'])});a['resume']!=null&&(b['resume']={'address':a['resume']['address'],'name':a['resume']['name'],'success':await Account['Instance']()['resume'](a['resume']['address'],a['resume']['name'])});a['rename']!=null&&(b['rename']={'name_or_address':a['rename']['name_or_address'],'new_name':a['rename']['new_name'],'success':await Account['Instance']()['rename'](a['rename']['name_or_address'],a['rename']['new_name'])});a['swap_name']!=null&&(b['swap_name']={'name_or_address1':a['swap_name']['name_or_address1'],'name_or_address2':a['swap_name']['name_or_address2'],'success':await Account['Instance']()['swap_name'](a['swap_name']['name_or_address1'],a['swap_name']['name_or_address2'])});if(a['transfer']!=null){const {name_or_address_from:d,name_or_address_to:e,amount:f,token_type:g,network:h}=a['transfer'];b['transfer']=await Account['Instance']()['transfer'](f,g,e,d,h);}if(a['get']!=null){const {balance_required:i,token_type:j,name_or_address:k,network:l}=a['get'];b['get']={'name_or_address':k,'balance_required':i,'token_type':j,'network':l,'coin_address':await Account['Instance']()['coinObject_with_balance'](i,j,k,l)};}if(a['signData']!=null){const {name_or_address:n,data:o,data_encoding:p}=a['signData'];let q=o;if(typeof o==='string'&&p)switch(p){case'base64':q=Uint8Array['from'](Buffer['from'](o,'base64'));break;case'hex':q=Uint8Array['from'](Buffer['from'](o['replace'](/^0x/,''),'hex'));break;case'utf8':default:q=o;break;}const r=await Account['Instance']()['signData'](n,q);b['signData']={'name_or_address':n,'signature':r['signature'],'publicKey':r['publicKey'],'address':r['address']};}if(a['messenger']!=null){const {name_or_account:s,m:t}=a['messenger'];await Account['Instance']()['set_messenger'](s,t),b['messenger']={'name_or_account':s,'m':t};}return b;};export const local_mark_operation=async a=>{const b={};if(a['clear'])b['clear']=await LocalMark['Instance']()['clear']();else{if(a['add'])b['add']=await LocalMark['Instance']()['put'](a['add']['data']);else a['remove']&&(b['remove']=await LocalMark['Instance']()['del'](a['remove']['names']));}return b;};export const local_info_operation=async a=>{if(a['clear'])await LocalInfo['Instance']()['clear']();else{if(a['add'])await LocalInfo['Instance']()['add'](a['add']['data']);else{if(a['remove'])await Promise['all'](a['remove']['data']['map'](b=>LocalInfo['Instance']()['del'](b)));else a['reset']&&await LocalInfo['Instance']()['reset_contents'](a['reset']['name'],a['reset']['contents']);}}return{'success':!![]};};export const fetch_token_info_operation=async a=>{return await TokenInfo['Instance']()['fetch'](a['tokenType'],a?.['alias'],a?.['network']);};export*from'./account.js';export*from'./config.js';export*from'./local.js';export*from'./token.js';export*from'./wip.js';
|
|
@@ -61,6 +61,7 @@ export declare class LocalMark {
|
|
|
61
61
|
static _instance: any;
|
|
62
62
|
private cacheKey;
|
|
63
63
|
static Instance(): LocalMark;
|
|
64
|
+
private static nameMatch;
|
|
64
65
|
private resolve_tags;
|
|
65
66
|
private resolve_name;
|
|
66
67
|
put(marks: MarkParam[]): Promise<MarkData[]>;
|
|
@@ -79,7 +80,9 @@ export declare class LocalMark {
|
|
|
79
80
|
export declare class LocalInfo {
|
|
80
81
|
static _instance: any;
|
|
81
82
|
private cacheKey;
|
|
83
|
+
private static _lock;
|
|
82
84
|
static Instance(): LocalInfo;
|
|
85
|
+
private static nameMatch;
|
|
83
86
|
private resolve_contents;
|
|
84
87
|
private resolve_name;
|
|
85
88
|
add(data: InfoData[]): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isValidWowAddress}from'../../utils/wow-types.js';import{W_ERROR,WErrors}from'../exception.js';import{Cache,CachePrefix}from'./cache.js';export const BUITIN_IDS=['0x5','0x6','0x7','0x8','0x9','@0xaaa','@0xaab','@0x403','@0xacc','@0xc'];export const isValidAddress=a=>{return a&&(isValidWowAddress(a)||BUITIN_IDS['includes'](a));};export const LocalMarkNameMaxLength=0x40;export const LocalMarkTagMaxLength=0x40;export const LocalMarkTagMaxCount=0x32;export const LocalInfoNameMaxLength=0x40;export const LocalInfoContentMaxLength=0x12c;export const LocalInfoContentMaxCount=0x32;export const LocalInfoNameDefault='Address\x20of\x20delivery';export class LocalMark{static ['_instance'];['cacheKey']=[CachePrefix['local_mark']];static['Instance'](){return!LocalMark['_instance']&&(LocalMark['_instance']=new LocalMark()),LocalMark['_instance'];}['resolve_tags'](a){return a=a?.['slice'](0x0,LocalMarkTagMaxCount),a=a?.['filter'](b=>b!==''&&b)?.['map'](b=>{return b['slice'](0x0,LocalMarkTagMaxLength);}),a;}['resolve_name'](a){return a['slice'](0x0,LocalMarkNameMaxLength);}async['put'](a){const b=await Cache['read'](this['cacheKey'],async()=>{return{'expire':'INFINITE','data':[]};}),c=b?.['data']||[],d=[];for(const e of a){const f=e['address']['toLowerCase']();e['address']=f;!isValidAddress(e['address'])&&W_ERROR(WErrors['IsValidAddress'],'LocalMark.put.mark.address:\x20'+e['address']);e?.['name']?.['value']&&(e['name']['value']=this['resolve_name'](e?.['name']?.['value']));e['tags']=this['resolve_tags'](e?.['tags']),c['forEach'](i=>{e?.['name']?.['value']!=null&&i['name']===e?.['name']?.['value']&&(e?.['name']?.['replaceExistName']?i['name']=undefined:W_ERROR(WErrors['LocalMarkNameExist'],'LocalMark.put.mark.name:\x20'+e['name']['value']));});const g=Date['now'](),h={'name':e?.['name']?.['value'],'address':e['address'],'tags':e['tags'],'createdAt':g,'updatedAt':g};c['push'](h),d['push'](h);}return await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':c}),!![]),d;}async['get'](a){if(a===undefined||a===null)return undefined;const b=await Cache['read'](this['cacheKey'],async c=>{return{'expire':'INFINITE','data':[]};});return b?.['data']?.['find'](c=>c['name']===a||c['address']['toLowerCase']()===a['toLowerCase']());}async['get_address'](a){if(a&&isValidAddress(a))return a['toLowerCase']();return(await this['get'](a))?.['address'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=await Cache['read'](this['cacheKey'],async d=>{return{'expire':'INFINITE','data':[]};}),c=b?.['data']||[];return a['map'](d=>{return c['find'](e=>e['name']===d||e['address']['toLowerCase']()===d?.['toLowerCase']());});}async['get_many_address'](a){const b=new Array(a['length'])['fill'](undefined),c=new Map();a['forEach']((g,h)=>{if(g===null||g===undefined)b[h]=undefined;else isValidAddress(g)?b[h]=g['toLowerCase']():c['set'](h,g);});const d=Array['from'](c['values']());if(d['length']===0x0)return b;const e=await this['get_many'](d);let f=0x0;return c['forEach']((g,h)=>{const i=e[f];b[h]=i?.['address'],f++;}),b;}async['get_many_address_availables'](a){return(await this['get_many_address'](a))['filter'](b=>b!=null);}async['del'](a,b=![]){const c=[CachePrefix['local_mark']],d=await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})),e=d?.['data']||[],f=e['filter'](h=>{const i=h['name']!==undefined&&h['name']!==null&&a['includes'](h['name']),j=a['includes'](h['address']),k=i||j,l=h['name']===undefined||h['name']===null;return b?!k&&!l:!k;}),g=e['filter'](h=>!f['includes'](h));return f['length']!==e['length']&&await Cache['read'](c,async()=>({'expire':'INFINITE','data':f}),!![]),g;}async['clear'](){const a=[CachePrefix['local_mark']];return await Cache['read'](a,async()=>({'expire':'INFINITE','data':[]}),!![]),!![];}async['rename'](a,b){b=this['resolve_name'](b);if(a===b)return!![];const c=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':[]})),d=c?.['data']||[],e=d['find'](f=>f['name']===a);if(e&&d['findIndex'](f=>f['name']===b)===-0x1){const f=Date['now']();return e['name']=b,e['updatedAt']=f,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['swap_name'](a,b){if(a===b)return!![];const c=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':[]})),d=c?.['data']||[],e=d['find'](g=>g['name']===a),f=d['find'](g=>g['name']===b);if(e&&f){const g=Date['now']();return e['name']=b,e['updatedAt']=g,f['name']=a,f['updatedAt']=g,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['set_tags'](a,b){b=this['resolve_tags'](b);const c=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':[]})),d=c?.['data']||[],e=d['find'](f=>f['name']===a);if(e){const f=Date['now']();return e['tags']=b,e['updatedAt']=f,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['list'](a){if(a&&a['tags'])a['tags']=a['tags']['filter'](d=>d!==''&&d);const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':[]})),c=b?.['data']||[];return c['filter'](d=>{if(a?.['address']&&d['address']!==a['address'])return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==undefined&&(!d['createdAt']||d['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==undefined&&(!d['createdAt']||d['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==undefined&&(!d['updatedAt']||d['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==undefined&&(!d['updatedAt']||d['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['map'](d=>{let e=0x0;const f=d['name']?.['toLowerCase']()||'',g=a?.['name']?.['toLowerCase']()||'';if(a?.['name']){if(f===g)e+=0x64;else{if(f['startsWith'](g))e+=0x32;else f['includes'](g)&&(e+=0x19);}}return a?.['tags']&&a['tags']['length']>0x0&&a['tags']['forEach'](h=>{const i=h['toLowerCase']();d['tags']&&d['tags']['forEach'](j=>{const k=j['toLowerCase']();if(k===i)e+=0x14;else{if(k['startsWith'](i))e+=0xf;else k['includes'](i)&&(e+=0xa);}});}),(a?.['name']||a?.['tags'])&&e===0x0&&(e=-0x1),{'mark':d,'score':e};})['filter'](({score:d})=>d>=0x0)['sort']((d,e)=>{if(e['score']!==d['score'])return e['score']-d['score'];const f=(d['mark']['name']||'')['length'],g=(e['mark']['name']||'')['length'];if(f!==g)return f-g;return(d['mark']['name']||'')['localeCompare'](e['mark']['name']||'');})['map'](({mark:d})=>d);}}export class LocalInfo{static ['_instance'];['cacheKey']=[CachePrefix['local_info']];static['Instance'](){return!LocalInfo['_instance']&&(LocalInfo['_instance']=new LocalInfo()),LocalInfo['_instance'];}['resolve_contents'](a){return a=a['slice'](0x0,LocalInfoContentMaxCount),a['map'](b=>b['slice'](0x0,LocalInfoContentMaxLength));}['resolve_name'](a){return a['slice'](0x0,LocalInfoNameMaxLength);}async['add'](a){const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),c=b?.['data']||{};for(const d of a){const e=this['resolve_name'](d['name']),f=d['default']['slice'](0x0,LocalInfoContentMaxLength);if(c[e]){const g=Date['now'](),h=c[e];h['default']=f,d['contents']!==undefined&&(h['contents']=this['resolve_contents'](d['contents'])),h['updatedAt']=g;}else{const i=Date['now'](),j={'default':f,'contents':d['contents']?this['resolve_contents'](d['contents']):[],'createdAt':i,'updatedAt':i};c[e]=j;}}return await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':c}),!![]),!![];}async['get'](a=LocalInfoNameDefault){const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),c=b?.['data']||{},d=c[a];return d?{'name':a,...d}:undefined;}async['get_default'](a=LocalInfoNameDefault){const b=await this['get'](a);return b?.['default'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),c=b?.['data']||{};return a['map'](d=>{const e=c[d];return e?{'name':d,...e}:undefined;});}async['del'](a=LocalInfoNameDefault){const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),c=b?.['data']||{};delete c[a],await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':c}),!![]);}async['reset_contents'](a=LocalInfoNameDefault,b){const c=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),d=c?.['data']||{},e=d[a];if(e){if(e['contents']&&e['contents']['length']>0x0){const f=Date['now']();return e['contents']=this['resolve_contents'](b),e['updatedAt']=f,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':d}),!![]),!![];}}return![];}async['clear'](){await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}}),!![]);}async['list'](a){const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),c=b?.['data']||{};return Object['entries'](c)['map'](([d,e])=>{let f=0x0;const g={'name':d,...e};if(a?.['name']){const h=d['toLowerCase'](),i=a['name']['toLowerCase']();if(h===i)f+=0x64;else{if(h['startsWith'](i))f+=0x32;else h['includes'](i)&&(f+=0x19);}}if(a?.['default']){const j=e['default']['toLowerCase'](),k=a['default']['toLowerCase']();if(j===k)f+=0x5a;else{if(j['startsWith'](k))f+=0x2d;else j['includes'](k)&&(f+=0x16);}}return a?.['contents']&&a['contents']['length']>0x0&&a['contents']['forEach'](l=>{const m=l['toLowerCase']();e['contents']&&e['contents']['forEach'](n=>{const o=n['toLowerCase']();if(o===m)f+=0x14;else{if(o['startsWith'](m))f+=0xf;else o['includes'](m)&&(f+=0xa);}});}),(a?.['name']||a?.['default']||a?.['contents'])&&f===0x0&&(f=-0x1),{'info':g,'score':f};})['filter'](({score:d,info:e})=>{if(d<0x0)return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==undefined&&(!e['createdAt']||e['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==undefined&&(!e['createdAt']||e['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==undefined&&(!e['updatedAt']||e['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==undefined&&(!e['updatedAt']||e['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['sort']((d,e)=>{if(e['score']!==d['score'])return e['score']-d['score'];const f=d['info']['name']['length'],g=e['info']['name']['length'];if(f!==g)return f-g;return d['info']['name']['localeCompare'](e['info']['name']);})['map'](({info:d})=>d);}}
|
|
1
|
+
import{isValidWowAddress}from'../../utils/wow-types.js';import{W_ERROR,WErrors}from'../exception.js';import{Cache,CachePrefix}from'./cache.js';export const BUITIN_IDS=['0x5','0x6','0x7','0x8','0x9','@0xaaa','@0xaab','@0x403','@0xacc','@0xc'];export const isValidAddress=a=>{return a&&(isValidWowAddress(a)||BUITIN_IDS['includes'](a));};export const LocalMarkNameMaxLength=0x40;export const LocalMarkTagMaxLength=0x40;export const LocalMarkTagMaxCount=0x32;export const LocalInfoNameMaxLength=0x40;export const LocalInfoContentMaxLength=0x12c;export const LocalInfoContentMaxCount=0x32;export const LocalInfoNameDefault='Address\x20of\x20delivery';export class LocalMark{static ['_instance'];['cacheKey']=[CachePrefix['local_mark']];static['Instance'](){return!LocalMark['_instance']&&(LocalMark['_instance']=new LocalMark()),LocalMark['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_tags'](a){return a=a?.['slice'](0x0,LocalMarkTagMaxCount),a=a?.['filter'](b=>b!==''&&b)?.['map'](b=>{return b['slice'](0x0,LocalMarkTagMaxLength);}),a;}['resolve_name'](a){return a['slice'](0x0,LocalMarkNameMaxLength);}async['put'](a){const b=await Cache['read'](this['cacheKey'],async()=>{return{'expire':'INFINITE','data':[]};}),c=b?.['data']||[],d=[...c],e=[];for(const f of a){const g=f['address']['toLowerCase']();f['address']=g;!isValidAddress(f['address'])&&W_ERROR(WErrors['IsValidAddress'],'LocalMark.put.mark.address:\x20'+f['address']);f?.['name']?.['value']&&(f['name']['value']=this['resolve_name'](f?.['name']?.['value']));f['tags']=this['resolve_tags'](f?.['tags']);f?.['name']?.['value']!=null&&d['forEach'](j=>{LocalMark['nameMatch'](j['name'],f['name']['value'])&&(f?.['name']?.['replaceExistName']?j['name']=undefined:W_ERROR(WErrors['LocalMarkNameExist'],'LocalMark.put.mark.name:\x20'+f['name']['value']));});const h=Date['now'](),i={'name':f?.['name']?.['value'],'address':f['address'],'tags':f['tags'],'createdAt':h,'updatedAt':h};c['push'](i),e['push'](i);}return await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':c}),!![]),e;}async['get'](a){if(a===undefined||a===null)return undefined;const b=await Cache['read'](this['cacheKey'],async c=>{return{'expire':'INFINITE','data':[]};});return b?.['data']?.['find'](c=>LocalMark['nameMatch'](c['name'],a)||c['address']['toLowerCase']()===a['toLowerCase']());}async['get_address'](a){if(a&&isValidAddress(a))return a['toLowerCase']();return(await this['get'](a))?.['address'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=await Cache['read'](this['cacheKey'],async d=>{return{'expire':'INFINITE','data':[]};}),c=b?.['data']||[];return a['map'](d=>{return c['find'](e=>LocalMark['nameMatch'](e['name'],d)||e['address']['toLowerCase']()===d?.['toLowerCase']());});}async['get_many_address'](a){const b=new Array(a['length'])['fill'](undefined),c=new Map();a['forEach']((g,h)=>{if(g===null||g===undefined)b[h]=undefined;else isValidAddress(g)?b[h]=g['toLowerCase']():c['set'](h,g);});const d=Array['from'](c['values']());if(d['length']===0x0)return b;const e=await this['get_many'](d);let f=0x0;return c['forEach']((g,h)=>{const i=e[f];b[h]=i?.['address'],f++;}),b;}async['get_many_address_availables'](a){return(await this['get_many_address'](a))['filter'](b=>b!=null);}async['del'](a,b=![]){const c=[CachePrefix['local_mark']],d=await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})),e=d?.['data']||[],f=e['filter'](h=>{const i=a['map'](n=>n['toLowerCase']()),j=h['name']!==undefined&&h['name']!==null&&a['some'](n=>LocalMark['nameMatch'](h['name'],n)),k=i['includes'](h['address']['toLowerCase']()),l=j||k,m=h['name']===undefined||h['name']===null;return b?!l&&!m:!l;}),g=e['filter'](h=>!f['includes'](h));return f['length']!==e['length']&&await Cache['read'](c,async()=>({'expire':'INFINITE','data':f}),!![]),g;}async['clear'](){const a=[CachePrefix['local_mark']];return await Cache['read'](a,async()=>({'expire':'INFINITE','data':[]}),!![]),!![];}async['rename'](a,b){b=this['resolve_name'](b);if(a===b)return!![];const c=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':[]})),d=c?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e&&d['findIndex'](f=>LocalMark['nameMatch'](f['name'],b))===-0x1){const f=Date['now']();return e['name']=b,e['updatedAt']=f,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['swap_name'](a,b){if(a===b)return!![];const c=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':[]})),d=c?.['data']||[],e=d['find'](g=>LocalMark['nameMatch'](g['name'],a)),f=d['find'](g=>LocalMark['nameMatch'](g['name'],b));if(e&&f){const g=Date['now']();return e['name']=b,e['updatedAt']=g,f['name']=a,f['updatedAt']=g,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['set_tags'](a,b){b=this['resolve_tags'](b);const c=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':[]})),d=c?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e){const f=Date['now']();return e['tags']=b,e['updatedAt']=f,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['list'](a){if(a&&a['tags'])a['tags']=a['tags']['filter'](d=>d!==''&&d);const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':[]})),c=b?.['data']||[];return c['filter'](d=>{if(a?.['address']&&d['address']['toLowerCase']()!==a['address']['toLowerCase']())return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==undefined&&(!d['createdAt']||d['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==undefined&&(!d['createdAt']||d['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==undefined&&(!d['updatedAt']||d['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==undefined&&(!d['updatedAt']||d['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['map'](d=>{let e=0x0;const f=d['name']?.['toLowerCase']()||'',g=a?.['name']?.['toLowerCase']()||'';if(a?.['name']){if(f===g)e+=0x64;else{if(f['startsWith'](g))e+=0x32;else f['includes'](g)&&(e+=0x19);}}return a?.['tags']&&a['tags']['length']>0x0&&a['tags']['forEach'](h=>{const i=h['toLowerCase']();d['tags']&&d['tags']['forEach'](j=>{const k=j['toLowerCase']();if(k===i)e+=0x14;else{if(k['startsWith'](i))e+=0xf;else k['includes'](i)&&(e+=0xa);}});}),(a?.['name']||a?.['tags'])&&e===0x0&&(e=-0x1),{'mark':d,'score':e};})['filter'](({score:d})=>d>=0x0)['sort']((d,e)=>{if(e['score']!==d['score'])return e['score']-d['score'];const f=(d['mark']['name']||'')['length'],g=(e['mark']['name']||'')['length'];if(f!==g)return f-g;return(d['mark']['name']||'')['localeCompare'](e['mark']['name']||'');})['map'](({mark:d})=>d);}}class LocalInfoAsyncLock{['_locked']=![];['_queue']=[];async['acquire'](){if(!this['_locked']){this['_locked']=!![];return;}return new Promise(a=>{this['_queue']['push'](a);});}['release'](){this['_queue']['length']>0x0?this['_queue']['shift']()():this['_locked']=![];}async['run'](a){await this['acquire']();try{return await a();}finally{this['release']();}}}export class LocalInfo{static ['_instance'];['cacheKey']=[CachePrefix['local_info']];static ['_lock']=new LocalInfoAsyncLock();static['Instance'](){return!LocalInfo['_instance']&&(LocalInfo['_instance']=new LocalInfo()),LocalInfo['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_contents'](a){return a=a['slice'](0x0,LocalInfoContentMaxCount),a['map'](b=>b['slice'](0x0,LocalInfoContentMaxLength));}['resolve_name'](a){return a['slice'](0x0,LocalInfoNameMaxLength);}async['add'](a){return LocalInfo['_lock']['run'](async()=>{const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),c=b?.['data']||{};for(const d of a){const e=this['resolve_name'](d['name']),f=d['default']['slice'](0x0,LocalInfoContentMaxLength);if(c[e]){const g=Date['now'](),h=c[e];h['default']=f,d['contents']!==undefined&&(h['contents']=this['resolve_contents'](d['contents'])),h['updatedAt']=g;}else{const i=Date['now'](),j={'default':f,'contents':d['contents']?this['resolve_contents'](d['contents']):[],'createdAt':i,'updatedAt':i};c[e]=j;}}return await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':c}),!![]),!![];});}async['get'](a=LocalInfoNameDefault){const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),c=b?.['data']||{},d=c[a];return d?{'name':a,...d}:undefined;}async['get_default'](a=LocalInfoNameDefault){const b=await this['get'](a);return b?.['default'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),c=b?.['data']||{};return a['map'](d=>{const e=c[d];return e?{'name':d,...e}:undefined;});}async['del'](a=LocalInfoNameDefault){return LocalInfo['_lock']['run'](async()=>{const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),c=b?.['data']||{};delete c[a],await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':c}),!![]);});}async['reset_contents'](a=LocalInfoNameDefault,b){return LocalInfo['_lock']['run'](async()=>{const c=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),d=c?.['data']||{},e=d[a];if(e){const f=Date['now']();return e['contents']=this['resolve_contents'](b),e['updatedAt']=f,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];});}async['clear'](){return LocalInfo['_lock']['run'](async()=>{await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}}),!![]);});}async['list'](a){const b=await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})),c=b?.['data']||{};return Object['entries'](c)['map'](([d,e])=>{let f=0x0;const g={'name':d,...e};if(a?.['name']){const h=d['toLowerCase'](),i=a['name']['toLowerCase']();if(h===i)f+=0x64;else{if(h['startsWith'](i))f+=0x32;else h['includes'](i)&&(f+=0x19);}}if(a?.['default']){const j=e['default']['toLowerCase'](),k=a['default']['toLowerCase']();if(j===k)f+=0x5a;else{if(j['startsWith'](k))f+=0x2d;else j['includes'](k)&&(f+=0x16);}}return a?.['contents']&&a['contents']['length']>0x0&&a['contents']['forEach'](l=>{const m=l['toLowerCase']();e['contents']&&e['contents']['forEach'](n=>{const o=n['toLowerCase']();if(o===m)f+=0x14;else{if(o['startsWith'](m))f+=0xf;else o['includes'](m)&&(f+=0xa);}});}),(a?.['name']||a?.['default']||a?.['contents'])&&f===0x0&&(f=-0x1),{'info':g,'score':f};})['filter'](({score:d,info:e})=>{if(d<0x0)return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==undefined&&(!e['createdAt']||e['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==undefined&&(!e['createdAt']||e['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==undefined&&(!e['updatedAt']||e['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==undefined&&(!e['updatedAt']||e['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['sort']((d,e)=>{if(e['score']!==d['score'])return e['score']-d['score'];const f=d['info']['name']['length'],g=e['info']['name']['length'];if(f!==g)return f-g;return d['info']['name']['localeCompare'](e['info']['name']);})['map'](({info:d})=>d);}}
|
|
@@ -3,7 +3,7 @@ import type { BalanceType } from "../common.js";
|
|
|
3
3
|
import type { AccountOrMark_Address } from "../local/index.js";
|
|
4
4
|
export interface QueryReceived {
|
|
5
5
|
name_or_address: AccountOrMark_Address;
|
|
6
|
-
|
|
6
|
+
type?: string | "CoinWrapper" | null;
|
|
7
7
|
cursor?: string | null | undefined;
|
|
8
8
|
limit?: number | null | undefined;
|
|
9
9
|
no_cache?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getFullnodeUrl,WowClient}from'../../client/index.js';import{PackageAddress}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';import{Config}from'../local/config.js';import{GetAccountOrMark_Address}from'../local/index.js';import{extractCoinType}from'../util.js';import{query_objects}from'./object.js';export const query_received=async a=>{const b=await Config['Instance']()['network_get'](a['network']),c=new WowClient({'url':getFullnodeUrl(b)});let d;if(a['
|
|
1
|
+
import{getFullnodeUrl,WowClient}from'../../client/index.js';import{PackageAddress}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';import{Config}from'../local/config.js';import{GetAccountOrMark_Address}from'../local/index.js';import{extractCoinType}from'../util.js';import{query_objects}from'./object.js';export const query_received=async a=>{const b=await Config['Instance']()['network_get'](a['network']),c=new WowClient({'url':getFullnodeUrl(b)});let d;if(a['type']===undefined||a['type']===null){const g=await GetAccountOrMark_Address(a['name_or_address']);!g&&W_ERROR(WErrors['InvalidParam'],'query_received:\x20Object\x20'+a['name_or_address']+'\x20not\x20found.');const h=await c['getOwnedObjects']({'owner':g,'options':{'showContent':!![],'showType':!![]}});return h['data']['map'](i=>{return{'id':i?.['data']?.['objectId'],'type':i?.['data']?.['type'],'content_raw':i?.['data']?.['content']?.['fields']};});}if(a['type']==='CoinWrapper'){const i=await query_objects({'objects':[a['name_or_address']['name_or_address']],'no_cache':![],'network':a['network']});(!i?.['objects']||i['objects']['length']!==0x1)&&W_ERROR(WErrors['InvalidParam'],'query_received:\x20Object\x20'+a['name_or_address']+'\x20not\x20found.');d=extractCoinType(i['objects'][0x0]['type_raw']);!d&&W_ERROR(WErrors['InvalidParam'],'object\x20'+a['name_or_address']+'\x20not\x20support\x20token\x20type;\x20query\x20with\x20type=undefined\x20instead.');const j=await c['getOwnedObjects']({'owner':i['objects'][0x0]['object'],'filter':{'StructType':PackageAddress+'::payment::CoinWrapper<'+d+'>'},'options':{'showContent':!![],'showType':!![]}});let k=BigInt(0x0);const l=j['data']['map'](m=>{const n=m?.['data']?.['content']?.['fields'];return k+=BigInt(n?.['coin']?.['fields']?.['balance']),{'payment':n?.['payment'],'balance':n?.['coin']?.['fields']?.['balance'],'id':m?.['data']?.['objectId'],'type':n?.['coin']?.['type']};});return{'balance':k,'received':l,'token_type':d};}const e=await GetAccountOrMark_Address(a['name_or_address']);!e&&W_ERROR(WErrors['InvalidParam'],'query_received:\x20Object\x20'+a['name_or_address']+'\x20not\x20found.');const f=await c['getOwnedObjects']({'owner':e,'filter':{'StructType':a['type']},'options':{'showContent':!![],'showType':!![]}});return f['data']['map'](m=>{return{'id':m?.['data']?.['objectId'],'type':m?.['data']?.['type'],'content_raw':m?.['data']?.['content']?.['fields']};});};
|