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  }