wowok
Version:
Wowok Blockchain TypeScript API
1 lines • 4.57 kB
JavaScript
import{isValidWowAddress}from'../../utils/wow-types.js';import{toTxObject,toTxAddress,toTxString,isValidDescription,MAX_DESCRIPTION_LENGTH,isValidName,PackageAddress,MAX_NAME_LENGTH,parseValueType}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';import{validObjects,valueToBcsBytes}from'../util.js';export const MAX_ADDRESS_COUNT=0x1450;export const MAX_RECORD_COUNT=0x3e8;export const MAX_RECORD_LENGTH=0xfa0;export function registrarFn(a){return PackageAddress+'::registrar::'+a;}export function register(a,b){return b=b&&isValidWowAddress(b)?b:undefined,a['moveCall']({'target':registrarFn('entity_register'),'arguments':[a['object']['mutEntity'],a['pure']['option']('address',b??null),a['object']['clock']]});}export function register_with_resource_forced(a,b){return b=b&&isValidWowAddress(b)?b:null,a['moveCall']({'target':registrarFn('entity_register_with_resource_forced'),'arguments':[a['object']['mutEntity'],a['pure']['option']('address',b??null),a['object']['clock']]});}export function cancel(a){a['moveCall']({'target':registrarFn('entity_cancel'),'arguments':[a['object']['mutEntity']]});}export function resource_destroy(a,b){validObjects([b]),a['moveCall']({'target':registrarFn('entity_resource_destroy'),'arguments':[a['object']['mutEntity'],toTxObject(a,b)]});}export function resource_use(a,b,c){validObjects([b]),c=c&&isValidWowAddress(c)?c:null,a['moveCall']({'target':registrarFn('entity_resource_use'),'arguments':[a['object']['mutEntity'],toTxObject(a,b),a['pure']['option']('address',c??null),a['object']['clock']]});}export function resource_transfer(a,b,c){validObjects([b,c]),a['moveCall']({'target':registrarFn('entity_resource_transfer'),'arguments':[a['object']['mutEntity'],toTxObject(a,b),toTxAddress(a,c)]});}export function like(a,b,c,d){return validObjects([b,c]),d=d&&isValidWowAddress(d)?d:undefined,a['moveCall']({'target':registrarFn('like'),'arguments':[a['object']['mutRegistrar'],a['object']['mutEntity'],toTxObject(a,b),toTxAddress(a,c),a['pure']['option']('address',d??null),a['object']['clock']]});}export function dislike(a,b,c,d){return validObjects([b,c]),d=d&&isValidWowAddress(d)?d:undefined,a['moveCall']({'target':registrarFn('dislike'),'arguments':[a['object']['mutRegistrar'],a['object']['mutEntity'],toTxObject(a,b),toTxAddress(a,c),a['pure']['option']('address',d??null),a['object']['clock']]});}export async function record(a,b){typeof b['name']==='string'&&!isValidName(b['name'])&&W_ERROR(WErrors['IsValidName'],'name\x20'+b['name']+'\x20is\x20exceeded\x20max\x20length\x20'+MAX_NAME_LENGTH);const c=parseValueType(b['value_type']),d=await valueToBcsBytes(c,b['value']);return d['length']>MAX_RECORD_LENGTH&&W_ERROR(WErrors['InvalidParam'],'value_bytes\x20length\x20'+d['length']+'\x20is\x20greater\x20than\x20max\x20'+MAX_RECORD_LENGTH),a['moveCall']({'target':registrarFn('record'),'arguments':[toTxString(a,b['name']),a['pure']['vector']('u8',Array['from'](d))]});}export async function description_set(a,b,c){!isValidDescription(b)&&W_ERROR(WErrors['InvalidParam'],'description\x20length\x20'+b['length']+'\x20is\x20greater\x20than\x20max\x20'+MAX_DESCRIPTION_LENGTH),c=c&&isValidWowAddress(c)?c:null,a['moveCall']({'target':registrarFn('entity_description_set'),'arguments':[a['object']['mutEntity'],a['pure']['string'](b),a['pure']['option']('address',c??null),a['object']['clock']]});}export async function info_add(a,b,c,d){d=d&&isValidWowAddress(d)?d:null;const e=b['map'](g=>record(a,g)),f=await Promise['all'](e);f['length']>MAX_RECORD_COUNT&&W_ERROR(WErrors['InvalidParam'],'records\x20count\x20'+f['length']+'\x20is\x20greater\x20than\x20max\x20'+MAX_RECORD_COUNT),c&&!isValidDescription(c)&&W_ERROR(WErrors['InvalidParam'],'description\x20length\x20'+c['length']+'\x20is\x20greater\x20than\x20max\x20'+MAX_DESCRIPTION_LENGTH),a['moveCall']({'target':registrarFn('entity_info_add'),'arguments':[a['object']['mutEntity'],a['pure']['option']('string',c??null),a['makeMoveVec']({'elements':f,'type':PackageAddress+'::registrar::Record'}),a['pure']['option']('address',d??null),a['object']['clock']]});}export function info_remove(a,b){if(b['length']===0x0)return;b['length']>MAX_RECORD_COUNT&&W_ERROR(WErrors['InvalidParam'],'recordNames\x20count\x20'+b['length']+'\x20is\x20greater\x20than\x20max\x20'+MAX_RECORD_COUNT),a['moveCall']({'target':registrarFn('entity_info_remove'),'arguments':[a['object']['mutEntity'],a['pure']['vector']('string',b)]});}export function info_clear(a){a['moveCall']({'target':registrarFn('entity_info_clear'),'arguments':[a['object']['mutEntity']]});}