forked from cerc-io/laconic-sdk
Compare commits
25
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ebe628d082 | ||
|
|
b867ea61e8 | ||
|
|
770bca6cc3 | ||
|
|
b73bb3e216 | ||
|
|
f2c7468ba8 | ||
|
|
94920171ae | ||
|
|
2a9223fdd3 | ||
|
|
7ecd3eefa8 | ||
|
|
ee0443b5fa | ||
|
|
88ffbbc2b2 | ||
|
|
051a942d03 | ||
|
|
94becf4a5b | ||
|
|
48594a48e6 | ||
|
|
463220ff58 | ||
|
|
3a890ab46c | ||
|
|
b9cb479381 | ||
|
|
fa0a4150bd | ||
|
|
733e4a6cc6 | ||
|
|
8e852ad2ce | ||
|
|
62d47f0c4b | ||
|
|
faf7c18e5c | ||
|
|
fb3edfabd3 | ||
|
|
ff3d70cc0d | ||
|
|
b1d3c83d32 | ||
|
|
b07df23804 |
@@ -1 +1,2 @@
|
||||
PRIVATE_KEY=75f719e613d05efab06a3f1dde5250b497723b13d4afa4f8ed80145764e40cf7
|
||||
COSMOS_CHAIN_ID=laconic_9000-1
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
name: Publish npm package to gitea
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
jobs:
|
||||
npm_publish:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [ 16.x ]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- run: yarn
|
||||
- name: Run yarn build
|
||||
run: |
|
||||
yarn build
|
||||
- name: Configure git.vdb.to npm registry
|
||||
run: |
|
||||
npm config set registry https://git.vdb.to/api/packages/cerc-io/npm/
|
||||
- name: Authenticate to git.vdb.to registry
|
||||
run: |
|
||||
npm config set -- '//git.vdb.to/api/packages/cerc-io/npm/:_authToken' "${{ secrets.GITEA_PUBLISH_TOKEN }}"
|
||||
- name: npm publish
|
||||
run: |
|
||||
npm publish
|
||||
@@ -1,4 +1,4 @@
|
||||
# chiba-clonk-client
|
||||
# laconic-sdk
|
||||
|
||||
## Tests
|
||||
|
||||
@@ -12,19 +12,19 @@ Follow these steps to run the tests:
|
||||
|
||||
- Copy [.env.example](./.env.example) file and create a `.env` file.
|
||||
|
||||
- Clone the [chiba-clonk repo](https://github.com/vulcanize/chiba-clonk) and change to repo directory.
|
||||
- Clone the [laconicd repo](https://github.com/cerc-io/laconicd) and change to repo directory.
|
||||
|
||||
- Run the chain using `./init.sh`.
|
||||
|
||||
- Export the private key using:
|
||||
|
||||
```bash
|
||||
chibaclonkd keys export mykey --unarmored-hex --unsafe
|
||||
laconicd keys export mykey --unarmored-hex --unsafe
|
||||
```
|
||||
|
||||
- Copy the private key and assign it to variable `PRIVATE_KEY` in the `.env` file.
|
||||
|
||||
- Run the tests in chiba-clonk-client repo:
|
||||
- Run the tests in laconic-sdk repo:
|
||||
|
||||
```bash
|
||||
yarn test
|
||||
@@ -32,7 +32,7 @@ Follow these steps to run the tests:
|
||||
|
||||
- Run the tests with auctions enabled
|
||||
|
||||
- In chiba-clonk repo run:
|
||||
- In laconicd repo run:
|
||||
|
||||
```bash
|
||||
TEST_AUCTION_ENABLED=true ./init.sh
|
||||
@@ -41,7 +41,7 @@ Follow these steps to run the tests:
|
||||
- Export the private key and change it in `.env` file again using:
|
||||
|
||||
```bash
|
||||
chibaclonkd keys export mykey --unarmored-hex --unsafe
|
||||
laconicd keys export mykey --unarmored-hex --unsafe
|
||||
```
|
||||
|
||||
- Run tests:
|
||||
@@ -52,7 +52,7 @@ Follow these steps to run the tests:
|
||||
|
||||
- Run the tests for record and authority expiry
|
||||
|
||||
- In chiba-clonk repo run:
|
||||
- In laconicd repo run:
|
||||
|
||||
```bash
|
||||
TEST_NAMESERVICE_EXPIRY=true ./init.sh
|
||||
@@ -61,7 +61,7 @@ Follow these steps to run the tests:
|
||||
- Export the private key and change it in `.env` file again using:
|
||||
|
||||
```bash
|
||||
chibaclonkd keys export mykey --unarmored-hex --unsafe
|
||||
laconicd keys export mykey --unarmored-hex --unsafe
|
||||
```
|
||||
|
||||
- Run tests:
|
||||
@@ -81,7 +81,7 @@ Follow these steps to run the tests:
|
||||
failed to execute message; message index: 0: Invalid signature.: unauthorized
|
||||
```
|
||||
|
||||
- When sending `setRecord` message, an integer value passed in watcher attributes is parsed as float type in chiba-clonk while [unmarshalling json](https://pkg.go.dev/encoding/json#Unmarshal).
|
||||
- When sending `setRecord` message, an integer value passed in watcher attributes is parsed as float type in laconicd while [unmarshalling json](https://pkg.go.dev/encoding/json#Unmarshal).
|
||||
|
||||
- `setRecord` message throws error when fileds in [Record](./src/types.ts) message are not assigned.
|
||||
```
|
||||
|
||||
+14
-8
@@ -1,20 +1,20 @@
|
||||
{
|
||||
"name": "chiba-clonk-client",
|
||||
"version": "0.1.0",
|
||||
"name": "@cerc-io/laconic-sdk",
|
||||
"version": "0.1.4",
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"repository": "git@github.com:vulcanize/chiba-clonk-client.git",
|
||||
"repository": "git@github.com:cerc-io/laconic-sdk.git",
|
||||
"author": "",
|
||||
"license": "UNLICENSED",
|
||||
"devDependencies": {
|
||||
"@types/is-url": "^1.2.30",
|
||||
"@types/jest": "^27.4.1",
|
||||
"@types/lodash": "^4.14.181",
|
||||
"@types/semver": "^7.3.9",
|
||||
"@types/tiny-secp256k1": "1.0.0",
|
||||
"dotenv": "^16.0.0",
|
||||
"protoc-gen-ts": "^0.8.5",
|
||||
"google-protobuf": "^3.21.0",
|
||||
"jest": "29.0.0",
|
||||
"protoc-gen-ts": "^0.8.5",
|
||||
"ts-jest": "^29.0.2",
|
||||
"typescript": "^4.6.2"
|
||||
},
|
||||
@@ -25,21 +25,27 @@
|
||||
"@ipld/dag-cbor": "^7.0.1",
|
||||
"@ipld/dag-json": "^8.0.9",
|
||||
"@metamask/eth-sig-util": "^4.0.0",
|
||||
"@tharsis/address-converter": "^0.1.7",
|
||||
"@tharsis/eip712": "^0.2.1",
|
||||
"@tharsis/proto": "^0.1.16",
|
||||
"@tharsis/provider": "^0.2.4",
|
||||
"@tharsis/transactions": "^0.2.2",
|
||||
"axios": "^0.26.1",
|
||||
"bip32": "^3.0.1",
|
||||
"bip32": "3.0.1",
|
||||
"bip39": "^3.0.4",
|
||||
"canonical-json": "^0.0.4",
|
||||
"ethers": "^5.6.2",
|
||||
"evmosjs": "^0.2.5",
|
||||
"graphql.js": "^0.6.8",
|
||||
"is-url": "^1.2.4",
|
||||
"js-sha256": "^0.9.0",
|
||||
"js-yaml": "^3.14.1",
|
||||
"jsonschema": "^1.4.0",
|
||||
"lodash": "^4.17.21",
|
||||
"multiformats": "^9.5.4",
|
||||
"node-yaml": "^4.0.1",
|
||||
"secp256k1": "^4.0.1",
|
||||
"semver": "^7.3.5",
|
||||
"tiny-secp256k1": "^2.2.1"
|
||||
"tiny-secp256k1": "^1.1.6"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "jest --runInBand --verbose",
|
||||
|
||||
+3
-3
@@ -16,7 +16,7 @@ const auctionTests = (numBidders = 3) => {
|
||||
beforeAll(async () => {
|
||||
console.log('Running auction tests with num bidders', numBidders);
|
||||
|
||||
registry = new Registry(restEndpoint, gqlEndpoint, chainId);
|
||||
registry = new Registry(gqlEndpoint, restEndpoint, chainId);
|
||||
});
|
||||
|
||||
test('Setup bidder accounts', async () => {
|
||||
@@ -30,7 +30,7 @@ const auctionTests = (numBidders = 3) => {
|
||||
});
|
||||
|
||||
test('Reserve authority.', async () => {
|
||||
authorityName = `chiba-clonk-${Date.now()}`;
|
||||
authorityName = `laconic-${Date.now()}`;
|
||||
await registry.reserveAuthority({ name: authorityName }, accounts[0].privateKey, fee);
|
||||
});
|
||||
|
||||
@@ -115,7 +115,7 @@ if (!process.env.TEST_AUCTIONS_ENABLED) {
|
||||
test('skipping auction tests', () => {});
|
||||
} else {
|
||||
/**
|
||||
Running these tests requires name auctions enabled. In chiba-clonk repo run:
|
||||
Running these tests requires name auctions enabled. In laconicd repo run:
|
||||
|
||||
TEST_AUCTION_ENABLED=true ./init.sh
|
||||
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ const bondTests = () => {
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
registry = new Registry(restEndpoint, gqlEndpoint, chainId);
|
||||
registry = new Registry(gqlEndpoint, restEndpoint, chainId);
|
||||
});
|
||||
|
||||
test('Create bond.', async () => {
|
||||
|
||||
+3
-3
@@ -10,7 +10,7 @@ const registryTests = () => {
|
||||
let registry: Registry;
|
||||
|
||||
beforeAll(async () => {
|
||||
registry = new Registry(restEndpoint, gqlEndpoint, chainId);
|
||||
registry = new Registry(gqlEndpoint, restEndpoint, chainId);
|
||||
|
||||
});
|
||||
|
||||
@@ -32,14 +32,14 @@ const registryTests = () => {
|
||||
test('Get account balance.', async() => {
|
||||
const mnenonic1 = Account.generateMnemonic();
|
||||
const otherAccount = await Account.generateFromMnemonic(mnenonic1);
|
||||
await registry.sendCoins({ denom: 'aphoton', amount: '10000000000000000000000000', destinationAddress: otherAccount.formattedCosmosAddress }, privateKey, fee);
|
||||
await registry.sendCoins({ denom: 'aphoton', amount: '100000000', destinationAddress: otherAccount.formattedCosmosAddress }, privateKey, fee);
|
||||
|
||||
const [accountObj] = await registry.getAccounts([otherAccount.formattedCosmosAddress]);
|
||||
expect(accountObj).toBeDefined();
|
||||
expect(accountObj.address).toBe(otherAccount.formattedCosmosAddress);
|
||||
const [{ type, quantity }] = accountObj.balance
|
||||
expect(type).toBe('aphoton');
|
||||
expect(quantity).toBe('10000000000000000000000000');
|
||||
expect(quantity).toBe('100000000');
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
+5
-11
@@ -1,4 +1,3 @@
|
||||
import isUrl from 'is-url';
|
||||
import { sha256 } from 'js-sha256';
|
||||
import { generatePostBodyBroadcast, BroadcastMode } from '@tharsis/provider';
|
||||
import {
|
||||
@@ -53,7 +52,9 @@ import {
|
||||
MessageMsgRevealBid
|
||||
} from './messages/auction';
|
||||
|
||||
const DEFAULT_WRITE_ERROR = 'Unable to write to chiba-clonk.';
|
||||
export const DEFAULT_CHAIN_ID = 'laconic_9000-1';
|
||||
|
||||
const DEFAULT_WRITE_ERROR = 'Unable to write to laconicd.';
|
||||
|
||||
// Parse Tx response from cosmos-sdk.
|
||||
export const parseTxResponse = (result: any, parseResponse?: (data: string) => any) => {
|
||||
@@ -119,21 +120,14 @@ export class Registry {
|
||||
return errorMessage || DEFAULT_WRITE_ERROR;
|
||||
}
|
||||
|
||||
constructor(restUrl: string, gqlUrl: string, chainId: string) {
|
||||
if (!isUrl(restUrl)) {
|
||||
throw new Error('Path to a REST endpoint should be provided.');
|
||||
}
|
||||
|
||||
if (!isUrl(gqlUrl)) {
|
||||
throw new Error('Path to a GQL endpoint should be provided.');
|
||||
}
|
||||
constructor(gqlUrl: string, restUrl: string = "", chainId: string = DEFAULT_CHAIN_ID) {
|
||||
|
||||
this._endpoints = {
|
||||
rest: restUrl,
|
||||
gql: gqlUrl
|
||||
};
|
||||
|
||||
this._client = new RegistryClient(restUrl, gqlUrl);
|
||||
this._client = new RegistryClient(gqlUrl, restUrl);
|
||||
this._chainID = chainId;
|
||||
|
||||
this._chain = {
|
||||
|
||||
@@ -20,7 +20,7 @@ const nameserviceExpiryTests = () => {
|
||||
let recordExpiryTime: Date;
|
||||
|
||||
beforeAll(async () => {
|
||||
registry = new Registry(restEndpoint, gqlEndpoint, chainId);
|
||||
registry = new Registry(gqlEndpoint, restEndpoint, chainId);
|
||||
|
||||
// Create bond.
|
||||
bondId = await registry.getNextBondId(privateKey);
|
||||
@@ -50,7 +50,7 @@ const nameserviceExpiryTests = () => {
|
||||
})
|
||||
|
||||
test('Reserve authority and set bond', async () => {
|
||||
authorityName = `chiba-clonk-${Date.now()}`;
|
||||
authorityName = `laconic-${Date.now()}`;
|
||||
await registry.reserveAuthority({ name: authorityName }, privateKey, fee);
|
||||
await registry.setAuthorityBond({ name: authorityName, bondId }, privateKey, fee);
|
||||
const [authority] = await registry.lookupAuthorities([authorityName]);
|
||||
@@ -102,7 +102,7 @@ if (!process.env.TEST_NAMESERVICE_EXPIRY) {
|
||||
test('skipping nameservice expiry tests', () => {});
|
||||
} else {
|
||||
/**
|
||||
Running these tests requires timers to be set. In chiba-clonk repo run:
|
||||
Running these tests requires timers to be set. In laconicd repo run:
|
||||
|
||||
TEST_NAMESERVICE_EXPIRY=true ./init.sh
|
||||
|
||||
|
||||
+2
-2
@@ -25,7 +25,7 @@ const namingTests = () => {
|
||||
let crn: string;
|
||||
|
||||
beforeAll(async () => {
|
||||
registry = new Registry(restEndpoint, gqlEndpoint, chainId);
|
||||
registry = new Registry(gqlEndpoint, restEndpoint, chainId);
|
||||
|
||||
// Create bond.
|
||||
bondId = await registry.getNextBondId(privateKey);
|
||||
@@ -47,7 +47,7 @@ const namingTests = () => {
|
||||
});
|
||||
|
||||
test('Reserve authority.', async () => {
|
||||
authorityName = `chiba-clonk-${Date.now()}`;
|
||||
authorityName = `laconic-${Date.now()}`;
|
||||
await registry.reserveAuthority({ name: authorityName }, privateKey, fee);
|
||||
});
|
||||
|
||||
|
||||
@@ -122,15 +122,14 @@ export class RegistryClient {
|
||||
/**
|
||||
* New Client.
|
||||
*/
|
||||
constructor(restEndpoint: string, gqlEndpoint: string) {
|
||||
assert(restEndpoint);
|
||||
|
||||
this._restEndpoint = restEndpoint;
|
||||
|
||||
constructor(gqlEndpoint: string, restEndpoint: string) {
|
||||
assert(gqlEndpoint);
|
||||
this._graph = graphqlClient(gqlEndpoint, {
|
||||
method: 'POST',
|
||||
asJSON: true
|
||||
});
|
||||
|
||||
this._restEndpoint = restEndpoint;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ describe('Querying', () => {
|
||||
let bondId: string;
|
||||
|
||||
beforeAll(async () => {
|
||||
registry = new Registry(restEndpoint, gqlEndpoint, chainId);
|
||||
registry = new Registry(gqlEndpoint, restEndpoint, chainId);
|
||||
bondId = await provisionBondId(registry, privateKey, fee);
|
||||
|
||||
const publishNewWatcherVersion = async () => {
|
||||
|
||||
@@ -3,7 +3,7 @@ import yaml from 'node-yaml';
|
||||
import semver from 'semver';
|
||||
import { Fee } from '@tharsis/transactions';
|
||||
|
||||
import { Registry } from '../index';
|
||||
import { DEFAULT_CHAIN_ID, Registry } from '../index';
|
||||
|
||||
export const ensureUpdatedConfig = async (path: string) => {
|
||||
const conf = await yaml.read(path);
|
||||
@@ -37,14 +37,14 @@ export const getConfig = () => {
|
||||
assert(process.env.PRIVATE_KEY);
|
||||
|
||||
return {
|
||||
chainId: process.env.COSMOS_CHAIN_ID || 'chibaclonk_9000-1',
|
||||
chainId: process.env.COSMOS_CHAIN_ID || DEFAULT_CHAIN_ID,
|
||||
privateKey: process.env.PRIVATE_KEY,
|
||||
restEndpoint: process.env.CHIBA_CLONK_REST_ENDPOINT || 'http://localhost:1317',
|
||||
gqlEndpoint: process.env.CHIBA_CLONK_GQL_ENDPOINT || 'http://localhost:9473/api',
|
||||
restEndpoint: process.env.LACONICD_REST_ENDPOINT || 'http://localhost:1317',
|
||||
gqlEndpoint: process.env.LACONICD_GQL_ENDPOINT || 'http://localhost:9473/api',
|
||||
fee: {
|
||||
amount: '20',
|
||||
amount: '30',
|
||||
denom: 'aphoton',
|
||||
gas: '200000',
|
||||
gas: '300000',
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ const utilTests = () => {
|
||||
let watcherId: string;
|
||||
|
||||
beforeAll(async () => {
|
||||
registry = new Registry(restEndpoint, gqlEndpoint, chainId);
|
||||
registry = new Registry(gqlEndpoint, restEndpoint, chainId);
|
||||
|
||||
// Create bond.
|
||||
bondId = await registry.getNextBondId(privateKey);
|
||||
|
||||
Reference in New Issue
Block a user