github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/js/src/namereg.ts (about) 1 import { TxExecution } from '../proto/exec_pb'; 2 import { Entry } from '../proto/names_pb'; 3 import { NameTx, TxInput } from '../proto/payload_pb'; 4 import { IQueryClient } from '../proto/rpcquery_grpc_pb'; 5 import { GetNameParam } from '../proto/rpcquery_pb'; 6 import { ITransactClient } from '../proto/rpctransact_grpc_pb'; 7 8 export class Namereg { 9 constructor(private transact: ITransactClient, private query: IQueryClient, private account: string) {} 10 11 set(name: string, data: string, lease = 50000, fee = 5000): Promise<TxExecution> { 12 const input = new TxInput(); 13 input.setAddress(Buffer.from(this.account, 'hex')); 14 input.setAmount(lease); 15 16 const payload = new NameTx(); 17 payload.setInput(input); 18 payload.setName(name); 19 payload.setData(data); 20 payload.setFee(fee); 21 22 return new Promise((resolve, reject) => { 23 this.transact.nameTxSync(payload, (err, txe) => { 24 if (err) { 25 reject(err); 26 } 27 resolve(txe); 28 }); 29 }); 30 } 31 32 get(name: string): Promise<Entry> { 33 const payload = new GetNameParam(); 34 payload.setName(name); 35 return new Promise((resolve, reject) => { 36 this.query.getName(payload, (err, entry) => { 37 if (err) { 38 reject(err); 39 } 40 resolve(entry); 41 }); 42 }); 43 } 44 }