@upcoming/multichain-library 0.1.1 → 0.2.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 ADDED
@@ -0,0 +1,52 @@
1
+ # Multichain Library
2
+
3
+ This repository contains a collection of cross-environment functions that are helpful for building swap and token transfer logic.
4
+
5
+ # Getting Started
6
+
7
+ ## Installation
8
+
9
+ ```
10
+ npm install @upcoming/multichain-library
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ Create an instance of the library:
16
+
17
+ ```ts
18
+ const library = new MultichainLibrary(settings)
19
+ ```
20
+
21
+ `settings` is optional, supporting:
22
+
23
+ - `gnosisJsonRpc`
24
+ - `fetchTimeoutMillis`
25
+
26
+ # Functions
27
+
28
+ ## Nonce helpers
29
+
30
+ - `getGnosisTransactionCount(address: string): Promise<number>`
31
+
32
+ ## Balance getters
33
+
34
+ - `getGnosisBzzBalance(address: string): Promise<FixedPointNumber>`
35
+ - `getGnosisNativeBalance(address: string): Promise<FixedPointNumber>`
36
+
37
+ ## Price getters
38
+
39
+ - `getTokenPrice(tokenAddress: string, chainId: number): Promise<number>`
40
+ - `getGnosisBzzTokenPrice(): Promise<number>`
41
+
42
+ ## Waiters
43
+
44
+ - `waitForGnosisBzzBalanceToIncrease(address: string, initialBalance: bigint): Promise<void>`
45
+ - `waitForGnosisNativeBalanceToDecrease(address: string, initialBalance: bigint): Promise<void>`
46
+ - `waitForGnosisNativeBalanceToIncrease(address: string, initialBalance: bigint): Promise<void>`
47
+
48
+ ## SushiSwap helpers
49
+
50
+ - `getSushiSwapQuote(amount: string, sender: string, recipient: string): Promise<SushiResponse>`
51
+ - `swapOnGnosisCustom(options: GnosisSwapCustomOptions): Promise<string>`
52
+ - `swapOnGnosisAuto(options: GnosisSwapAutoOptions): Promise<string>`
@@ -0,0 +1,3 @@
1
+ import { RollingValueProvider } from 'cafe-utility';
2
+ import { MultichainLibrarySettings } from './Settings';
3
+ export declare function durableFetch(jsonRpcProvider: RollingValueProvider<string>, settings: MultichainLibrarySettings, method: 'GET' | 'POST', body?: unknown): Promise<Response>;
package/dist/Fetch.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.durableFetch = durableFetch;
4
+ const cafe_utility_1 = require("cafe-utility");
5
+ async function durableFetch(jsonRpcProvider, settings, method, body) {
6
+ const response = await cafe_utility_1.System.withRetries(async () => {
7
+ const response = await fetch(jsonRpcProvider.current(), {
8
+ method,
9
+ headers: { 'Content-Type': 'application/json' },
10
+ body: body ? JSON.stringify(body) : undefined,
11
+ signal: AbortSignal.timeout(settings.fetchTimeoutMillis)
12
+ });
13
+ return response;
14
+ }, 5, cafe_utility_1.Dates.seconds(1), cafe_utility_1.Dates.seconds(5), console.error, () => jsonRpcProvider.next());
15
+ return response;
16
+ }
@@ -1,3 +1,3 @@
1
- import { FixedPointNumber } from 'cafe-utility';
1
+ import { FixedPointNumber, RollingValueProvider } from 'cafe-utility';
2
2
  import { MultichainLibrarySettings } from './Settings';
3
- export declare function getGnosisBzzBalance(address: string, settings: MultichainLibrarySettings): Promise<FixedPointNumber>;
3
+ export declare function getGnosisBzzBalance(address: string, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<FixedPointNumber>;
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getGnosisBzzBalance = getGnosisBzzBalance;
4
4
  const cafe_utility_1 = require("cafe-utility");
5
5
  const Constants_1 = require("./Constants");
6
- async function getGnosisBzzBalance(address, settings) {
6
+ const Fetch_1 = require("./Fetch");
7
+ async function getGnosisBzzBalance(address, settings, jsonRpcProvider) {
7
8
  address = address.toLowerCase();
8
9
  if (address.startsWith('0x')) {
9
10
  address = address.slice(2);
@@ -21,12 +22,7 @@ async function getGnosisBzzBalance(address, settings) {
21
22
  'latest'
22
23
  ]
23
24
  };
24
- const response = await fetch(settings.gnosisJsonRpc, {
25
- method: 'POST',
26
- headers: { 'Content-Type': 'application/json' },
27
- body: JSON.stringify(payload),
28
- signal: AbortSignal.timeout(settings.fetchTimeoutMillis)
29
- });
25
+ const response = await (0, Fetch_1.durableFetch)(jsonRpcProvider, settings, 'POST', payload);
30
26
  const data = await response.json();
31
27
  const object = cafe_utility_1.Types.asObject(data);
32
28
  const balance = cafe_utility_1.Types.asHexString(object.result, { strictPrefix: true, uneven: true });
@@ -1,3 +1,3 @@
1
- import { FixedPointNumber } from 'cafe-utility';
1
+ import { FixedPointNumber, RollingValueProvider } from 'cafe-utility';
2
2
  import { MultichainLibrarySettings } from './Settings';
3
- export declare function getGnosisNativeBalance(address: `0x${string}`, settings: MultichainLibrarySettings): Promise<FixedPointNumber>;
3
+ export declare function getGnosisNativeBalance(address: `0x${string}`, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<FixedPointNumber>;
@@ -2,14 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getGnosisNativeBalance = getGnosisNativeBalance;
4
4
  const cafe_utility_1 = require("cafe-utility");
5
- async function getGnosisNativeBalance(address, settings) {
5
+ const Fetch_1 = require("./Fetch");
6
+ async function getGnosisNativeBalance(address, settings, jsonRpcProvider) {
6
7
  const payload = { jsonrpc: '2.0', id: 1, method: 'eth_getBalance', params: [address, 'latest'] };
7
- const response = await fetch(settings.gnosisJsonRpc, {
8
- method: 'POST',
9
- headers: { 'Content-Type': 'application/json' },
10
- body: JSON.stringify(payload),
11
- signal: AbortSignal.timeout(settings.fetchTimeoutMillis)
12
- });
8
+ const response = await (0, Fetch_1.durableFetch)(jsonRpcProvider, settings, 'POST', payload);
13
9
  const data = await response.json();
14
10
  const object = cafe_utility_1.Types.asObject(data);
15
11
  const price = cafe_utility_1.Types.asHexString(object.result, { strictPrefix: true, uneven: true });
@@ -1,3 +1,4 @@
1
+ import { RollingValueProvider } from 'cafe-utility';
1
2
  import { MultichainLibrarySettings } from './Settings';
2
3
  export interface TransferGnosisNativeOptions {
3
4
  amount: string | bigint;
@@ -5,4 +6,4 @@ export interface TransferGnosisNativeOptions {
5
6
  originAddress: `0x${string}`;
6
7
  to: `0x${string}`;
7
8
  }
8
- export declare function transferGnosisNative(options: TransferGnosisNativeOptions, settings: MultichainLibrarySettings): Promise<`0x${string}`>;
9
+ export declare function transferGnosisNative(options: TransferGnosisNativeOptions, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<`0x${string}`>;
@@ -7,23 +7,36 @@ const accounts_1 = require("viem/accounts");
7
7
  const chains_1 = require("viem/chains");
8
8
  const Constants_1 = require("./Constants");
9
9
  const GnosisTransactionCount_1 = require("./GnosisTransactionCount");
10
- async function transferGnosisNative(options, settings) {
10
+ async function transferGnosisNative(options, settings, jsonRpcProvider) {
11
11
  const account = (0, accounts_1.privateKeyToAccount)(options.originPrivateKey);
12
12
  const client = (0, viem_1.createWalletClient)({
13
13
  chain: chains_1.gnosis,
14
- transport: (0, viem_1.http)(settings.gnosisJsonRpc)
14
+ transport: (0, viem_1.http)(jsonRpcProvider.current())
15
15
  });
16
- return account
17
- .signTransaction({
18
- chain: Constants_1.Constants.gnosisChainId,
19
- chainId: Constants_1.Constants.gnosisChainId,
20
- account: options.originAddress,
21
- gas: BigInt(21000),
22
- gasPrice: BigInt(cafe_utility_1.Numbers.make('1 gwei')),
23
- type: 'legacy',
24
- to: options.to,
25
- value: BigInt(options.amount),
26
- nonce: await (0, GnosisTransactionCount_1.getGnosisTransactionCount)(options.originAddress, settings)
27
- })
28
- .then(signedTx => client.sendRawTransaction({ serializedTransaction: signedTx }));
16
+ for (let i = 1; i <= 5; i++) {
17
+ try {
18
+ const serializedTransaction = await account.signTransaction({
19
+ chain: Constants_1.Constants.gnosisChainId,
20
+ chainId: Constants_1.Constants.gnosisChainId,
21
+ account: options.originAddress,
22
+ gas: BigInt(21000),
23
+ gasPrice: BigInt(cafe_utility_1.Numbers.make(`${i} gwei`)),
24
+ type: 'legacy',
25
+ to: options.to,
26
+ value: BigInt(options.amount),
27
+ nonce: await (0, GnosisTransactionCount_1.getGnosisTransactionCount)(options.originAddress, settings, jsonRpcProvider)
28
+ });
29
+ const hash = await client.sendRawTransaction({ serializedTransaction });
30
+ return hash;
31
+ }
32
+ catch (error) {
33
+ if (cafe_utility_1.Objects.errorMatches(error, 'FeeTooLow')) {
34
+ await cafe_utility_1.System.sleepMillis(cafe_utility_1.Dates.seconds(2));
35
+ }
36
+ else {
37
+ throw error;
38
+ }
39
+ }
40
+ }
41
+ throw Error('Failed to send transaction after multiple attempts due to low fees.');
29
42
  }
@@ -1,3 +1,4 @@
1
+ import { RollingValueProvider } from 'cafe-utility';
1
2
  import { MultichainLibrarySettings } from './Settings';
2
3
  export interface GnosisSwapAutoOptions {
3
4
  amount: string | bigint;
@@ -5,7 +6,7 @@ export interface GnosisSwapAutoOptions {
5
6
  originAddress: `0x${string}`;
6
7
  to: `0x${string}`;
7
8
  }
8
- export declare function swapOnGnosisAuto(options: GnosisSwapAutoOptions, settings: MultichainLibrarySettings): Promise<`0x${string}`>;
9
+ export declare function swapOnGnosisAuto(options: GnosisSwapAutoOptions, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<`0x${string}`>;
9
10
  export interface GnosisSwapCustomOptions {
10
11
  originPrivateKey: `0x${string}`;
11
12
  originAddress: `0x${string}`;
@@ -15,4 +16,4 @@ export interface GnosisSwapCustomOptions {
15
16
  value: bigint | string | number;
16
17
  data: `0x${string}`;
17
18
  }
18
- export declare function swapOnGnosisCustom(options: GnosisSwapCustomOptions, settings: MultichainLibrarySettings): Promise<`0x${string}`>;
19
+ export declare function swapOnGnosisCustom(options: GnosisSwapCustomOptions, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<`0x${string}`>;
@@ -8,7 +8,7 @@ const chains_1 = require("viem/chains");
8
8
  const Constants_1 = require("./Constants");
9
9
  const GnosisTransactionCount_1 = require("./GnosisTransactionCount");
10
10
  const SushiSwap_1 = require("./SushiSwap");
11
- async function swapOnGnosisAuto(options, settings) {
11
+ async function swapOnGnosisAuto(options, settings, jsonRpcProvider) {
12
12
  const quote = await (0, SushiSwap_1.getSushiSwapQuote)(options.amount.toString(), options.originAddress, options.to, settings);
13
13
  return swapOnGnosisCustom({
14
14
  originPrivateKey: options.originPrivateKey,
@@ -18,11 +18,11 @@ async function swapOnGnosisAuto(options, settings) {
18
18
  to: quote.tx.to,
19
19
  value: BigInt(quote.tx.value),
20
20
  data: quote.tx.data
21
- }, settings);
21
+ }, settings, jsonRpcProvider);
22
22
  }
23
- async function swapOnGnosisCustom(options, settings) {
23
+ async function swapOnGnosisCustom(options, settings, jsonRpcProvider) {
24
24
  const account = (0, accounts_1.privateKeyToAccount)(options.originPrivateKey);
25
- const client = (0, viem_1.createWalletClient)({ chain: chains_1.gnosis, transport: (0, viem_1.http)(settings.gnosisJsonRpc) });
25
+ const client = (0, viem_1.createWalletClient)({ chain: chains_1.gnosis, transport: (0, viem_1.http)(jsonRpcProvider.current()) });
26
26
  return account
27
27
  .signTransaction({
28
28
  chain: Constants_1.Constants.gnosisChainId,
@@ -34,7 +34,7 @@ async function swapOnGnosisCustom(options, settings) {
34
34
  to: options.to,
35
35
  value: BigInt(options.value),
36
36
  data: options.data,
37
- nonce: await (0, GnosisTransactionCount_1.getGnosisTransactionCount)(options.originAddress, settings)
37
+ nonce: await (0, GnosisTransactionCount_1.getGnosisTransactionCount)(options.originAddress, settings, jsonRpcProvider)
38
38
  })
39
39
  .then(signedTx => client.sendRawTransaction({ serializedTransaction: signedTx }));
40
40
  }
@@ -1,2 +1,3 @@
1
+ import { RollingValueProvider } from 'cafe-utility';
1
2
  import { MultichainLibrarySettings } from './Settings';
2
- export declare function getGnosisTransactionCount(address: string, settings: MultichainLibrarySettings): Promise<number>;
3
+ export declare function getGnosisTransactionCount(address: string, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<number>;
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getGnosisTransactionCount = getGnosisTransactionCount;
4
4
  const cafe_utility_1 = require("cafe-utility");
5
- async function getGnosisTransactionCount(address, settings) {
5
+ const Fetch_1 = require("./Fetch");
6
+ async function getGnosisTransactionCount(address, settings, jsonRpcProvider) {
6
7
  address = address.toLowerCase();
7
8
  if (address.startsWith('0x')) {
8
9
  address = address.slice(2);
@@ -13,12 +14,7 @@ async function getGnosisTransactionCount(address, settings) {
13
14
  method: 'eth_getTransactionCount',
14
15
  params: [`0x${address}`, 'latest']
15
16
  };
16
- const response = await fetch(settings.gnosisJsonRpc, {
17
- method: 'POST',
18
- headers: { 'Content-Type': 'application/json' },
19
- body: JSON.stringify(payload),
20
- signal: AbortSignal.timeout(settings.fetchTimeoutMillis)
21
- });
17
+ const response = await (0, Fetch_1.durableFetch)(jsonRpcProvider, settings, 'POST', payload);
22
18
  const data = await response.json();
23
19
  const object = cafe_utility_1.Types.asObject(data);
24
20
  const count = cafe_utility_1.Types.asHexString(object.result, { strictPrefix: true, uneven: true });
@@ -1,8 +1,8 @@
1
1
  export interface MultichainLibrarySettings {
2
- gnosisJsonRpc: string;
2
+ gnosisJsonRpcProviders: string[];
3
3
  fetchTimeoutMillis: number;
4
4
  }
5
5
  export declare function getDefaultMultichainLibrarySettings(): {
6
- gnosisJsonRpc: string;
6
+ gnosisJsonRpcProviders: string[];
7
7
  fetchTimeoutMillis: number;
8
8
  };
package/dist/Settings.js CHANGED
@@ -4,7 +4,7 @@ exports.getDefaultMultichainLibrarySettings = getDefaultMultichainLibrarySetting
4
4
  const cafe_utility_1 = require("cafe-utility");
5
5
  function getDefaultMultichainLibrarySettings() {
6
6
  return {
7
- gnosisJsonRpc: 'https://xdai.fairdatasociety.org/',
8
- fetchTimeoutMillis: cafe_utility_1.Dates.seconds(10)
7
+ gnosisJsonRpcProviders: ['https://rpc.gnosischain.com', 'https://xdai.fairdatasociety.org'],
8
+ fetchTimeoutMillis: cafe_utility_1.Dates.seconds(12)
9
9
  };
10
10
  }
package/dist/Waiter.d.ts CHANGED
@@ -1,4 +1,5 @@
1
+ import { RollingValueProvider } from 'cafe-utility';
1
2
  import { MultichainLibrarySettings } from './Settings';
2
- export declare function waitForGnosisBzzBalanceToIncrease(address: string, initialBalance: bigint, settings: MultichainLibrarySettings): Promise<void>;
3
- export declare function waitForGnosisNativeBalanceToDecrease(address: `0x${string}`, initialBalance: bigint, settings: MultichainLibrarySettings): Promise<void>;
4
- export declare function waitForGnosisNativeBalanceToIncrease(address: `0x${string}`, initialBalance: bigint, settings: MultichainLibrarySettings): Promise<void>;
3
+ export declare function waitForGnosisBzzBalanceToIncrease(address: string, initialBalance: bigint, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<void>;
4
+ export declare function waitForGnosisNativeBalanceToDecrease(address: `0x${string}`, initialBalance: bigint, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<void>;
5
+ export declare function waitForGnosisNativeBalanceToIncrease(address: `0x${string}`, initialBalance: bigint, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<void>;
package/dist/Waiter.js CHANGED
@@ -6,10 +6,10 @@ exports.waitForGnosisNativeBalanceToIncrease = waitForGnosisNativeBalanceToIncre
6
6
  const cafe_utility_1 = require("cafe-utility");
7
7
  const GnosisBzzBalance_1 = require("./GnosisBzzBalance");
8
8
  const GnosisNativeBalance_1 = require("./GnosisNativeBalance");
9
- async function waitForGnosisBzzBalanceToIncrease(address, initialBalance, settings) {
9
+ async function waitForGnosisBzzBalanceToIncrease(address, initialBalance, settings, jsonRpcProvider) {
10
10
  await cafe_utility_1.System.waitFor(async () => {
11
11
  try {
12
- const balance = await (0, GnosisBzzBalance_1.getGnosisBzzBalance)(address, settings);
12
+ const balance = await (0, GnosisBzzBalance_1.getGnosisBzzBalance)(address, settings, jsonRpcProvider);
13
13
  return balance.value > initialBalance;
14
14
  }
15
15
  catch (error) {
@@ -18,10 +18,10 @@ async function waitForGnosisBzzBalanceToIncrease(address, initialBalance, settin
18
18
  }
19
19
  }, { attempts: 20, waitMillis: cafe_utility_1.Dates.seconds(15) });
20
20
  }
21
- async function waitForGnosisNativeBalanceToDecrease(address, initialBalance, settings) {
21
+ async function waitForGnosisNativeBalanceToDecrease(address, initialBalance, settings, jsonRpcProvider) {
22
22
  await cafe_utility_1.System.waitFor(async () => {
23
23
  try {
24
- const balance = await (0, GnosisNativeBalance_1.getGnosisNativeBalance)(address, settings);
24
+ const balance = await (0, GnosisNativeBalance_1.getGnosisNativeBalance)(address, settings, jsonRpcProvider);
25
25
  return balance.value < initialBalance;
26
26
  }
27
27
  catch (error) {
@@ -30,10 +30,10 @@ async function waitForGnosisNativeBalanceToDecrease(address, initialBalance, set
30
30
  }
31
31
  }, { attempts: 20, waitMillis: cafe_utility_1.Dates.seconds(15) });
32
32
  }
33
- async function waitForGnosisNativeBalanceToIncrease(address, initialBalance, settings) {
33
+ async function waitForGnosisNativeBalanceToIncrease(address, initialBalance, settings, jsonRpcProvider) {
34
34
  await cafe_utility_1.System.waitFor(async () => {
35
35
  try {
36
- const balance = await (0, GnosisNativeBalance_1.getGnosisNativeBalance)(address, settings);
36
+ const balance = await (0, GnosisNativeBalance_1.getGnosisNativeBalance)(address, settings, jsonRpcProvider);
37
37
  return balance.value > initialBalance;
38
38
  }
39
39
  catch (error) {
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { FixedPointNumber } from 'cafe-utility';
1
+ import { FixedPointNumber, RollingValueProvider } from 'cafe-utility';
2
2
  import { Constants } from './Constants';
3
3
  import { TransferGnosisNativeOptions } from './GnosisNativeTransfer';
4
4
  import { GnosisSwapAutoOptions, GnosisSwapCustomOptions } from './GnosisSwap';
@@ -8,6 +8,7 @@ export { MultichainLibrarySettings } from './Settings';
8
8
  export { SushiResponse } from './SushiSwap';
9
9
  export declare class MultichainLibrary {
10
10
  settings: MultichainLibrarySettings;
11
+ jsonRpcProvider: RollingValueProvider<string>;
11
12
  constants: typeof Constants;
12
13
  constructor(settings?: Partial<MultichainLibrarySettings>);
13
14
  getGnosisBzzBalance(address: string): Promise<FixedPointNumber>;
package/dist/index.js CHANGED
@@ -14,15 +14,17 @@ const TokenPrice_1 = require("./TokenPrice");
14
14
  const Waiter_1 = require("./Waiter");
15
15
  class MultichainLibrary {
16
16
  settings;
17
+ jsonRpcProvider;
17
18
  constants = Constants_1.Constants;
18
19
  constructor(settings) {
19
20
  this.settings = cafe_utility_1.Objects.deepMerge2((0, Settings_1.getDefaultMultichainLibrarySettings)(), settings || {});
21
+ this.jsonRpcProvider = new cafe_utility_1.RollingValueProvider(this.settings.gnosisJsonRpcProviders);
20
22
  }
21
23
  getGnosisBzzBalance(address) {
22
- return (0, GnosisBzzBalance_1.getGnosisBzzBalance)(address, this.settings);
24
+ return (0, GnosisBzzBalance_1.getGnosisBzzBalance)(address, this.settings, this.jsonRpcProvider);
23
25
  }
24
26
  getGnosisNativeBalance(address) {
25
- return (0, GnosisNativeBalance_1.getGnosisNativeBalance)(address, this.settings);
27
+ return (0, GnosisNativeBalance_1.getGnosisNativeBalance)(address, this.settings, this.jsonRpcProvider);
26
28
  }
27
29
  getTokenPrice(tokenAddress, chainId) {
28
30
  return (0, TokenPrice_1.getTokenPrice)(tokenAddress, chainId, this.settings);
@@ -31,25 +33,25 @@ class MultichainLibrary {
31
33
  return (0, TokenPrice_1.getGnosisBzzTokenPrice)(this.settings);
32
34
  }
33
35
  transferGnosisNative(options) {
34
- return (0, GnosisNativeTransfer_1.transferGnosisNative)(options, this.settings);
36
+ return (0, GnosisNativeTransfer_1.transferGnosisNative)(options, this.settings, this.jsonRpcProvider);
35
37
  }
36
38
  waitForGnosisBzzBalanceToIncrease(address, initialBalance) {
37
- return (0, Waiter_1.waitForGnosisBzzBalanceToIncrease)(address, initialBalance, this.settings);
39
+ return (0, Waiter_1.waitForGnosisBzzBalanceToIncrease)(address, initialBalance, this.settings, this.jsonRpcProvider);
38
40
  }
39
41
  waitForGnosisNativeBalanceToDecrease(address, initialBalance) {
40
- return (0, Waiter_1.waitForGnosisNativeBalanceToDecrease)(address, initialBalance, this.settings);
42
+ return (0, Waiter_1.waitForGnosisNativeBalanceToDecrease)(address, initialBalance, this.settings, this.jsonRpcProvider);
41
43
  }
42
44
  waitForGnosisNativeBalanceToIncrease(address, initialBalance) {
43
- return (0, Waiter_1.waitForGnosisNativeBalanceToIncrease)(address, initialBalance, this.settings);
45
+ return (0, Waiter_1.waitForGnosisNativeBalanceToIncrease)(address, initialBalance, this.settings, this.jsonRpcProvider);
44
46
  }
45
47
  swapOnGnosisAuto(options) {
46
- return (0, GnosisSwap_1.swapOnGnosisAuto)(options, this.settings);
48
+ return (0, GnosisSwap_1.swapOnGnosisAuto)(options, this.settings, this.jsonRpcProvider);
47
49
  }
48
50
  swapOnGnosisCustom(options) {
49
- return (0, GnosisSwap_1.swapOnGnosisCustom)(options, this.settings);
51
+ return (0, GnosisSwap_1.swapOnGnosisCustom)(options, this.settings, this.jsonRpcProvider);
50
52
  }
51
53
  getGnosisTransactionCount(address) {
52
- return (0, GnosisTransactionCount_1.getGnosisTransactionCount)(address, this.settings);
54
+ return (0, GnosisTransactionCount_1.getGnosisTransactionCount)(address, this.settings, this.jsonRpcProvider);
53
55
  }
54
56
  getSushiSwapQuote(amount, sender, recipient) {
55
57
  return (0, SushiSwap_1.getSushiSwapQuote)(amount, sender, recipient, this.settings);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@upcoming/multichain-library",
3
3
  "private": false,
4
- "version": "0.1.1",
4
+ "version": "0.2.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -18,7 +18,7 @@
18
18
  "license": "ISC",
19
19
  "description": "",
20
20
  "dependencies": {
21
- "cafe-utility": "^33.0.0",
21
+ "cafe-utility": "^33.3.1",
22
22
  "viem": "^2.38.2"
23
23
  },
24
24
  "devDependencies": {