@pendle/sdk-boros 1.0.9-cross-deposit-4 → 1.0.9-cross-deposit-6
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/dist/addresses.d.ts +4 -0
- package/dist/addresses.js +11 -1
- package/dist/addresses.js.map +1 -1
- package/dist/backend/secrettune/BorosCoreSDK.d.ts +207 -6
- package/dist/backend/secrettune/BorosCoreSDK.js +84 -3
- package/dist/backend/secrettune/BorosCoreSDK.js.map +1 -1
- package/dist/backend/secrettune/BorosSendTxsBotSDK.d.ts +29 -10
- package/dist/backend/secrettune/BorosSendTxsBotSDK.js +4 -4
- package/dist/backend/secrettune/BorosSendTxsBotSDK.js.map +1 -1
- package/dist/backend/secrettune/PendleV2SDK.d.ts +2238 -0
- package/dist/backend/secrettune/PendleV2SDK.js +945 -0
- package/dist/backend/secrettune/PendleV2SDK.js.map +1 -0
- package/dist/backend/secrettune/module.d.ts +6 -0
- package/dist/backend/secrettune/module.js +26 -0
- package/dist/backend/secrettune/module.js.map +1 -1
- package/dist/entities/crossChainDeposit/AggregatorHelper.d.ts +16 -7
- package/dist/entities/crossChainDeposit/AggregatorHelper.js +10 -1
- package/dist/entities/crossChainDeposit/AggregatorHelper.js.map +1 -1
- package/dist/entities/crossChainDeposit/AggregatorHelperErrors.d.ts +12 -2
- package/dist/entities/crossChainDeposit/AggregatorHelperErrors.js.map +1 -1
- package/dist/entities/crossChainDeposit/CrossChainDeposit.d.ts +8 -2
- package/dist/entities/crossChainDeposit/CrossChainDeposit.js +20 -5
- package/dist/entities/crossChainDeposit/CrossChainDeposit.js.map +1 -1
- package/dist/entities/crossChainDeposit/aggregators/Lifi/index.d.ts +8 -4
- package/dist/entities/crossChainDeposit/aggregators/Lifi/index.js +15 -4
- package/dist/entities/crossChainDeposit/aggregators/Lifi/index.js.map +1 -1
- package/dist/entities/crossChainDeposit/aggregators/Lifi/types.d.ts +23 -1
- package/dist/entities/crossChainDeposit/aggregators/Lifi/types.js.map +1 -1
- package/dist/entities/crossChainDeposit/aggregators/Pendle/index.d.ts +27 -0
- package/dist/entities/crossChainDeposit/aggregators/Pendle/index.js +144 -0
- package/dist/entities/crossChainDeposit/aggregators/Pendle/index.js.map +1 -0
- package/dist/entities/token/Token.d.ts +4 -0
- package/dist/entities/token/Token.js +12 -0
- package/dist/entities/token/Token.js.map +1 -1
- package/dist/types/common.d.ts +12 -0
- package/dist/utils/signing/index.d.ts +1 -1
- package/dist/utils/signing/index.js +3 -2
- package/dist/utils/signing/index.js.map +1 -1
- package/dist/utils/signing/sensitive.d.ts +2 -1
- package/dist/utils/signing/sensitive.js +25 -0
- package/dist/utils/signing/sensitive.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PendleSwapHelper = exports.PendleSwapResult = void 0;
|
|
10
|
+
const chains_1 = require("viem/chains");
|
|
11
|
+
const addresses_1 = require("../../../../addresses");
|
|
12
|
+
const cacheDecorators_1 = require("../../../../common/cacheDecorators");
|
|
13
|
+
const constants_1 = require("../../../../multicall/constants");
|
|
14
|
+
const Token_1 = require("../../../token/Token");
|
|
15
|
+
const AggregatorHelper_1 = require("../../AggregatorHelper");
|
|
16
|
+
const AggregatorHelperErrors_1 = require("../../AggregatorHelperErrors");
|
|
17
|
+
class PendleSwapResult {
|
|
18
|
+
routes = [];
|
|
19
|
+
rawResult;
|
|
20
|
+
constructor(params) {
|
|
21
|
+
const { req, res, tokenLookupTable } = params;
|
|
22
|
+
const fromToken = tokenLookupTable.get(req.inputs[0].token);
|
|
23
|
+
const toToken = tokenLookupTable.get(req.tokenOut);
|
|
24
|
+
if (fromToken == null) {
|
|
25
|
+
throw new Error(`Token not found: fromToken=${req.inputs[0].token}`);
|
|
26
|
+
}
|
|
27
|
+
if (toToken == null) {
|
|
28
|
+
throw new Error(`Token not found: toToken=${req.tokenOut}`);
|
|
29
|
+
}
|
|
30
|
+
this.routes = [
|
|
31
|
+
{
|
|
32
|
+
id: 'pendle',
|
|
33
|
+
inputTokenAmount: new Token_1.TokenAmount(fromToken, BigInt(req.inputs[0].amount)),
|
|
34
|
+
outputTokenAmount: new Token_1.TokenAmount(toToken, BigInt(res.data.amountOut)),
|
|
35
|
+
minOutputTokenAmount: new Token_1.TokenAmount(toToken, BigInt(res.data.amountOut)).slipDown(req.slippage),
|
|
36
|
+
steps: [
|
|
37
|
+
{
|
|
38
|
+
fromTokenAmount: new Token_1.TokenAmount(fromToken, BigInt(req.inputs[0].amount)),
|
|
39
|
+
toTokenAmount: new Token_1.TokenAmount(toToken, BigInt(res.data.amountOut)),
|
|
40
|
+
executionDuration: 0,
|
|
41
|
+
feeCosts: [],
|
|
42
|
+
gasCosts: [],
|
|
43
|
+
tool: {
|
|
44
|
+
key: 'pendle',
|
|
45
|
+
name: 'Pendle',
|
|
46
|
+
logoURI: 'https://pendle.finance/logo.png',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
this.rawResult = res;
|
|
53
|
+
}
|
|
54
|
+
getAggregatorName() {
|
|
55
|
+
return AggregatorHelper_1.AggregatorName.PENDLE;
|
|
56
|
+
}
|
|
57
|
+
selectRoute() {
|
|
58
|
+
return this.rawResult;
|
|
59
|
+
}
|
|
60
|
+
async getAggregatorCalldata() {
|
|
61
|
+
return {
|
|
62
|
+
aggregatorName: AggregatorHelper_1.AggregatorName.PENDLE,
|
|
63
|
+
approvalAddress: (0, addresses_1.toAddress)(this.rawResult.tx.to),
|
|
64
|
+
calldata: this.rawResult.tx.data,
|
|
65
|
+
value: BigInt(this.rawResult.tx.value ?? '0'),
|
|
66
|
+
from: (0, addresses_1.toAddress)(this.rawResult.tx.from),
|
|
67
|
+
to: (0, addresses_1.toAddress)(this.rawResult.tx.to),
|
|
68
|
+
chainId: chains_1.arbitrum.id,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.PendleSwapResult = PendleSwapResult;
|
|
73
|
+
class PendleSwapHelper {
|
|
74
|
+
pendleV2Sdk;
|
|
75
|
+
borosCoreSdk;
|
|
76
|
+
aggregatorName = AggregatorHelper_1.AggregatorName.PENDLE;
|
|
77
|
+
constructor(pendleV2Sdk, borosCoreSdk) {
|
|
78
|
+
this.pendleV2Sdk = pendleV2Sdk;
|
|
79
|
+
this.borosCoreSdk = borosCoreSdk;
|
|
80
|
+
}
|
|
81
|
+
async getChains() {
|
|
82
|
+
return [
|
|
83
|
+
{
|
|
84
|
+
chainId: chains_1.arbitrum.id,
|
|
85
|
+
name: 'Arbitrum',
|
|
86
|
+
key: 'arbitrum',
|
|
87
|
+
coin: 'ETH',
|
|
88
|
+
logoURI: 'https://raw.githubusercontent.com/lifinance/types/main/src/assets/icons/chains/arbitrum.svg',
|
|
89
|
+
},
|
|
90
|
+
];
|
|
91
|
+
}
|
|
92
|
+
async getTokens() {
|
|
93
|
+
const { data } = await this.borosCoreSdk.assets.assetsControllerGetAllAssets();
|
|
94
|
+
return data.assets.map((asset) => Token_1.Token.createFromBorosCore(asset));
|
|
95
|
+
}
|
|
96
|
+
async getTokenLookupTable() {
|
|
97
|
+
const tokenMap = new Map();
|
|
98
|
+
const tokens = await this.getTokens();
|
|
99
|
+
for (const token of tokens) {
|
|
100
|
+
tokenMap.set(token.address, token);
|
|
101
|
+
}
|
|
102
|
+
return tokenMap;
|
|
103
|
+
}
|
|
104
|
+
async getRouteStatus() {
|
|
105
|
+
return AggregatorHelper_1.AggregatorRouteStatus.NOT_FOUND;
|
|
106
|
+
}
|
|
107
|
+
async quote(params) {
|
|
108
|
+
const req = {
|
|
109
|
+
receiver: params.toAddress,
|
|
110
|
+
inputs: [
|
|
111
|
+
{
|
|
112
|
+
token: params.fromToken,
|
|
113
|
+
amount: params.fromAmount.toString(),
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
tokenOut: params.toToken,
|
|
117
|
+
slippage: params.slippage,
|
|
118
|
+
};
|
|
119
|
+
try {
|
|
120
|
+
const [{ data }, tokenLookupTable] = await Promise.all([
|
|
121
|
+
this.pendleV2Sdk.sdk.sdkControllerPendleSwapV2(params.fromChainId, req),
|
|
122
|
+
this.getTokenLookupTable(),
|
|
123
|
+
]);
|
|
124
|
+
return new PendleSwapResult({ req, res: data, tokenLookupTable });
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
throw (0, AggregatorHelperErrors_1.classifyAggregatorError)(AggregatorHelper_1.AggregatorName.PENDLE, error, [500, 502, 503, 504], 'quote', req, () => undefined);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.PendleSwapHelper = PendleSwapHelper;
|
|
132
|
+
__decorate([
|
|
133
|
+
(0, cacheDecorators_1.GlobalCache)({
|
|
134
|
+
generateLookupKey: () => 'PendleSwapHelper.getTokens',
|
|
135
|
+
ttl_ms: constants_1.MILLISECONDS_IN_A_MINUTE * 10,
|
|
136
|
+
})
|
|
137
|
+
], PendleSwapHelper.prototype, "getTokens", null);
|
|
138
|
+
__decorate([
|
|
139
|
+
(0, cacheDecorators_1.GlobalCache)({
|
|
140
|
+
generateLookupKey: () => 'PendleSwapHelper.getTokenLookupTable',
|
|
141
|
+
ttl_ms: constants_1.MILLISECONDS_IN_A_MINUTE * 10,
|
|
142
|
+
})
|
|
143
|
+
], PendleSwapHelper.prototype, "getTokenLookupTable", null);
|
|
144
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/crossChainDeposit/aggregators/Pendle/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Address } from 'viem';
|
|
2
|
+
import { AssetResponse } from '../../backend/secrettune/BorosCoreSDK';
|
|
2
3
|
import { LifiTokenResponse } from '../crossChainDeposit/aggregators/Lifi/types';
|
|
3
4
|
export declare class Token {
|
|
4
5
|
readonly chainId: number;
|
|
@@ -10,10 +11,13 @@ export declare class Token {
|
|
|
10
11
|
readonly priceUSD?: number | undefined;
|
|
11
12
|
constructor(chainId: number, address: Address, decimals: number, symbol: string, name: string, logoURI?: string | undefined, priceUSD?: number | undefined);
|
|
12
13
|
static createFromLifi(token: LifiTokenResponse): Token;
|
|
14
|
+
static createFromBorosCore(token: AssetResponse): Token;
|
|
13
15
|
}
|
|
14
16
|
export declare class TokenAmount {
|
|
15
17
|
readonly token: Token;
|
|
16
18
|
readonly amount: bigint;
|
|
17
19
|
constructor(token: Token, amount: bigint);
|
|
18
20
|
static createFromLifi(token: LifiTokenResponse, amount: string): TokenAmount;
|
|
21
|
+
static createFromBorosCore(token: AssetResponse, amount: string): TokenAmount;
|
|
22
|
+
slipDown(slippage: number): TokenAmount;
|
|
19
23
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TokenAmount = exports.Token = void 0;
|
|
4
|
+
const boros_offchain_math_1 = require("@pendle/boros-offchain-math");
|
|
5
|
+
const chains_1 = require("viem/chains");
|
|
6
|
+
const addresses_1 = require("../../addresses");
|
|
4
7
|
class Token {
|
|
5
8
|
chainId;
|
|
6
9
|
address;
|
|
@@ -21,6 +24,9 @@ class Token {
|
|
|
21
24
|
static createFromLifi(token) {
|
|
22
25
|
return new Token(token.chainId, token.address, token.decimals, token.symbol, token.name, token.logoURI, token.priceUSD != null ? Number(token.priceUSD) : undefined);
|
|
23
26
|
}
|
|
27
|
+
static createFromBorosCore(token) {
|
|
28
|
+
return new Token(chains_1.arbitrum.id, (0, addresses_1.toAddress)(token.address), token.decimals, token.symbol, token.name, token.metadata.icon, Number(token.usdPrice));
|
|
29
|
+
}
|
|
24
30
|
}
|
|
25
31
|
exports.Token = Token;
|
|
26
32
|
class TokenAmount {
|
|
@@ -33,6 +39,12 @@ class TokenAmount {
|
|
|
33
39
|
static createFromLifi(token, amount) {
|
|
34
40
|
return new TokenAmount(Token.createFromLifi(token), BigInt(amount));
|
|
35
41
|
}
|
|
42
|
+
static createFromBorosCore(token, amount) {
|
|
43
|
+
return new TokenAmount(Token.createFromBorosCore(token), BigInt(amount));
|
|
44
|
+
}
|
|
45
|
+
slipDown(slippage) {
|
|
46
|
+
return new TokenAmount(this.token, boros_offchain_math_1.FixedX18.fromRawValue(this.amount).mulDown(boros_offchain_math_1.FixedX18.fromNumber(1 - slippage)).value);
|
|
47
|
+
}
|
|
36
48
|
}
|
|
37
49
|
exports.TokenAmount = TokenAmount;
|
|
38
50
|
//# sourceMappingURL=Token.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Token.js","sourceRoot":"","sources":["../../../src/entities/token/Token.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Token.js","sourceRoot":"","sources":["../../../src/entities/token/Token.ts"],"names":[],"mappings":";;;AAAA,qEAAuD;AAEvD,wCAAuC;AACvC,+CAA4C;AAI5C,MAAa,KAAK;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;IAPlB,YACkB,OAAe,EACf,OAAgB,EAChB,QAAgB,EAChB,MAAc,EACd,IAAY,EACZ,OAAgB,EAChB,QAAiB;QANjB,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAS;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAChB,aAAQ,GAAR,QAAQ,CAAS;IAChC,CAAC;IAEJ,MAAM,CAAC,cAAc,CAAC,KAAwB;QAC5C,OAAO,IAAI,KAAK,CACd,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,KAAoB;QAC7C,OAAO,IAAI,KAAK,CACd,iBAAQ,CAAC,EAAE,EACX,IAAA,qBAAS,EAAC,KAAK,CAAC,OAAO,CAAC,EACxB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,QAAQ,CAAC,IAAI,EACnB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CACvB,CAAC;IACJ,CAAC;CACF;AAlCD,sBAkCC;AACD,MAAa,WAAW;IAEJ;IACA;IAFlB,YACkB,KAAY,EACZ,MAAc;QADd,UAAK,GAAL,KAAK,CAAO;QACZ,WAAM,GAAN,MAAM,CAAQ;IAC7B,CAAC;IAEJ,MAAM,CAAC,cAAc,CAAC,KAAwB,EAAE,MAAc;QAC5D,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,KAAoB,EAAE,MAAc;QAC7D,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,QAAQ,CAAC,QAAgB;QACvB,OAAO,IAAI,WAAW,CACpB,IAAI,CAAC,KAAK,EACV,8BAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,8BAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CACpF,CAAC;IACJ,CAAC;CACF;AApBD,kCAoBC"}
|
package/dist/types/common.d.ts
CHANGED
|
@@ -76,6 +76,18 @@ export type DepositFromBoxMessage = {
|
|
|
76
76
|
payTreasuryAmount: bigint;
|
|
77
77
|
nonce: bigint;
|
|
78
78
|
};
|
|
79
|
+
export type SwapFromBoxMessage = {
|
|
80
|
+
root: Address;
|
|
81
|
+
boxId: number;
|
|
82
|
+
tokenIn: Address;
|
|
83
|
+
amountIn: bigint;
|
|
84
|
+
tokenOut: Address;
|
|
85
|
+
minOut: bigint;
|
|
86
|
+
swapExecutor: Address;
|
|
87
|
+
swapExtRouter: Address;
|
|
88
|
+
swapCalldata: Hex;
|
|
89
|
+
nonce: bigint;
|
|
90
|
+
};
|
|
79
91
|
export type SetAccManagerStruct = {
|
|
80
92
|
root: Address;
|
|
81
93
|
accountId: number;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { bulkSignWithAgent, bulkSignWithAgentV2, getAgentSignature, signCancelStopOrderRequest, signStopOrderRequest, signUpdateSettings, signWithAgent, type SignedAgentExecution, } from './agent';
|
|
2
2
|
export { hashStopOrderRequest } from './common';
|
|
3
|
-
export { signApproveAgentMessage, signSetAccManagerMessage,
|
|
3
|
+
export { signApproveAgentMessage, signDepositFromBoxMessage, signSetAccManagerMessage, signSwapFromBoxMessage, } from './sensitive';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.signSwapFromBoxMessage = exports.signSetAccManagerMessage = exports.signDepositFromBoxMessage = exports.signApproveAgentMessage = exports.hashStopOrderRequest = exports.signWithAgent = exports.signUpdateSettings = exports.signStopOrderRequest = exports.signCancelStopOrderRequest = exports.getAgentSignature = exports.bulkSignWithAgentV2 = exports.bulkSignWithAgent = void 0;
|
|
4
4
|
var agent_1 = require("./agent");
|
|
5
5
|
Object.defineProperty(exports, "bulkSignWithAgent", { enumerable: true, get: function () { return agent_1.bulkSignWithAgent; } });
|
|
6
6
|
Object.defineProperty(exports, "bulkSignWithAgentV2", { enumerable: true, get: function () { return agent_1.bulkSignWithAgentV2; } });
|
|
@@ -13,6 +13,7 @@ var common_1 = require("./common");
|
|
|
13
13
|
Object.defineProperty(exports, "hashStopOrderRequest", { enumerable: true, get: function () { return common_1.hashStopOrderRequest; } });
|
|
14
14
|
var sensitive_1 = require("./sensitive");
|
|
15
15
|
Object.defineProperty(exports, "signApproveAgentMessage", { enumerable: true, get: function () { return sensitive_1.signApproveAgentMessage; } });
|
|
16
|
-
Object.defineProperty(exports, "signSetAccManagerMessage", { enumerable: true, get: function () { return sensitive_1.signSetAccManagerMessage; } });
|
|
17
16
|
Object.defineProperty(exports, "signDepositFromBoxMessage", { enumerable: true, get: function () { return sensitive_1.signDepositFromBoxMessage; } });
|
|
17
|
+
Object.defineProperty(exports, "signSetAccManagerMessage", { enumerable: true, get: function () { return sensitive_1.signSetAccManagerMessage; } });
|
|
18
|
+
Object.defineProperty(exports, "signSwapFromBoxMessage", { enumerable: true, get: function () { return sensitive_1.signSwapFromBoxMessage; } });
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/signing/index.ts"],"names":[],"mappings":";;;AAAA,iCASiB;AARf,0GAAA,iBAAiB,OAAA;AACjB,4GAAA,mBAAmB,OAAA;AACnB,0GAAA,iBAAiB,OAAA;AACjB,mHAAA,0BAA0B,OAAA;AAC1B,6GAAA,oBAAoB,OAAA;AACpB,2GAAA,kBAAkB,OAAA;AAClB,sGAAA,aAAa,OAAA;AAGf,mCAAgD;AAAvC,8GAAA,oBAAoB,OAAA;AAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/signing/index.ts"],"names":[],"mappings":";;;AAAA,iCASiB;AARf,0GAAA,iBAAiB,OAAA;AACjB,4GAAA,mBAAmB,OAAA;AACnB,0GAAA,iBAAiB,OAAA;AACjB,mHAAA,0BAA0B,OAAA;AAC1B,6GAAA,oBAAoB,OAAA;AACpB,2GAAA,kBAAkB,OAAA;AAClB,sGAAA,aAAa,OAAA;AAGf,mCAAgD;AAAvC,8GAAA,oBAAoB,OAAA;AAC7B,yCAKqB;AAJnB,oHAAA,uBAAuB,OAAA;AACvB,sHAAA,yBAAyB,OAAA;AACzB,qHAAA,wBAAwB,OAAA;AACxB,mHAAA,sBAAsB,OAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { WalletClient } from 'viem';
|
|
2
|
-
import { ApproveAgentMessage, DepositFromBoxMessage, SetAccManagerStruct } from '../../types';
|
|
2
|
+
import { ApproveAgentMessage, DepositFromBoxMessage, SetAccManagerStruct, SwapFromBoxMessage } from '../../types';
|
|
3
3
|
export declare function signSetAccManagerMessage(wallet: WalletClient, message: SetAccManagerStruct): Promise<`0x${string}`>;
|
|
4
4
|
export declare function signApproveAgentMessage(wallet: WalletClient, message: ApproveAgentMessage): Promise<`0x${string}`>;
|
|
5
5
|
export declare function signDepositFromBoxMessage(wallet: WalletClient, message: DepositFromBoxMessage): Promise<`0x${string}`>;
|
|
6
|
+
export declare function signSwapFromBoxMessage(wallet: WalletClient, message: SwapFromBoxMessage): Promise<`0x${string}`>;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.signSetAccManagerMessage = signSetAccManagerMessage;
|
|
4
4
|
exports.signApproveAgentMessage = signApproveAgentMessage;
|
|
5
5
|
exports.signDepositFromBoxMessage = signDepositFromBoxMessage;
|
|
6
|
+
exports.signSwapFromBoxMessage = signSwapFromBoxMessage;
|
|
6
7
|
const __1 = require("..");
|
|
7
8
|
const common_1 = require("./common");
|
|
8
9
|
async function signSetAccManagerMessage(wallet, message) {
|
|
@@ -64,4 +65,28 @@ async function signDepositFromBoxMessage(wallet, message) {
|
|
|
64
65
|
message,
|
|
65
66
|
});
|
|
66
67
|
}
|
|
68
|
+
async function signSwapFromBoxMessage(wallet, message) {
|
|
69
|
+
const account = await (0, __1.getUserAddressFromWalletClient)(wallet);
|
|
70
|
+
return wallet.signTypedData({
|
|
71
|
+
account: wallet.account ?? account,
|
|
72
|
+
domain: (0, common_1.PENDLE_BOROS_ROUTER_DOMAIN)(),
|
|
73
|
+
types: {
|
|
74
|
+
EIP712Domain: common_1.EIP712_DOMAIN_TYPES,
|
|
75
|
+
SwapFromBoxMessage: [
|
|
76
|
+
{ name: 'root', type: 'address' },
|
|
77
|
+
{ name: 'boxId', type: 'uint32' },
|
|
78
|
+
{ name: 'tokenIn', type: 'address' },
|
|
79
|
+
{ name: 'amountIn', type: 'uint256' },
|
|
80
|
+
{ name: 'tokenOut', type: 'address' },
|
|
81
|
+
{ name: 'minOut', type: 'uint256' },
|
|
82
|
+
{ name: 'swapExecutor', type: 'address' },
|
|
83
|
+
{ name: 'swapExtRouter', type: 'address' },
|
|
84
|
+
{ name: 'swapCalldata', type: 'bytes' },
|
|
85
|
+
{ name: 'nonce', type: 'uint64' },
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
primaryType: 'SwapFromBoxMessage',
|
|
89
|
+
message,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
67
92
|
//# sourceMappingURL=sensitive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensitive.js","sourceRoot":"","sources":["../../../src/utils/signing/sensitive.ts"],"names":[],"mappings":";;AAKA,4DAiBC;AAED,0DAkBC;AAED,8DAqBC;
|
|
1
|
+
{"version":3,"file":"sensitive.js","sourceRoot":"","sources":["../../../src/utils/signing/sensitive.ts"],"names":[],"mappings":"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"}
|