@pendle/sdk-boros 1.6.3 → 1.7.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/CHANGELOG.md +24 -0
- package/dist/utils/signing/index.d.ts +1 -1
- package/dist/utils/signing/index.js +2 -1
- package/dist/utils/signing/index.js.map +1 -1
- package/dist/utils/signing/otc.d.ts +12 -25
- package/dist/utils/signing/otc.js +9 -8
- package/dist/utils/signing/otc.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @pendle/sdk-boros
|
|
2
2
|
|
|
3
|
+
## 1.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 95b7dcd: `LockBondMessage` names a `MarketAcc` owner. **Breaking for every bond-lock call site.** The struct is now `{ owner: bytes26, bondId: bytes32, amount: uint256, nonce: uint64 }` — the `account` (bytes21) and `tokenId` (uint16) fields are gone, replaced by the packed `owner`. Typehash is `0x0cb5a769c0ba6739026546b41f822584939cad9f3f81852bdcc7eef3a227f149`.
|
|
8
|
+
|
|
9
|
+
- `signLockBondMessageWithAgent({ owner, bondId, amount, nonce? })` — was `{ account, tokenId, bondId, amount, nonce? }`.
|
|
10
|
+
- `hashLockBondMessage` / the `LockBondMessage` interface / `LOCK_BOND_MESSAGE_TYPES` follow the same shape.
|
|
11
|
+
- New `deriveBondOwner({ root, accountId, tokenId, marketId, cross })` — the bytes26 to sign over.
|
|
12
|
+
|
|
13
|
+
`lockOTCBond` used to force `owner = account.toCross(tokenId)`, so a bond always left the cross account no matter which account signed the trade. The contract applies no cross check any more: the bond is locked from — and released back to — the account the party signed with, cross or isolated. That makes the marketId bits the signer's responsibility, and they must match the `cross` flag in that party's `AcceptOTCFull`; the backend re-derives the same bytes26 and rejects a mismatch as an invalid signature. Use `deriveBondOwner` rather than packing by hand.
|
|
14
|
+
|
|
15
|
+
This is a coordinated cutover with the redesigned OTC module — `lockOTCBond` / `releaseOTCBond` changed selectors, so the new shape only works against the new router.
|
|
16
|
+
|
|
17
|
+
## 1.6.4
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- 90137d0: `ExecuteOTCTradeMessage` drops the bond fields: the struct is back to `{ makerMsgHash, takerMsgHash, expiry }`. **Breaking for anyone building it** — remove `makerBondId`, `makerBondConsume`, `takerBondId` and `takerBondConsume` from every construction site.
|
|
22
|
+
|
|
23
|
+
The on-chain OTC module no longer consumes bonds at execution: both bonds stay locked in full through `executeOTCTrade` and are refunded through `releaseOTCBond`, so the exec message has nothing to say about them. Typehash is `0x4ceb4b24167337a5a4a2ed23139e1da576d47876e937328da7994f1e0c3662a0`.
|
|
24
|
+
|
|
25
|
+
EIP-712 hashes the field **names and types**, so an extra field does not fail to compile against the contract — it produces a silently different typehash, a valid-looking signature, and a revert at execution time. This message is signed by the validator, not by an agent, so a stale copy breaks every OTC/P2P execution rather than one user's action.
|
|
26
|
+
|
|
3
27
|
## 1.6.3
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { advanceHighWaterMark, allocateNonceBase, bulkSignWithAgent, bulkSignWithAgentV2, generateCashSwapNonce, getAgentSignature, signCancelStopOrderRequest, signCancelStopOrderV2Request, signCashSwapMessage, signStopOrderRequest, signUpdateSettings, signWithAgent, type SignedAgentExecution, } from './agent';
|
|
2
2
|
export { createPendleBorosRouterDomain, EIP712_DOMAIN_TYPES, hashStopOrderRequest } from './common';
|
|
3
|
-
export { type OTCTradeReq, type AcceptOTCFullMessage, type ExecuteOTCTradeMessage, type LockBondMessage, type CancelOTCTradeMessage, type P2pDealParams, type P2pOfferParams, OTC_TRADE_REQ_TYPES, ACCEPT_OTC_FULL_MESSAGE_TYPES, EXECUTE_OTC_TRADE_MESSAGE_TYPES, LOCK_BOND_MESSAGE_TYPES, CANCEL_OTC_TRADE_MESSAGE_TYPES, generateOrderSalt, hashAcceptOTCFullMessage, hashLockBondMessage, signAcceptOTCFullMessageWithAgent, signLockBondMessageWithAgent, signCancelOTCTradeMessageWithAgent, buildP2pTrade, computeOtcTradeId, deriveBondId, } from './otc';
|
|
3
|
+
export { type OTCTradeReq, type AcceptOTCFullMessage, type ExecuteOTCTradeMessage, type LockBondMessage, type CancelOTCTradeMessage, type P2pDealParams, type P2pOfferParams, OTC_TRADE_REQ_TYPES, ACCEPT_OTC_FULL_MESSAGE_TYPES, EXECUTE_OTC_TRADE_MESSAGE_TYPES, LOCK_BOND_MESSAGE_TYPES, CANCEL_OTC_TRADE_MESSAGE_TYPES, generateOrderSalt, hashAcceptOTCFullMessage, hashLockBondMessage, signAcceptOTCFullMessageWithAgent, signLockBondMessageWithAgent, signCancelOTCTradeMessageWithAgent, buildP2pTrade, computeOtcTradeId, deriveBondId, deriveBondOwner, } from './otc';
|
|
4
4
|
export { signApproveAgentMessage, signDepositFromBoxMessage, signSetAccManagerMessage, } from './sensitive';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.signSetAccManagerMessage = exports.signDepositFromBoxMessage = exports.signApproveAgentMessage = exports.deriveBondId = exports.computeOtcTradeId = exports.buildP2pTrade = exports.signCancelOTCTradeMessageWithAgent = exports.signLockBondMessageWithAgent = exports.signAcceptOTCFullMessageWithAgent = exports.hashLockBondMessage = exports.hashAcceptOTCFullMessage = exports.generateOrderSalt = exports.CANCEL_OTC_TRADE_MESSAGE_TYPES = exports.LOCK_BOND_MESSAGE_TYPES = exports.EXECUTE_OTC_TRADE_MESSAGE_TYPES = exports.ACCEPT_OTC_FULL_MESSAGE_TYPES = exports.OTC_TRADE_REQ_TYPES = exports.hashStopOrderRequest = exports.EIP712_DOMAIN_TYPES = exports.createPendleBorosRouterDomain = exports.signWithAgent = exports.signUpdateSettings = exports.signStopOrderRequest = exports.signCashSwapMessage = exports.signCancelStopOrderV2Request = exports.signCancelStopOrderRequest = exports.getAgentSignature = exports.generateCashSwapNonce = exports.bulkSignWithAgentV2 = exports.bulkSignWithAgent = exports.allocateNonceBase = exports.advanceHighWaterMark = void 0;
|
|
3
|
+
exports.signSetAccManagerMessage = exports.signDepositFromBoxMessage = exports.signApproveAgentMessage = exports.deriveBondOwner = exports.deriveBondId = exports.computeOtcTradeId = exports.buildP2pTrade = exports.signCancelOTCTradeMessageWithAgent = exports.signLockBondMessageWithAgent = exports.signAcceptOTCFullMessageWithAgent = exports.hashLockBondMessage = exports.hashAcceptOTCFullMessage = exports.generateOrderSalt = exports.CANCEL_OTC_TRADE_MESSAGE_TYPES = exports.LOCK_BOND_MESSAGE_TYPES = exports.EXECUTE_OTC_TRADE_MESSAGE_TYPES = exports.ACCEPT_OTC_FULL_MESSAGE_TYPES = exports.OTC_TRADE_REQ_TYPES = exports.hashStopOrderRequest = exports.EIP712_DOMAIN_TYPES = exports.createPendleBorosRouterDomain = exports.signWithAgent = exports.signUpdateSettings = exports.signStopOrderRequest = exports.signCashSwapMessage = exports.signCancelStopOrderV2Request = exports.signCancelStopOrderRequest = exports.getAgentSignature = exports.generateCashSwapNonce = exports.bulkSignWithAgentV2 = exports.bulkSignWithAgent = exports.allocateNonceBase = exports.advanceHighWaterMark = void 0;
|
|
4
4
|
var agent_1 = require("./agent");
|
|
5
5
|
Object.defineProperty(exports, "advanceHighWaterMark", { enumerable: true, get: function () { return agent_1.advanceHighWaterMark; } });
|
|
6
6
|
Object.defineProperty(exports, "allocateNonceBase", { enumerable: true, get: function () { return agent_1.allocateNonceBase; } });
|
|
@@ -33,6 +33,7 @@ Object.defineProperty(exports, "signCancelOTCTradeMessageWithAgent", { enumerabl
|
|
|
33
33
|
Object.defineProperty(exports, "buildP2pTrade", { enumerable: true, get: function () { return otc_1.buildP2pTrade; } });
|
|
34
34
|
Object.defineProperty(exports, "computeOtcTradeId", { enumerable: true, get: function () { return otc_1.computeOtcTradeId; } });
|
|
35
35
|
Object.defineProperty(exports, "deriveBondId", { enumerable: true, get: function () { return otc_1.deriveBondId; } });
|
|
36
|
+
Object.defineProperty(exports, "deriveBondOwner", { enumerable: true, get: function () { return otc_1.deriveBondOwner; } });
|
|
36
37
|
var sensitive_1 = require("./sensitive");
|
|
37
38
|
Object.defineProperty(exports, "signApproveAgentMessage", { enumerable: true, get: function () { return sensitive_1.signApproveAgentMessage; } });
|
|
38
39
|
Object.defineProperty(exports, "signDepositFromBoxMessage", { enumerable: true, get: function () { return sensitive_1.signDepositFromBoxMessage; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/signing/index.ts"],"names":[],"mappings":";;;AAAA,iCAciB;AAbf,6GAAA,oBAAoB,OAAA;AACpB,0GAAA,iBAAiB,OAAA;AACjB,0GAAA,iBAAiB,OAAA;AACjB,4GAAA,mBAAmB,OAAA;AACnB,8GAAA,qBAAqB,OAAA;AACrB,0GAAA,iBAAiB,OAAA;AACjB,mHAAA,0BAA0B,OAAA;AAC1B,qHAAA,4BAA4B,OAAA;AAC5B,4GAAA,mBAAmB,OAAA;AACnB,6GAAA,oBAAoB,OAAA;AACpB,2GAAA,kBAAkB,OAAA;AAClB,sGAAA,aAAa,OAAA;AAGf,mCAAoG;AAA3F,uHAAA,6BAA6B,OAAA;AAAE,6GAAA,mBAAmB,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AACjF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/signing/index.ts"],"names":[],"mappings":";;;AAAA,iCAciB;AAbf,6GAAA,oBAAoB,OAAA;AACpB,0GAAA,iBAAiB,OAAA;AACjB,0GAAA,iBAAiB,OAAA;AACjB,4GAAA,mBAAmB,OAAA;AACnB,8GAAA,qBAAqB,OAAA;AACrB,0GAAA,iBAAiB,OAAA;AACjB,mHAAA,0BAA0B,OAAA;AAC1B,qHAAA,4BAA4B,OAAA;AAC5B,4GAAA,mBAAmB,OAAA;AACnB,6GAAA,oBAAoB,OAAA;AACpB,2GAAA,kBAAkB,OAAA;AAClB,sGAAA,aAAa,OAAA;AAGf,mCAAoG;AAA3F,uHAAA,6BAA6B,OAAA;AAAE,6GAAA,mBAAmB,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AACjF,6BAuBe;AAfb,0GAAA,mBAAmB,OAAA;AACnB,oHAAA,6BAA6B,OAAA;AAC7B,sHAAA,+BAA+B,OAAA;AAC/B,8GAAA,uBAAuB,OAAA;AACvB,qHAAA,8BAA8B,OAAA;AAC9B,wGAAA,iBAAiB,OAAA;AACjB,+GAAA,wBAAwB,OAAA;AACxB,0GAAA,mBAAmB,OAAA;AACnB,wHAAA,iCAAiC,OAAA;AACjC,mHAAA,4BAA4B,OAAA;AAC5B,yHAAA,kCAAkC,OAAA;AAClC,oGAAA,aAAa,OAAA;AACb,wGAAA,iBAAiB,OAAA;AACjB,mGAAA,YAAY,OAAA;AACZ,sGAAA,eAAe,OAAA;AAEjB,yCAIqB;AAHnB,oHAAA,uBAAuB,OAAA;AACvB,sHAAA,yBAAyB,OAAA;AACzB,qHAAA,wBAAwB,OAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Address, Hex } from 'viem';
|
|
2
|
+
import { MarketAcc, MarketId, TokenId } from '../../types';
|
|
2
3
|
export declare function generateOrderSalt(): bigint;
|
|
3
4
|
export declare const OTC_TRADE_REQ_TYPES: readonly [{
|
|
4
5
|
readonly name: "marketId";
|
|
@@ -35,31 +36,16 @@ export declare const ACCEPT_OTC_FULL_MESSAGE_TYPES: readonly [{
|
|
|
35
36
|
export declare const EXECUTE_OTC_TRADE_MESSAGE_TYPES: readonly [{
|
|
36
37
|
readonly name: "makerMsgHash";
|
|
37
38
|
readonly type: "bytes32";
|
|
38
|
-
}, {
|
|
39
|
-
readonly name: "makerBondId";
|
|
40
|
-
readonly type: "bytes32";
|
|
41
|
-
}, {
|
|
42
|
-
readonly name: "makerBondConsume";
|
|
43
|
-
readonly type: "uint256";
|
|
44
39
|
}, {
|
|
45
40
|
readonly name: "takerMsgHash";
|
|
46
41
|
readonly type: "bytes32";
|
|
47
|
-
}, {
|
|
48
|
-
readonly name: "takerBondId";
|
|
49
|
-
readonly type: "bytes32";
|
|
50
|
-
}, {
|
|
51
|
-
readonly name: "takerBondConsume";
|
|
52
|
-
readonly type: "uint256";
|
|
53
42
|
}, {
|
|
54
43
|
readonly name: "expiry";
|
|
55
44
|
readonly type: "uint64";
|
|
56
45
|
}];
|
|
57
46
|
export declare const LOCK_BOND_MESSAGE_TYPES: readonly [{
|
|
58
|
-
readonly name: "
|
|
59
|
-
readonly type: "
|
|
60
|
-
}, {
|
|
61
|
-
readonly name: "tokenId";
|
|
62
|
-
readonly type: "uint16";
|
|
47
|
+
readonly name: "owner";
|
|
48
|
+
readonly type: "bytes26";
|
|
63
49
|
}, {
|
|
64
50
|
readonly name: "bondId";
|
|
65
51
|
readonly type: "bytes32";
|
|
@@ -86,16 +72,11 @@ export interface AcceptOTCFullMessage {
|
|
|
86
72
|
}
|
|
87
73
|
export interface ExecuteOTCTradeMessage {
|
|
88
74
|
makerMsgHash: Hex;
|
|
89
|
-
makerBondId: Hex;
|
|
90
|
-
makerBondConsume: bigint;
|
|
91
75
|
takerMsgHash: Hex;
|
|
92
|
-
takerBondId: Hex;
|
|
93
|
-
takerBondConsume: bigint;
|
|
94
76
|
expiry: bigint;
|
|
95
77
|
}
|
|
96
78
|
export interface LockBondMessage {
|
|
97
|
-
|
|
98
|
-
tokenId: number;
|
|
79
|
+
owner: MarketAcc;
|
|
99
80
|
bondId: Hex;
|
|
100
81
|
amount: bigint;
|
|
101
82
|
nonce: bigint;
|
|
@@ -119,8 +100,7 @@ export declare function signAcceptOTCFullMessageWithAgent(params: {
|
|
|
119
100
|
}>;
|
|
120
101
|
export declare function hashLockBondMessage(message: LockBondMessage, routerAddress?: Address, chainId?: number): Hex;
|
|
121
102
|
export declare function signLockBondMessageWithAgent(params: {
|
|
122
|
-
|
|
123
|
-
tokenId: number;
|
|
103
|
+
owner: MarketAcc;
|
|
124
104
|
bondId: Hex;
|
|
125
105
|
amount: bigint;
|
|
126
106
|
nonce?: bigint;
|
|
@@ -150,6 +130,13 @@ export declare function computeOtcTradeId(trade: {
|
|
|
150
130
|
salt: bigint | string;
|
|
151
131
|
}): Hex;
|
|
152
132
|
export declare function deriveBondId(account: Address, salt: bigint): Hex;
|
|
133
|
+
export declare function deriveBondOwner(params: {
|
|
134
|
+
root: Address;
|
|
135
|
+
accountId: number;
|
|
136
|
+
tokenId: TokenId;
|
|
137
|
+
marketId: MarketId;
|
|
138
|
+
cross: boolean;
|
|
139
|
+
}): MarketAcc;
|
|
153
140
|
export declare function signCancelOTCTradeMessageWithAgent(params: {
|
|
154
141
|
tradeId: Hex;
|
|
155
142
|
}): Promise<{
|
|
@@ -9,10 +9,13 @@ exports.signLockBondMessageWithAgent = signLockBondMessageWithAgent;
|
|
|
9
9
|
exports.buildP2pTrade = buildP2pTrade;
|
|
10
10
|
exports.computeOtcTradeId = computeOtcTradeId;
|
|
11
11
|
exports.deriveBondId = deriveBondId;
|
|
12
|
+
exports.deriveBondOwner = deriveBondOwner;
|
|
12
13
|
exports.signCancelOTCTradeMessageWithAgent = signCancelOTCTradeMessageWithAgent;
|
|
13
14
|
const node_crypto_1 = require("node:crypto");
|
|
14
15
|
const viem_1 = require("viem");
|
|
16
|
+
const constants_1 = require("../../constants");
|
|
15
17
|
const entities_1 = require("../../entities");
|
|
18
|
+
const accountLib_1 = require("../accountLib");
|
|
16
19
|
const agent_1 = require("./agent");
|
|
17
20
|
const common_1 = require("./common");
|
|
18
21
|
function generateOrderSalt() {
|
|
@@ -35,16 +38,11 @@ exports.ACCEPT_OTC_FULL_MESSAGE_TYPES = [
|
|
|
35
38
|
];
|
|
36
39
|
exports.EXECUTE_OTC_TRADE_MESSAGE_TYPES = [
|
|
37
40
|
{ name: 'makerMsgHash', type: 'bytes32' },
|
|
38
|
-
{ name: 'makerBondId', type: 'bytes32' },
|
|
39
|
-
{ name: 'makerBondConsume', type: 'uint256' },
|
|
40
41
|
{ name: 'takerMsgHash', type: 'bytes32' },
|
|
41
|
-
{ name: 'takerBondId', type: 'bytes32' },
|
|
42
|
-
{ name: 'takerBondConsume', type: 'uint256' },
|
|
43
42
|
{ name: 'expiry', type: 'uint64' },
|
|
44
43
|
];
|
|
45
44
|
exports.LOCK_BOND_MESSAGE_TYPES = [
|
|
46
|
-
{ name: '
|
|
47
|
-
{ name: 'tokenId', type: 'uint16' },
|
|
45
|
+
{ name: 'owner', type: 'bytes26' },
|
|
48
46
|
{ name: 'bondId', type: 'bytes32' },
|
|
49
47
|
{ name: 'amount', type: 'uint256' },
|
|
50
48
|
{ name: 'nonce', type: 'uint64' },
|
|
@@ -122,8 +120,7 @@ async function signLockBondMessageWithAgent(params) {
|
|
|
122
120
|
},
|
|
123
121
|
primaryType: 'LockBondMessage',
|
|
124
122
|
message: {
|
|
125
|
-
|
|
126
|
-
tokenId: params.tokenId,
|
|
123
|
+
owner: params.owner,
|
|
127
124
|
bondId: params.bondId,
|
|
128
125
|
amount: params.amount,
|
|
129
126
|
nonce,
|
|
@@ -157,6 +154,10 @@ function computeOtcTradeId(trade) {
|
|
|
157
154
|
function deriveBondId(account, salt) {
|
|
158
155
|
return (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('address account, uint256 salt'), [account, salt]));
|
|
159
156
|
}
|
|
157
|
+
function deriveBondOwner(params) {
|
|
158
|
+
const { root, accountId, tokenId, marketId, cross } = params;
|
|
159
|
+
return accountLib_1.MarketAccLib.pack(root, accountId, tokenId, cross ? constants_1.CROSS_MARKET_ID : marketId);
|
|
160
|
+
}
|
|
160
161
|
async function signCancelOTCTradeMessageWithAgent(params) {
|
|
161
162
|
const agent = (0, entities_1.getInternalAgent)();
|
|
162
163
|
const agentAddress = await agent.getAddress();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otc.js","sourceRoot":"","sources":["../../../src/utils/signing/otc.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"otc.js","sourceRoot":"","sources":["../../../src/utils/signing/otc.ts"],"names":[],"mappings":"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"}
|