@upcoming/multichain-library 0.2.0 → 0.4.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.
@@ -5,5 +5,6 @@ export interface TransferGnosisNativeOptions {
5
5
  originPrivateKey: `0x${string}`;
6
6
  originAddress: `0x${string}`;
7
7
  to: `0x${string}`;
8
+ nonce?: number;
8
9
  }
9
10
  export declare function transferGnosisNative(options: TransferGnosisNativeOptions, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<`0x${string}`>;
@@ -24,7 +24,7 @@ async function transferGnosisNative(options, settings, jsonRpcProvider) {
24
24
  type: 'legacy',
25
25
  to: options.to,
26
26
  value: BigInt(options.amount),
27
- nonce: await (0, GnosisTransactionCount_1.getGnosisTransactionCount)(options.originAddress, settings, jsonRpcProvider)
27
+ nonce: options.nonce ?? (await (0, GnosisTransactionCount_1.getGnosisTransactionCount)(options.originAddress, settings, jsonRpcProvider))
28
28
  });
29
29
  const hash = await client.sendRawTransaction({ serializedTransaction });
30
30
  return hash;
@@ -13,7 +13,7 @@ async function swapOnGnosisAuto(options, settings, jsonRpcProvider) {
13
13
  return swapOnGnosisCustom({
14
14
  originPrivateKey: options.originPrivateKey,
15
15
  originAddress: options.originAddress,
16
- gas: BigInt(quote.tx.gas),
16
+ gas: (BigInt(quote.tx.gas) * 5n) / 4n, // add 25% buffer
17
17
  gasPrice: BigInt(quote.tx.gasPrice),
18
18
  to: quote.tx.to,
19
19
  value: BigInt(quote.tx.value),
@@ -28,7 +28,7 @@ async function swapOnGnosisCustom(options, settings, jsonRpcProvider) {
28
28
  chain: Constants_1.Constants.gnosisChainId,
29
29
  chainId: Constants_1.Constants.gnosisChainId,
30
30
  account: options.originAddress,
31
- gas: BigInt(options.gas),
31
+ gas: (BigInt(options.gas) * 5n) / 4n, // add 25% buffer
32
32
  gasPrice: BigInt(options.gasPrice),
33
33
  type: 'legacy',
34
34
  to: options.to,
@@ -0,0 +1,22 @@
1
+ import { RollingValueProvider } from 'cafe-utility';
2
+ import { MultichainLibrarySettings } from './Settings';
3
+ export interface MultiTransferGnosisNativeOptions {
4
+ amount: string | bigint;
5
+ originPrivateKey: `0x${string}`;
6
+ originAddress: `0x${string}`;
7
+ to: `0x${string}`[];
8
+ nonce?: number;
9
+ }
10
+ export interface AddressfulTransaction {
11
+ address: `0x${string}`;
12
+ transaction: `0x${string}`;
13
+ }
14
+ export interface AddressfulError {
15
+ address: `0x${string}`;
16
+ error: Error;
17
+ }
18
+ export interface MultiTransferGnosisNativeResult {
19
+ transactions: AddressfulTransaction[];
20
+ errors: AddressfulError[];
21
+ }
22
+ export declare function multiTransferGnosisNative(options: MultiTransferGnosisNativeOptions, settings: MultichainLibrarySettings, jsonRpcProvider: RollingValueProvider<string>): Promise<MultiTransferGnosisNativeResult>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.multiTransferGnosisNative = multiTransferGnosisNative;
4
+ const GnosisNativeTransfer_1 = require("./GnosisNativeTransfer");
5
+ const GnosisTransactionCount_1 = require("./GnosisTransactionCount");
6
+ async function multiTransferGnosisNative(options, settings, jsonRpcProvider) {
7
+ const transactions = [];
8
+ const errors = [];
9
+ let nonce = options.nonce ?? (await (0, GnosisTransactionCount_1.getGnosisTransactionCount)(options.originAddress, settings, jsonRpcProvider));
10
+ for (const address of options.to) {
11
+ try {
12
+ const transaction = await (0, GnosisNativeTransfer_1.transferGnosisNative)({
13
+ amount: options.amount,
14
+ originPrivateKey: options.originPrivateKey,
15
+ originAddress: options.originAddress,
16
+ to: address,
17
+ nonce: nonce++
18
+ }, settings, jsonRpcProvider);
19
+ transactions.push({ address, transaction });
20
+ }
21
+ catch (error) {
22
+ errors.push({ address, error: error });
23
+ }
24
+ }
25
+ return { transactions, errors };
26
+ }
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ 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';
5
+ import { MultiTransferGnosisNativeOptions, MultiTransferGnosisNativeResult } from './MultiGnosisNativeTransfer';
5
6
  import { MultichainLibrarySettings } from './Settings';
6
7
  import { SushiResponse } from './SushiSwap';
7
8
  export { MultichainLibrarySettings } from './Settings';
@@ -16,6 +17,7 @@ export declare class MultichainLibrary {
16
17
  getTokenPrice(tokenAddress: `0x${string}`, chainId: number): Promise<number>;
17
18
  getGnosisBzzTokenPrice(): Promise<number>;
18
19
  transferGnosisNative(options: TransferGnosisNativeOptions): Promise<`0x${string}`>;
20
+ multiTransferGnosisNative(options: MultiTransferGnosisNativeOptions): Promise<MultiTransferGnosisNativeResult>;
19
21
  waitForGnosisBzzBalanceToIncrease(address: string, initialBalance: bigint): Promise<void>;
20
22
  waitForGnosisNativeBalanceToDecrease(address: `0x${string}`, initialBalance: bigint): Promise<void>;
21
23
  waitForGnosisNativeBalanceToIncrease(address: `0x${string}`, initialBalance: bigint): Promise<void>;
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ const GnosisNativeBalance_1 = require("./GnosisNativeBalance");
8
8
  const GnosisNativeTransfer_1 = require("./GnosisNativeTransfer");
9
9
  const GnosisSwap_1 = require("./GnosisSwap");
10
10
  const GnosisTransactionCount_1 = require("./GnosisTransactionCount");
11
+ const MultiGnosisNativeTransfer_1 = require("./MultiGnosisNativeTransfer");
11
12
  const Settings_1 = require("./Settings");
12
13
  const SushiSwap_1 = require("./SushiSwap");
13
14
  const TokenPrice_1 = require("./TokenPrice");
@@ -35,6 +36,9 @@ class MultichainLibrary {
35
36
  transferGnosisNative(options) {
36
37
  return (0, GnosisNativeTransfer_1.transferGnosisNative)(options, this.settings, this.jsonRpcProvider);
37
38
  }
39
+ multiTransferGnosisNative(options) {
40
+ return (0, MultiGnosisNativeTransfer_1.multiTransferGnosisNative)(options, this.settings, this.jsonRpcProvider);
41
+ }
38
42
  waitForGnosisBzzBalanceToIncrease(address, initialBalance) {
39
43
  return (0, Waiter_1.waitForGnosisBzzBalanceToIncrease)(address, initialBalance, this.settings, this.jsonRpcProvider);
40
44
  }
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@upcoming/multichain-library",
3
3
  "private": false,
4
- "version": "0.2.0",
4
+ "version": "0.4.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
8
8
  ".": {
9
9
  "import": "./dist/index.js",
10
+ "require": "./dist/index.js",
10
11
  "types": "./dist/index.d.ts"
11
12
  }
12
13
  },
@@ -22,7 +23,6 @@
22
23
  "viem": "^2.38.2"
23
24
  },
24
25
  "devDependencies": {
25
- "@types/node": "^24.7.2",
26
26
  "typescript": "^5.9.3"
27
27
  }
28
28
  }
package/tsconfig.json CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  "compilerOptions": {
6
6
  "outDir": "dist",
7
- "lib": ["ES2022"],
7
+ "lib": ["ES2022", "DOM"],
8
8
  "module": "CommonJS",
9
9
  "target": "ES2022",
10
10
  "declaration": true,