wowok
Version:
Wowok Blockchain TypeScript API
1 lines • 2.42 kB
JavaScript
import{toTxObject,toTxAddress,MAX_NAME_LENGTH,isValidName,PackageAddress}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';export var TagName;(function(a){a['Like']='like',a['Dislike']='dislike',a['Launch']='launch',a['Order']='order',a['Payment']='payment',a['Progress']='progress';}(TagName||(TagName={})));export const toWTagData=(a,b=!![])=>{const c=[];return a['forEach'](d=>{d['tags']['forEach'](e=>{const g=c['find'](h=>h['tag']===e);g?!g['address']['find'](h=>h===d['address'])&&g['address']['push'](d['address']):c['push']({'tag':e,'address':[d['address']]});});}),b&&Object['keys'](TagName)['forEach'](d=>{!c['find'](e=>e['tag']===TagName[d])&&c['push']({'tag':TagName[d],'address':[]});}),c;};export const toWTags=a=>{const b=[];return a['address']['forEach'](c=>{const d=b['find'](e=>e['address']===c);d?!d['tags']['find'](e=>e===a['tag'])&&d['tags']['push'](a['tag']):b['push']({'address':c,'tags':[a['tag']]});}),b;};export function resourceFn(a){return PackageAddress+'::resource::'+a;}export const MAX_TAGS_COUNT=0x64;export function addObjectTags(a,b,c){c['tags']['length']>MAX_TAGS_COUNT&&W_ERROR(WErrors['ResourceTagCountExceeded'],'Tags\x20count\x20exceeds\x20maximum\x20limit\x20'+MAX_TAGS_COUNT);c['tags']['forEach'](f=>{!isValidName(f)&&W_ERROR(WErrors['IsValidName'],'Tag\x20name\x20exceeds\x20maximum\x20length\x20'+MAX_NAME_LENGTH);});c['nick']!=null&&typeof c['nick']==='string'&&(!isValidName(c['nick'])&&W_ERROR(WErrors['IsValidName'],'Nick\x20name\x20exceeds\x20maximum\x20length\x20'+MAX_NAME_LENGTH));const d=a['pure']['option']('string',c['nick']??null),e=a['pure']['vector']('string',c['tags']);a['moveCall']({'target':resourceFn('add_object_tags'),'arguments':[toTxObject(a,b),toTxAddress(a,c['address']),d,e]});}export function removeObjectTags(a,b,c){typeof c['nick']==='string'&&!isValidName(c['nick'])&&W_ERROR(WErrors['IsValidName'],'Nick\x20name\x20exceeds\x20maximum\x20length\x20'+MAX_NAME_LENGTH);const d=a['pure']['option']('string',c['nick']??null),e=a['pure']['vector']('string',c['tags']);a['moveCall']({'target':resourceFn('remove_object_tags'),'arguments':[toTxObject(a,b),toTxAddress(a,c['address']),d,e]});}export function removeObject(a,b,c){a['moveCall']({'target':resourceFn('remove_object'),'arguments':[toTxObject(a,b),toTxAddress(a,c)]});}export function create(a,b){a['moveCall']({'target':resourceFn('create'),'arguments':[toTxObject(a,b)]});}