@dripfi/drip-sdk 1.4.28-bridge-perq → 1.4.28-bridge-perq-1

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
@@ -282,6 +282,38 @@ const txHash = await lite.withdraw(
282
282
  );
283
283
  ```
284
284
 
285
+ ### `checkMainnetToSonicBridgeApproval(amount: string): Promise<boolean>`
286
+
287
+ I want to check if the User approved the bridge contract to bridge 10 PERQ from MAINNET to SONIC
288
+
289
+ ```typescript
290
+ const hasApprovedAmount = await dripSdk.bridge.checkMainnetToSonicBridgeApproval('10');
291
+ ```
292
+
293
+ ### `approveMainnetToSonicBridge(amount: string): Promise<string>`
294
+
295
+ I want to approve to bridge 10 PERQ from MAINNET to SONIC
296
+
297
+ ```typescript
298
+ const txHash = await dripSdk.bridge.approveMainnetToSonicBridge('10');
299
+ ```
300
+
301
+ ### `bridgeMainnetToSonic(amount: string): Promise<string>`
302
+
303
+ I want to bridge 10 PERQ from MAINNET to SONIC
304
+
305
+ ```typescript
306
+ const txHash = await dripSdk.bridge.bridgeMainnetToSonic('10');
307
+ ```
308
+
309
+ ### `bridgeSonicToMainnet(amount: string): Promise<string>`
310
+
311
+ I want to bridge 10 PERQ from SONIC to MAINNET
312
+
313
+ ```typescript
314
+ const txHash = await dripSdk.bridge.bridgeSonicToMainnet('10');
315
+ ```
316
+
285
317
  ## Types
286
318
 
287
319
  ```typescript
package/dist/PerqSdk.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Signer, ethers } from 'ethers';
2
2
  import { PerqConfig } from './types';
3
3
  import PerqApi from './PerqApi';
4
- import { PerqSwapAndRecyclerContract, PerqTokenRecyclerContract, PerqVestingContract, BridgeMainnetPerqToSonicContract, BridgeSonicPerqToMainnetContract, PerqTokenContract } from './contracts';
4
+ import { PerqSwapAndRecyclerContract, PerqTokenRecyclerContract, PerqVestingContract } from './contracts';
5
5
  import VestingPackage from './subpackages/VestingPackage';
6
6
  import BridgePerqPackage from './subpackages/BridgePerqPackage';
7
7
  import LitePackage from './subpackages/LitePackage';
@@ -30,9 +30,6 @@ export default class PerqSdk {
30
30
  perqVestingContract: PerqVestingContract;
31
31
  perqTokenRecyclerContract: PerqTokenRecyclerContract;
32
32
  perqSwapAndRecyclerContract: PerqSwapAndRecyclerContract;
33
- bridgeMainnetPerqToSonicContract: BridgeMainnetPerqToSonicContract;
34
- bridgeSonicPerqToMainnetContract: BridgeSonicPerqToMainnetContract;
35
- perqTokenContract: PerqTokenContract;
36
33
  constructor(perqConfig: PerqConfig, chainId: PerqSupportedChainId, provider?: ethers.providers.JsonRpcProvider);
37
34
  updateSigner(newSigner: Signer, chainId: PerqSupportedChainId): Promise<void>;
38
35
  }
package/dist/PerqSdk.js CHANGED
@@ -32,9 +32,6 @@ class PerqSdk {
32
32
  perqVestingContract;
33
33
  perqTokenRecyclerContract;
34
34
  perqSwapAndRecyclerContract;
35
- bridgeMainnetPerqToSonicContract;
36
- bridgeSonicPerqToMainnetContract;
37
- perqTokenContract;
38
35
  constructor(perqConfig, chainId, provider) {
39
36
  this.perqConfig = perqConfig;
40
37
  const newSigner = provider?.getSigner();
@@ -55,9 +52,6 @@ class PerqSdk {
55
52
  this.perqVestingContract = new contracts_1.PerqVestingContract(this);
56
53
  this.perqTokenRecyclerContract = new contracts_1.PerqTokenRecyclerContract(this);
57
54
  this.perqSwapAndRecyclerContract = new contracts_1.PerqSwapAndRecyclerContract(this);
58
- this.bridgeMainnetPerqToSonicContract = new contracts_1.BridgeMainnetPerqToSonicContract(this);
59
- this.bridgeSonicPerqToMainnetContract = new contracts_1.BridgeSonicPerqToMainnetContract(this);
60
- this.perqTokenContract = new contracts_1.PerqTokenContract(this.perqConfig.perqTokenAddress, this.signer);
61
55
  }
62
56
  async updateSigner(newSigner, chainId) {
63
57
  this.signer = newSigner;
@@ -65,9 +59,7 @@ class PerqSdk {
65
59
  this.perqVestingContract = new contracts_1.PerqVestingContract(this);
66
60
  this.perqTokenRecyclerContract = new contracts_1.PerqTokenRecyclerContract(this);
67
61
  this.perqSwapAndRecyclerContract = new contracts_1.PerqSwapAndRecyclerContract(this);
68
- this.bridgeMainnetPerqToSonicContract = new contracts_1.BridgeMainnetPerqToSonicContract(this);
69
- this.bridgeSonicPerqToMainnetContract = new contracts_1.BridgeSonicPerqToMainnetContract(this);
70
- this.perqTokenContract = new contracts_1.PerqTokenContract(this.perqConfig.perqTokenAddress, this.signer);
62
+ this.bridge = new BridgePerqPackage_1.default(this);
71
63
  }
72
64
  }
73
65
  exports.default = PerqSdk;
@@ -1,24 +1,7 @@
1
1
  import { ContractTransaction, ethers } from 'ethers';
2
2
  import BasePerqContract from './BasePerqContract';
3
- export interface SendParam {
4
- dstEid: number;
5
- to: string;
6
- amountLD: ethers.BigNumber;
7
- minAmountLD: ethers.BigNumber;
8
- extraOptions: string;
9
- composeMsg: string;
10
- oftCmd: string;
11
- }
12
- export interface MessagingFee {
13
- nativeFee: ethers.BigNumber;
14
- lzTokenFee: ethers.BigNumber;
15
- }
16
- export interface MessagingReceipt {
17
- guid: string;
18
- nonce: number;
19
- fee: MessagingFee;
20
- }
21
3
  import PerqSdk from '../PerqSdk';
4
+ import { MessagingFee, SendParam } from '../types/BridgePerq';
22
5
  export default class BridgeMainnetPerqToSonicContract extends BasePerqContract {
23
6
  constructor(perqSdk: PerqSdk);
24
7
  send(sendParam: SendParam, fee: MessagingFee, refundAddress: string, overrides?: ethers.PayableOverrides): Promise<ContractTransaction>;
@@ -27,7 +27,7 @@ class BridgeMainnetPerqToSonicContract extends BasePerqContract_1.default {
27
27
  const feeTuple = [fee.nativeFee, fee.lzTokenFee];
28
28
  return await this.contract.send(sendParamTuple, feeTuple, refundAddress, overrides);
29
29
  }
30
- // Helper method to quote the send operation (useful for getting fee estimates)
30
+ // Used for getting the fee estimation for the send operation
31
31
  async quoteSend(sendParam, payInLzToken) {
32
32
  const sendParamTuple = [
33
33
  sendParam.dstEid,
@@ -1,24 +1,7 @@
1
1
  import { ContractTransaction, ethers } from 'ethers';
2
2
  import BasePerqContract from './BasePerqContract';
3
- export interface SendParam {
4
- dstEid: number;
5
- to: string;
6
- amountLD: ethers.BigNumber;
7
- minAmountLD: ethers.BigNumber;
8
- extraOptions: string;
9
- composeMsg: string;
10
- oftCmd: string;
11
- }
12
- export interface MessagingFee {
13
- nativeFee: ethers.BigNumber;
14
- lzTokenFee: ethers.BigNumber;
15
- }
16
- export interface MessagingReceipt {
17
- guid: string;
18
- nonce: number;
19
- fee: MessagingFee;
20
- }
21
3
  import PerqSdk from '../PerqSdk';
4
+ import { MessagingFee, SendParam } from '../types/BridgePerq';
22
5
  export default class BridgeSonicPerqToMainnetContract extends BasePerqContract {
23
6
  constructor(perqSdk: PerqSdk);
24
7
  send(sendParam: SendParam, fee: MessagingFee, refundAddress: string, overrides?: ethers.PayableOverrides): Promise<ContractTransaction>;
@@ -14,7 +14,6 @@ class BridgeSonicPerqToMainnetContract extends BasePerqContract_1.default {
14
14
  if (!this.contract.signer) {
15
15
  throw Error('No signer provided');
16
16
  }
17
- // Convert the parameters to the format expected by the contract
18
17
  const sendParamTuple = [
19
18
  sendParam.dstEid,
20
19
  sendParam.to,
@@ -27,7 +26,7 @@ class BridgeSonicPerqToMainnetContract extends BasePerqContract_1.default {
27
26
  const feeTuple = [fee.nativeFee, fee.lzTokenFee];
28
27
  return await this.contract.send(sendParamTuple, feeTuple, refundAddress, overrides);
29
28
  }
30
- // Helper method to quote the send operation (useful for getting fee estimates)
29
+ // Used for getting the fee estimation for the send operation
31
30
  async quoteSend(sendParam, payInLzToken) {
32
31
  const sendParamTuple = [
33
32
  sendParam.dstEid,
@@ -1,10 +1,13 @@
1
1
  import PerqSdk from '../PerqSdk';
2
+ import { BridgeMainnetPerqToSonicContract, BridgeSonicPerqToMainnetContract } from '../contracts';
2
3
  export interface BridgeQuote {
3
4
  nativeFee: string;
4
5
  lzTokenFee: string;
5
6
  }
6
7
  export default class BridgePerqPackage {
7
8
  perqSdk: PerqSdk;
9
+ bridgeMainnetPerqToSonicContract: BridgeMainnetPerqToSonicContract;
10
+ bridgeSonicPerqToMainnetContract: BridgeSonicPerqToMainnetContract;
8
11
  constructor(perqSdk: PerqSdk);
9
12
  /**
10
13
  * Bridge PERQ tokens from Mainnet to Sonic
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const ethers_1 = require("ethers");
4
4
  const utils_1 = require("ethers/lib/utils");
5
+ const contracts_1 = require("../contracts");
5
6
  // Chain IDs for LayerZero
6
7
  const ENDPOINT_IDS = {
7
8
  ETHEREUM_MAINNET: 30101,
@@ -9,8 +10,12 @@ const ENDPOINT_IDS = {
9
10
  };
10
11
  class BridgePerqPackage {
11
12
  perqSdk;
13
+ bridgeMainnetPerqToSonicContract;
14
+ bridgeSonicPerqToMainnetContract;
12
15
  constructor(perqSdk) {
13
16
  this.perqSdk = perqSdk;
17
+ this.bridgeMainnetPerqToSonicContract = new contracts_1.BridgeMainnetPerqToSonicContract(perqSdk);
18
+ this.bridgeSonicPerqToMainnetContract = new contracts_1.BridgeSonicPerqToMainnetContract(perqSdk);
14
19
  }
15
20
  /**
16
21
  * Bridge PERQ tokens from Mainnet to Sonic
@@ -45,7 +50,7 @@ class BridgePerqPackage {
45
50
  lzTokenFee: (0, utils_1.parseUnits)(feeQuote.lzTokenFee, 18),
46
51
  };
47
52
  // Send the transaction
48
- const tx = await this.perqSdk.bridgeMainnetPerqToSonicContract.send(sendParam, fee, recipientAddress, {
53
+ const tx = await this.bridgeMainnetPerqToSonicContract.send(sendParam, fee, recipientAddress, {
49
54
  value: fee.nativeFee,
50
55
  });
51
56
  const txReceipt = await tx.wait();
@@ -85,8 +90,7 @@ class BridgePerqPackage {
85
90
  nativeFee: (0, utils_1.parseUnits)(feeQuote.nativeFee, 18),
86
91
  lzTokenFee: (0, utils_1.parseUnits)(feeQuote.lzTokenFee, 18),
87
92
  };
88
- // Send the transaction
89
- const tx = await this.perqSdk.bridgeSonicPerqToMainnetContract.send(sendParam, fee, recipientAddress, {
93
+ const tx = await this.bridgeSonicPerqToMainnetContract.send(sendParam, fee, recipientAddress, {
90
94
  value: fee.nativeFee,
91
95
  });
92
96
  const txReceipt = await tx.wait();
@@ -107,9 +111,10 @@ class BridgePerqPackage {
107
111
  if (!this.perqSdk.signer) {
108
112
  throw new Error('No signer provided');
109
113
  }
110
- const bridgeAddress = this.perqSdk.bridgeMainnetPerqToSonicContract.getContractAddress();
114
+ const perqTokenContract = new contracts_1.PerqTokenContract(this.perqSdk.perqConfig.perqTokenAddress, this.perqSdk.signer);
115
+ const bridgeAddress = this.bridgeMainnetPerqToSonicContract.getContractAddress();
111
116
  const amountLD = (0, utils_1.parseUnits)(amount, 18);
112
- const allowance = await this.perqSdk.perqTokenContract.getAllowance(bridgeAddress);
117
+ const allowance = await perqTokenContract.getAllowance(bridgeAddress);
113
118
  return allowance.gte(amountLD);
114
119
  }
115
120
  catch (error) {
@@ -124,9 +129,10 @@ class BridgePerqPackage {
124
129
  */
125
130
  async approveMainnetToSonicBridge(amount) {
126
131
  try {
127
- const bridgeAddress = this.perqSdk.bridgeMainnetPerqToSonicContract.getContractAddress();
132
+ const bridgeAddress = this.bridgeMainnetPerqToSonicContract.getContractAddress();
128
133
  const amountLD = (0, utils_1.parseUnits)(amount, 18);
129
- const tx = await this.perqSdk.perqTokenContract.approve(bridgeAddress, amountLD);
134
+ const perqTokenContract = new contracts_1.PerqTokenContract(this.perqSdk.perqConfig.perqTokenAddress, this.perqSdk.signer);
135
+ const tx = await perqTokenContract.approve(bridgeAddress, amountLD);
130
136
  const txReceipt = await tx.wait();
131
137
  return txReceipt.transactionHash;
132
138
  }
@@ -154,7 +160,7 @@ class BridgePerqPackage {
154
160
  oftCmd: '0x',
155
161
  };
156
162
  console.log('trying to quoteSend from mainnet to sonic with sendParam:', sendParam, ' and payInLzToken:', payInLzToken);
157
- const fee = await this.perqSdk.bridgeMainnetPerqToSonicContract.quoteSend(sendParam, payInLzToken);
163
+ const fee = await this.bridgeMainnetPerqToSonicContract.quoteSend(sendParam, payInLzToken);
158
164
  return {
159
165
  nativeFee: (0, utils_1.formatUnits)(fee.nativeFee, 18),
160
166
  lzTokenFee: (0, utils_1.formatUnits)(fee.lzTokenFee, 18),
@@ -184,7 +190,7 @@ class BridgePerqPackage {
184
190
  oftCmd: '0x',
185
191
  };
186
192
  console.log('trying to quoteSend from sonic to mainnet with sendParam:', sendParam, ' and payInLzToken:', payInLzToken);
187
- const fee = await this.perqSdk.bridgeSonicPerqToMainnetContract.quoteSend(sendParam, payInLzToken);
193
+ const fee = await this.bridgeSonicPerqToMainnetContract.quoteSend(sendParam, payInLzToken);
188
194
  return {
189
195
  nativeFee: (0, utils_1.formatUnits)(fee.nativeFee, 18),
190
196
  lzTokenFee: (0, utils_1.formatUnits)(fee.lzTokenFee, 18),
@@ -0,0 +1,14 @@
1
+ import { ethers } from 'ethers';
2
+ export interface SendParam {
3
+ dstEid: number;
4
+ to: string;
5
+ amountLD: ethers.BigNumber;
6
+ minAmountLD: ethers.BigNumber;
7
+ extraOptions: string;
8
+ composeMsg: string;
9
+ oftCmd: string;
10
+ }
11
+ export interface MessagingFee {
12
+ nativeFee: ethers.BigNumber;
13
+ lzTokenFee: ethers.BigNumber;
14
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dripfi/drip-sdk",
3
- "version": "1.4.28-bridge-perq",
3
+ "version": "1.4.28-bridge-perq-1",
4
4
  "description": "Drip SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",