@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 +32 -0
- package/dist/PerqSdk.d.ts +1 -4
- package/dist/PerqSdk.js +1 -9
- package/dist/contracts/BridgeMainnetPerqToSonicContract.d.ts +1 -18
- package/dist/contracts/BridgeMainnetPerqToSonicContract.js +1 -1
- package/dist/contracts/BridgeSonicPerqToMainnetContract.d.ts +1 -18
- package/dist/contracts/BridgeSonicPerqToMainnetContract.js +1 -2
- package/dist/subpackages/BridgePerqPackage.d.ts +3 -0
- package/dist/subpackages/BridgePerqPackage.js +15 -9
- package/dist/types/BridgePerq.d.ts +14 -0
- package/dist/types/BridgePerq.js +2 -0
- package/package.json +1 -1
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
|
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.
|
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
|
-
//
|
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
|
-
//
|
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.
|
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
|
-
|
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
|
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
|
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.
|
132
|
+
const bridgeAddress = this.bridgeMainnetPerqToSonicContract.getContractAddress();
|
128
133
|
const amountLD = (0, utils_1.parseUnits)(amount, 18);
|
129
|
-
const
|
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.
|
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.
|
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
|
+
}
|