forked from cerc-io/laconic-sdk
48 lines
879 B
TypeScript
48 lines
879 B
TypeScript
|
import assert from 'assert';
|
||
|
import axios from 'axios';
|
||
|
import { generateEndpointAccount, generateEndpointBroadcast, generatePostBodyBroadcast } from '@tharsis/provider';
|
||
|
|
||
|
/**
|
||
|
* Registry
|
||
|
*/
|
||
|
export class RegistryClient {
|
||
|
_endpoint: string
|
||
|
|
||
|
/**
|
||
|
* New Client.
|
||
|
* @param {string} endpoint
|
||
|
* @param {object} options
|
||
|
*/
|
||
|
constructor(endpoint: string) {
|
||
|
assert(endpoint);
|
||
|
|
||
|
this._endpoint = endpoint;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Fetch Account.
|
||
|
*/
|
||
|
async getAccount(address: string) {
|
||
|
assert(address);
|
||
|
|
||
|
let { data } = await axios.get(`${this._endpoint}${generateEndpointAccount(address)}`)
|
||
|
|
||
|
return data
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Submit transaction.
|
||
|
*/
|
||
|
async submit(tx: string) {
|
||
|
assert(tx);
|
||
|
|
||
|
// Broadcast transaction.
|
||
|
const { data } = await axios.post(
|
||
|
`${this._endpoint}${generateEndpointBroadcast()}`,
|
||
|
tx
|
||
|
)
|
||
|
|
||
|
return data;
|
||
|
}
|
||
|
}
|