@upcoming/multichain-library 0.7.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -20,11 +20,16 @@ const library = new MultichainLibrary(settings)
20
20
 
21
21
  `settings` is optional, supporting:
22
22
 
23
- - `gnosisJsonRpc`
24
- - `fetchTimeoutMillis`
23
+ - `gnosisJsonRpc`: `string[]`
24
+ - `fetchTimeoutMillis`: `number`
25
25
 
26
26
  # Functions
27
27
 
28
+ ## Transaction helpers
29
+
30
+ - `getGnosisTransaction(txHash: string): Promise<GnosisTransaction>`
31
+ - `getGnosisTransactionReceipt(txHash: string): Promise<GnosisTransactionReceipt>`
32
+
28
33
  ## Nonce helpers
29
34
 
30
35
  - `getGnosisTransactionCount(address: string): Promise<number>`
@@ -44,6 +49,7 @@ const library = new MultichainLibrary(settings)
44
49
  - `waitForGnosisBzzBalanceToIncrease(address: string, initialBalance: bigint): Promise<void>`
45
50
  - `waitForGnosisNativeBalanceToDecrease(address: string, initialBalance: bigint): Promise<void>`
46
51
  - `waitForGnosisNativeBalanceToIncrease(address: string, initialBalance: bigint): Promise<void>`
52
+ - `waitForGnosisTransactionReceipt(txHash: string): Promise<void>`
47
53
 
48
54
  ## SushiSwap helpers
49
55
 
@@ -56,15 +62,18 @@ const library = new MultichainLibrary(settings)
56
62
  - `transferGnosisBzz(options: GnosisBzzTransferOptions): Promise<string>`
57
63
  - `transferGnosisNative(options: GnosisNativeTransferOptions): Promise<string>`
58
64
 
59
- In both cases, `options` is:
65
+ In both cases, `options` is an object:
60
66
 
61
67
  ```ts
62
- amount: string | bigint
63
- originPrivateKey: `0x${string}`
64
- to: `0x${string}`
65
- nonce?: number
68
+ {
69
+ amount: string | bigint
70
+ originPrivateKey: `0x${string}`
71
+ to: `0x${string}`
72
+ nonce?: number
73
+ }
66
74
  ```
67
75
 
68
76
  ## BZZ helpers
69
77
 
70
78
  - `approveGnosisBzz(options: ApproveGnosisBzzOptions): Promise<string>`
79
+ - `createBatchGnosis(options: CreateBatchGnosisOptions): Promise<CreateBatchResult>`
@@ -12,3 +12,17 @@ export interface GnosisTransaction {
12
12
  gasPrice: `0x${string}`;
13
13
  }
14
14
  export declare function getGnosisTransaction(transactionHash: `0x${string}`, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<GnosisTransaction>;
15
+ export interface GnosisTransactionReceipt {
16
+ blockHash: `0x${string}`;
17
+ blockNumber: `0x${string}`;
18
+ cumulativeGasUsed: `0x${string}`;
19
+ effectiveGasPrice: `0x${string}`;
20
+ from: `0x${string}`;
21
+ gasUsed: `0x${string}`;
22
+ status: `0x${string}`;
23
+ to: `0x${string}`;
24
+ transactionHash: `0x${string}`;
25
+ transactionIndex: `0x${string}`;
26
+ type: `0x${string}`;
27
+ }
28
+ export declare function getGnosisTransactionReceipt(transactionHash: `0x${string}`, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<GnosisTransactionReceipt>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getGnosisTransaction = getGnosisTransaction;
4
+ exports.getGnosisTransactionReceipt = getGnosisTransactionReceipt;
4
5
  const cafe_utility_1 = require("cafe-utility");
5
6
  const Fetch_1 = require("./Fetch");
6
7
  async function getGnosisTransaction(transactionHash, settings, jsonRpcProvider) {
@@ -11,3 +12,11 @@ async function getGnosisTransaction(transactionHash, settings, jsonRpcProvider)
11
12
  const result = cafe_utility_1.Types.asObject(object.result);
12
13
  return result;
13
14
  }
15
+ async function getGnosisTransactionReceipt(transactionHash, settings, jsonRpcProvider) {
16
+ const payload = { jsonrpc: '2.0', id: 1, method: 'eth_getTransactionReceipt', params: [transactionHash] };
17
+ const response = await (0, Fetch_1.durableFetch)(jsonRpcProvider, settings, 'POST', payload);
18
+ const data = await response.json();
19
+ const object = cafe_utility_1.Types.asObject(data);
20
+ const result = cafe_utility_1.Types.asObject(object.result);
21
+ return result;
22
+ }
package/dist/Waiter.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { RollingValueProvider } from 'cafe-utility';
2
2
  import { MultichainLibrarySettings } from './Settings';
3
+ export declare function waitForGnosisTransactionReceipt(transactionHash: `0x${string}`, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<void>;
3
4
  export declare function waitForGnosisBzzBalanceToIncrease(address: string, initialBalance: bigint, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<void>;
4
5
  export declare function waitForGnosisNativeBalanceToDecrease(address: `0x${string}`, initialBalance: bigint, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<void>;
5
6
  export declare function waitForGnosisNativeBalanceToIncrease(address: `0x${string}`, initialBalance: bigint, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<void>;
package/dist/Waiter.js CHANGED
@@ -1,11 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitForGnosisTransactionReceipt = waitForGnosisTransactionReceipt;
3
4
  exports.waitForGnosisBzzBalanceToIncrease = waitForGnosisBzzBalanceToIncrease;
4
5
  exports.waitForGnosisNativeBalanceToDecrease = waitForGnosisNativeBalanceToDecrease;
5
6
  exports.waitForGnosisNativeBalanceToIncrease = waitForGnosisNativeBalanceToIncrease;
6
7
  const cafe_utility_1 = require("cafe-utility");
7
8
  const GnosisBzzBalance_1 = require("./GnosisBzzBalance");
8
9
  const GnosisNativeBalance_1 = require("./GnosisNativeBalance");
10
+ const GnosisTransaction_1 = require("./GnosisTransaction");
11
+ async function waitForGnosisTransactionReceipt(transactionHash, settings, jsonRpcProvider) {
12
+ await cafe_utility_1.System.waitFor(async () => {
13
+ const result = await (0, GnosisTransaction_1.getGnosisTransactionReceipt)(transactionHash, settings, jsonRpcProvider);
14
+ const status = parseInt(result.status);
15
+ if (status === 0) {
16
+ console.log('Transaction receipt indicates possible failure:', result);
17
+ }
18
+ return status === 1;
19
+ }, { attempts: 10, waitMillis: cafe_utility_1.Dates.seconds(10) });
20
+ }
9
21
  async function waitForGnosisBzzBalanceToIncrease(address, initialBalance, settings, jsonRpcProvider) {
10
22
  await cafe_utility_1.System.waitFor(async () => {
11
23
  try {
package/dist/index.d.ts CHANGED
@@ -5,12 +5,14 @@ import { TransferGnosisBzzOptions } from './GnosisBzzTransfer';
5
5
  import { TransferGnosisNativeOptions } from './GnosisNativeTransfer';
6
6
  import { CreateBatchGnosisOptions, CreateBatchResult } from './GnosisPostageStampCreateBatch';
7
7
  import { GnosisSwapAutoOptions, GnosisSwapCustomOptions } from './GnosisSwap';
8
- import { GnosisTransaction } from './GnosisTransaction';
8
+ import { GnosisTransaction, GnosisTransactionReceipt } from './GnosisTransaction';
9
9
  import { MultiTransferGnosisNativeOptions, MultiTransferGnosisNativeResult } from './MultiGnosisNativeTransfer';
10
10
  import { MultichainLibrarySettings } from './Settings';
11
11
  import { SushiResponse } from './SushiSwap';
12
12
  export { MultichainLibrarySettings } from './Settings';
13
13
  export { SushiResponse } from './SushiSwap';
14
+ export { xBZZ } from './xBZZ';
15
+ export { xDAI } from './xDAI';
14
16
  export declare class MultichainLibrary {
15
17
  settings: MultichainLibrarySettings;
16
18
  jsonRpcProvider: RollingValueProvider<string>;
@@ -18,6 +20,7 @@ export declare class MultichainLibrary {
18
20
  constructor(settings?: Partial<MultichainLibrarySettings>);
19
21
  updateSettings(settings: Partial<MultichainLibrarySettings>): void;
20
22
  getGnosisTransaction(transactionHash: `0x${string}`): Promise<GnosisTransaction>;
23
+ getGnosisTransactionReceipt(transactionHash: `0x${string}`): Promise<GnosisTransactionReceipt>;
21
24
  getGnosisBzzBalance(address: string): Promise<FixedPointNumber>;
22
25
  getGnosisNativeBalance(address: `0x${string}`): Promise<FixedPointNumber>;
23
26
  getTokenPrice(tokenAddress: `0x${string}`, chainId: number): Promise<number>;
@@ -31,6 +34,7 @@ export declare class MultichainLibrary {
31
34
  waitForGnosisBzzBalanceToIncrease(address: string, initialBalance: bigint): Promise<void>;
32
35
  waitForGnosisNativeBalanceToDecrease(address: `0x${string}`, initialBalance: bigint): Promise<void>;
33
36
  waitForGnosisNativeBalanceToIncrease(address: `0x${string}`, initialBalance: bigint): Promise<void>;
37
+ waitForGnosisTransactionReceipt(txHash: `0x${string}`): Promise<void>;
34
38
  swapOnGnosisAuto(options: GnosisSwapAutoOptions): Promise<`0x${string}`>;
35
39
  swapOnGnosisCustom(options: GnosisSwapCustomOptions): Promise<`0x${string}`>;
36
40
  getGnosisTransactionCount(address: `0x${string}`): Promise<number>;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MultichainLibrary = void 0;
3
+ exports.MultichainLibrary = exports.xDAI = exports.xBZZ = void 0;
4
4
  const cafe_utility_1 = require("cafe-utility");
5
5
  const Constants_1 = require("./Constants");
6
6
  const GnosisBzzApprove_1 = require("./GnosisBzzApprove");
@@ -18,6 +18,10 @@ const Settings_1 = require("./Settings");
18
18
  const SushiSwap_1 = require("./SushiSwap");
19
19
  const TokenPrice_1 = require("./TokenPrice");
20
20
  const Waiter_1 = require("./Waiter");
21
+ var xBZZ_1 = require("./xBZZ");
22
+ Object.defineProperty(exports, "xBZZ", { enumerable: true, get: function () { return xBZZ_1.xBZZ; } });
23
+ var xDAI_1 = require("./xDAI");
24
+ Object.defineProperty(exports, "xDAI", { enumerable: true, get: function () { return xDAI_1.xDAI; } });
21
25
  class MultichainLibrary {
22
26
  settings;
23
27
  jsonRpcProvider;
@@ -33,6 +37,9 @@ class MultichainLibrary {
33
37
  getGnosisTransaction(transactionHash) {
34
38
  return (0, GnosisTransaction_1.getGnosisTransaction)(transactionHash, this.settings, this.jsonRpcProvider);
35
39
  }
40
+ getGnosisTransactionReceipt(transactionHash) {
41
+ return (0, GnosisTransaction_1.getGnosisTransactionReceipt)(transactionHash, this.settings, this.jsonRpcProvider);
42
+ }
36
43
  getGnosisBzzBalance(address) {
37
44
  return (0, GnosisBzzBalance_1.getGnosisBzzBalance)(address, this.settings, this.jsonRpcProvider);
38
45
  }
@@ -72,6 +79,9 @@ class MultichainLibrary {
72
79
  waitForGnosisNativeBalanceToIncrease(address, initialBalance) {
73
80
  return (0, Waiter_1.waitForGnosisNativeBalanceToIncrease)(address, initialBalance, this.settings, this.jsonRpcProvider);
74
81
  }
82
+ waitForGnosisTransactionReceipt(txHash) {
83
+ return (0, Waiter_1.waitForGnosisTransactionReceipt)(txHash, this.settings, this.jsonRpcProvider);
84
+ }
75
85
  swapOnGnosisAuto(options) {
76
86
  return (0, GnosisSwap_1.swapOnGnosisAuto)(options, this.settings, this.jsonRpcProvider);
77
87
  }
package/dist/xBZZ.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { FixedPointNumber } from 'cafe-utility';
2
+ export declare class xBZZ extends FixedPointNumber {
3
+ static DECIMALS: number;
4
+ static fromDecimalString(decimalString: string): FixedPointNumber;
5
+ static fromFloat(value: number): FixedPointNumber;
6
+ constructor(value: bigint | number | string);
7
+ }
package/dist/xBZZ.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.xBZZ = void 0;
4
+ const cafe_utility_1 = require("cafe-utility");
5
+ class xBZZ extends cafe_utility_1.FixedPointNumber {
6
+ static DECIMALS = 16;
7
+ static fromDecimalString(decimalString) {
8
+ return cafe_utility_1.FixedPointNumber.fromDecimalString(decimalString, xBZZ.DECIMALS);
9
+ }
10
+ static fromFloat(value) {
11
+ return cafe_utility_1.FixedPointNumber.fromFloat(value, xBZZ.DECIMALS);
12
+ }
13
+ constructor(value) {
14
+ super(value, xBZZ.DECIMALS);
15
+ }
16
+ }
17
+ exports.xBZZ = xBZZ;
package/dist/xDAI.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { FixedPointNumber } from 'cafe-utility';
2
+ export declare class xDAI extends FixedPointNumber {
3
+ static DECIMALS: number;
4
+ static fromDecimalString(decimalString: string): FixedPointNumber;
5
+ static fromFloat(value: number): FixedPointNumber;
6
+ constructor(value: bigint | number | string);
7
+ }
package/dist/xDAI.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.xDAI = void 0;
4
+ const cafe_utility_1 = require("cafe-utility");
5
+ class xDAI extends cafe_utility_1.FixedPointNumber {
6
+ static DECIMALS = 18;
7
+ static fromDecimalString(decimalString) {
8
+ return cafe_utility_1.FixedPointNumber.fromDecimalString(decimalString, xDAI.DECIMALS);
9
+ }
10
+ static fromFloat(value) {
11
+ return cafe_utility_1.FixedPointNumber.fromFloat(value, xDAI.DECIMALS);
12
+ }
13
+ constructor(value) {
14
+ super(value, xDAI.DECIMALS);
15
+ }
16
+ }
17
+ exports.xDAI = xDAI;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@upcoming/multichain-library",
3
3
  "private": false,
4
- "version": "0.7.3",
4
+ "version": "0.9.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -19,7 +19,7 @@
19
19
  "license": "ISC",
20
20
  "description": "",
21
21
  "dependencies": {
22
- "cafe-utility": "^33.4.0",
22
+ "cafe-utility": "^33.7.0",
23
23
  "viem": "^2.45.1"
24
24
  },
25
25
  "devDependencies": {