Skip to content

Commit

Permalink
Merge pull request #8 from bugbytesinc/vnext-0.31.11
Browse files Browse the repository at this point in the history
vNext 0.31.11
  • Loading branch information
bugbytesinc authored Jan 11, 2023
2 parents c54ac7e + 522ab56 commit ff09ff0
Show file tree
Hide file tree
Showing 18 changed files with 6,950 additions and 3,195 deletions.
591 changes: 567 additions & 24 deletions package-lock.json

Large diffs are not rendered by default.

8 changes: 5 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
"scripts": {
"clean": "node script/clean.mjs",
"build:prepare": "node script/build-prepare.mjs",
"build:proto": "grpc_tools_node_protoc --proto_path=packages/hapi-proto/src/proto-src --ts_proto_opt=esModuleInterop=true --ts_proto_opt=useExactTypes=false --plugin=node_modules/ts-proto/protoc-gen-ts_proto.cmd --ts_proto_opt=oneof=unions --ts_proto_out=./packages/hapi-proto/src/proto/ ./packages/hapi-proto/src/proto-src/*.proto",
"build:openapi": "npx openapi-typescript reference/hedera-mirror/openapi.json --output packages/hapi-mirror/src/openapi.ts",
"build:proto": "grpc_tools_node_protoc --proto_path=packages/hapi-proto/src/proto-src --ts_proto_opt=esModuleInterop=true --ts_proto_opt=useExactTypes=false --plugin=node_modules/ts-proto/protoc-gen-ts_proto.cmd --ts_proto_opt=oneof=unions --ts_proto_out=./packages/hapi-proto/src/proto/ ./packages/hapi-proto/src/proto-src/*.proto",
"build:index": "node script/build-index.mjs",
"build:tsc": "tsc --build ./tsconfig.project.json",
"build:package": "node script/build-package.mjs",
"build": "npm run build:prepare && npm run build:proto && npm run build:index && npm run build:tsc && npm run build:package",
"build": "npm run build:prepare && npm run build:openapi && npm run build:proto && npm run build:index && npm run build:tsc && npm run build:package",
"build:tgz": "node script/build-tgz.mjs",
"test": "echo \"Error: no test specified\" && exit 1"
},
Expand All @@ -22,6 +23,7 @@
"grpc_tools_node_protoc_ts": "5.3.2",
"grpc-tools": "1.11.3",
"long": "^5.2.0",
"openapi-typescript": "^6.1.0",
"protobufjs": "^7.1.2",
"rxjs": "^7.5.7",
"simple-crypto-js": "^3.0.1",
Expand All @@ -33,4 +35,4 @@
"workspaces": [
"packages/*"
]
}
}
6 changes: 3 additions & 3 deletions packages/hapi-connect/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bugbytes/hapi-connect",
"version": "0.31.10",
"version": "0.31.11",
"description": "Lightweight HashConnect Browser Side Client Library",
"main": "./lib/index.js",
"exports": "./lib/index.js",
Expand All @@ -25,8 +25,8 @@
},
"homepage": "https://github.com/bugbytesinc/hapi-proto#readme",
"peerDependencies": {
"@bugbytes/hapi-proto": "0.31.10",
"@bugbytes/hapi-util": "0.31.10",
"@bugbytes/hapi-proto": "0.31.11",
"@bugbytes/hapi-util": "0.31.11",
"long": ">=5.2.0",
"protobufjs": ">=7.1.2",
"simple-crypto-js": "^3.0.1",
Expand Down
6 changes: 3 additions & 3 deletions packages/hapi-mempool/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bugbytes/hapi-mempool",
"version": "0.31.10",
"version": "0.31.11",
"description": "Hedera Mempool Client",
"main": "./lib/index.js",
"exports": "./lib/index.js",
Expand All @@ -24,8 +24,8 @@
},
"homepage": "https://github.com/bugbytesinc/hapi-proto#readme",
"peerDependencies": {
"@bugbytes/hapi-proto": "0.31.10",
"@bugbytes/hapi-util": "0.31.10",
"@bugbytes/hapi-proto": "0.31.11",
"@bugbytes/hapi-util": "0.31.11",
"long": ">=5.2.0",
"protobufjs": ">=7.1.2"
}
Expand Down
26 changes: 24 additions & 2 deletions packages/hapi-mempool/src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ import {
as_transaction_id_keystring,
type TransactionIdKeyString,
} from "@bugbytes/hapi-util";
import { TransactionReceipt, type TransactionID } from "@bugbytes/hapi-proto";
import { SignedTransaction, TransactionReceipt, type TransactionID } from "@bugbytes/hapi-proto";
import type { TransactionInfo } from "./transaction-info";
import { MempoolError } from "./mempool-error";
import type { MempoolInfo } from "./mempool-info";
import { TransactionSummary } from "./transaction-summary";

export class MempoolRestClient {
private readonly mempoolHostname: string;
Expand All @@ -19,7 +20,7 @@ export class MempoolRestClient {
!mempoolHostname.startsWith("http://")
) {
throw new Error(
"Invalid Mmepool Node URL, must start with https:// or http://"
"Invalid Memepool Node URL, must start with https:// or http://"
);
}
this.mempoolHostname = mempoolHostname.endsWith("/")
Expand All @@ -33,6 +34,27 @@ export class MempoolRestClient {
}
return (await response.json()) as MempoolInfo;
}
async getTransactions(): Promise<TransactionSummary[]> {
const response = await fetch(`${this.mempoolHostname}/Transactions`);
if (!response.ok) {
throw await MempoolError.create(response);
}
return (await response.json()) as TransactionSummary[];
}
async getSignedTransaction(
transactionId: TransactionID | TransactionIdKeyString
): Promise<SignedTransaction> {
const response = await fetch(
`${this.mempoolHostname}/Transactions/${as_transaction_id_keystring(
transactionId
)}/protobuf`
);
if (!response.ok) {
throw await MempoolError.create(response);
}
const data = await response.arrayBuffer();
return SignedTransaction.decode(new Uint8Array(data));
}
async getTransactionStatus(
transactionId: TransactionID | TransactionIdKeyString
): Promise<TransactionInfo> {
Expand Down
3 changes: 3 additions & 0 deletions packages/hapi-mempool/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
export * from "./mempool-transaction-status";
export * from "./channel-info";
export * from "./mempool-info";
export * from "./transaction-summary";
export * from "./transaction-info";
export * from "./mempool-error";
export * from "./client";
5 changes: 5 additions & 0 deletions packages/hapi-mempool/src/mempool-transaction-status.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export enum MempoolTransactionStatus {
Queued = 100,
Submitting = 200,
Completed = 400
}
6 changes: 4 additions & 2 deletions packages/hapi-mempool/src/transaction-info.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
import { ResponseCodeEnum } from "@bugbytes/hapi-proto";
import type {
EntityIdKeyString,
TimestampKeyString,
TransactionIdKeyString,
} from "@bugbytes/hapi-util";
import { MempoolTransactionStatus } from "./mempool-transaction-status";

export interface TransactionInfo {
transaction_id: TransactionIdKeyString;
node: EntityIdKeyString;
duration: number;
type: string;
status: string;
precheck_code: number | null;
status: MempoolTransactionStatus;
precheck_code: ResponseCodeEnum | -1 | -2;
signed_by: string[];
history: [
{
Expand Down
15 changes: 15 additions & 0 deletions packages/hapi-mempool/src/transaction-summary.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { ResponseCodeEnum } from "@bugbytes/hapi-proto";
import type {
EntityIdKeyString,
TransactionIdKeyString,
} from "@bugbytes/hapi-util";
import { MempoolTransactionStatus } from "./mempool-transaction-status";

export interface TransactionSummary {
transaction_id: TransactionIdKeyString;
node: EntityIdKeyString;
duration: number;
type: string;
status: MempoolTransactionStatus;
precheck_code: ResponseCodeEnum | -1 | -2;
}
1 change: 1 addition & 0 deletions packages/hapi-mirror/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
lib
src/openapi.ts
tsconfig.tsbuildinfo
6 changes: 3 additions & 3 deletions packages/hapi-mirror/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bugbytes/hapi-mirror",
"version": "0.31.10",
"version": "0.31.11",
"description": "Hedera Mirror Node Client",
"main": "./lib/index.js",
"exports": "./lib/index.js",
Expand All @@ -24,8 +24,8 @@
},
"homepage": "https://github.com/bugbytesinc/hapi-proto#readme",
"peerDependencies": {
"@bugbytes/hapi-proto": "0.31.10",
"@bugbytes/hapi-util": "0.31.10",
"@bugbytes/hapi-proto": "0.31.11",
"@bugbytes/hapi-util": "0.31.11",
"long": ">=5.2.0",
"protobufjs": ">=7.1.2"
}
Expand Down
7 changes: 4 additions & 3 deletions packages/hapi-mirror/src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ import type { AccountID, ContractID, Timestamp, TokenID, TopicID, TransactionID
import { accountID_to_keyString, contractID_to_keyString, tokenID_to_keyString, keyString_to_transactionID, type EntityIdKeyString, type TransactionIdKeyString, transactionID_to_mirrorKeyString, topicID_to_keyString, TimestampKeyString, timestamp_to_keyString } from '@bugbytes/hapi-util';
import { MirrorError } from './mirror-error';
import type { components } from './openapi';
import { AccountInfo, ContractInfo, ContractResult, MessageInfo, NftIterator, NodeInfoIterator, TokenBalanceInfo, TokenInfo, TokenRelationshipIterator, TransactionInfo } from './types';
import { AccountInfo, ContractInfo, ContractResult, MessageInfo, NftIterator, NodeInfoIterator, TokenBalanceInfo, TokenInfo, TokenRelationshipIterator, TransactionDetail, TransactionInfo } from './types';

// Types Only Seen Internally to this Module
type NodeInfoListResponse = components["schemas"]["NetworkNodesResponse"];
type MessageInfoListResponse = components["schemas"]["TopicMessagesResponse"];
type TokenBalanceListResponse = components["schemas"]["TokenBalancesResponse"];
type TransactionsListResponse = components["schemas"]["TransactionsResponse"];
type TransactionByIdResponse = components["schemas"]["TransactionByIdResponse"];
type TokenRelationshipListResponse = components["schemas"]["TokenRelationshipResponse"];
type NftListResponse = components["schemas"]["Nfts"];

Expand Down Expand Up @@ -38,14 +39,14 @@ export class MirrorRestClient {
}
}

async getTransaction(transactionId: TransactionIdKeyString | TransactionID ): Promise<TransactionInfo> {
async getTransaction(transactionId: TransactionIdKeyString | TransactionID ): Promise<TransactionDetail> {
const txKey = (typeof transactionId === 'string') ? keyString_to_transactionID(transactionId) : transactionId;
const path = `/api/v1/transactions/${transactionID_to_mirrorKeyString(txKey)}`;
const response = await fetch(this.mirrorHostname + path);
if (!response.ok) {
throw new MirrorError(response.statusText, response.status);
}
const payload = await response.json() as TransactionsListResponse;
const payload = await response.json() as TransactionByIdResponse;
if (payload.transactions && payload.transactions.length > 0) {
return payload.transactions[0];
}
Expand Down
Loading

0 comments on commit ff09ff0

Please sign in to comment.