@pendle/sdk-boros 1.6.4 → 1.7.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/CHANGELOG.md +32 -0
- package/dist/entities/Calculator/marginCalculator.d.ts +6 -3
- package/dist/entities/Calculator/marginCalculator.js +17 -14
- package/dist/entities/Calculator/marginCalculator.js.map +1 -1
- 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 -9
- package/dist/utils/signing/otc.js +9 -4
- package/dist/utils/signing/otc.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @pendle/sdk-boros
|
|
2
2
|
|
|
3
|
+
## 1.7.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6efb777: The leverage-free V2 margin helpers accept an optional `kIM` override, so a caller can price a position at an account's **personal kIM** instead of the market-global one.
|
|
8
|
+
|
|
9
|
+
- `getMarginRequiredFor1YUV2(market, kIM?: bigint)`
|
|
10
|
+
- `getMarginRequiredFor1YUFixedX18V2(market, kIM?: bigint)`
|
|
11
|
+
- `getStrategyMarginRequirementsV2(long, short, kIM?: { long?: bigint; short?: bigint })`
|
|
12
|
+
|
|
13
|
+
`kIM` is a raw FixedX18 value, the same domain as `market.config.kIM` — feed it straight from `GET /apis/v1/accounts/margin-config`, which returns one entry per market where a personal override is set. Omit it (or omit a leg) for the market-global figure; every existing call site is unaffected.
|
|
14
|
+
|
|
15
|
+
Without this, the only way to reach the margin factor was to hand the SDK a `MarketResponse` whose `config.kIM` had been swapped out — an object that then lies about the market to everything else reading it (`getStrategyFees`, `calculateAprTimesMaxLeverage`, and any UI rendering the market's published risk params).
|
|
16
|
+
|
|
17
|
+
A non-positive override falls back to the market value: a personal kIM only ever ratchets the global one up, so `0n` is a caller bug, not a request to price at zero margin.
|
|
18
|
+
|
|
19
|
+
The deprecated V1 helpers are deliberately left alone — they carry a `leverage` knob that V2 dropped, and leverage on Boros is a cosmetic `1/kIM` echo, not a contract input.
|
|
20
|
+
|
|
21
|
+
## 1.7.0
|
|
22
|
+
|
|
23
|
+
### Minor Changes
|
|
24
|
+
|
|
25
|
+
- 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`.
|
|
26
|
+
|
|
27
|
+
- `signLockBondMessageWithAgent({ owner, bondId, amount, nonce? })` — was `{ account, tokenId, bondId, amount, nonce? }`.
|
|
28
|
+
- `hashLockBondMessage` / the `LockBondMessage` interface / `LOCK_BOND_MESSAGE_TYPES` follow the same shape.
|
|
29
|
+
- New `deriveBondOwner({ root, accountId, tokenId, marketId, cross })` — the bytes26 to sign over.
|
|
30
|
+
|
|
31
|
+
`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.
|
|
32
|
+
|
|
33
|
+
This is a coordinated cutover with the redesigned OTC module — `lockOTCBond` / `releaseOTCBond` changed selectors, so the new shape only works against the new router.
|
|
34
|
+
|
|
3
35
|
## 1.6.4
|
|
4
36
|
|
|
5
37
|
### Patch Changes
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { FixedX18 } from '@pendle/boros-offchain-math';
|
|
2
2
|
import type { MarketResponse } from '../../backend/secrettune/BorosCoreSDK';
|
|
3
3
|
export declare function getMarginRequiredFor1YU(market: MarketResponse, leverage?: number): number;
|
|
4
|
-
export declare function getMarginRequiredFor1YUV2(market: MarketResponse): number;
|
|
4
|
+
export declare function getMarginRequiredFor1YUV2(market: MarketResponse, kIM?: bigint): number;
|
|
5
5
|
export declare function getMarginRequiredFor1YUFixedX18(market: MarketResponse, leverage?: number): FixedX18;
|
|
6
|
-
export declare function getMarginRequiredFor1YUFixedX18V2(market: MarketResponse): FixedX18;
|
|
6
|
+
export declare function getMarginRequiredFor1YUFixedX18V2(market: MarketResponse, kIM?: bigint): FixedX18;
|
|
7
7
|
export declare function getStrategyBorosMargin(longMarket: MarketResponse, shortMarket: MarketResponse, leverage?: number): number;
|
|
8
8
|
export declare function getStrategyMarginRequirements(longMarket: MarketResponse, shortMarket: MarketResponse, leverage?: {
|
|
9
9
|
longLeverage?: number;
|
|
@@ -13,7 +13,10 @@ export declare function getStrategyMarginRequirements(longMarket: MarketResponse
|
|
|
13
13
|
marginRequired2: number;
|
|
14
14
|
totalBorosMargin: number;
|
|
15
15
|
};
|
|
16
|
-
export declare function getStrategyMarginRequirementsV2(longMarket: MarketResponse, shortMarket: MarketResponse
|
|
16
|
+
export declare function getStrategyMarginRequirementsV2(longMarket: MarketResponse, shortMarket: MarketResponse, kIM?: {
|
|
17
|
+
long?: bigint;
|
|
18
|
+
short?: bigint;
|
|
19
|
+
}): {
|
|
17
20
|
marginRequired1: number;
|
|
18
21
|
marginRequired2: number;
|
|
19
22
|
totalBorosMargin: number;
|
|
@@ -12,11 +12,16 @@ const market_1 = require("../market/market");
|
|
|
12
12
|
const DEFAULT_MIN_MARGIN_INDEX_RATE = boros_offchain_math_1.FixedX18.fromNumber(0.1);
|
|
13
13
|
const DEFAULT_MIN_MARGIN_INDEX_DURATION_S = 604800;
|
|
14
14
|
const ONE_YU = 10n ** 18n;
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
function resolveMarginFactor(market, kIM) {
|
|
16
|
+
if (kIM !== undefined && kIM > 0n)
|
|
17
|
+
return boros_offchain_math_1.FixedX18.fromRawValue(kIM);
|
|
18
|
+
return market.config.kIM
|
|
18
19
|
? boros_offchain_math_1.FixedX18.fromRawValue(BigInt(market.config.kIM))
|
|
19
20
|
: boros_offchain_math_1.FixedX18.fromNumber(0.5);
|
|
21
|
+
}
|
|
22
|
+
function extractMarketParams(market, leverage) {
|
|
23
|
+
const effectiveLeverage = leverage ?? market.metadata?.maxLeverage ?? 1;
|
|
24
|
+
const marginFactor = resolveMarginFactor(market);
|
|
20
25
|
const minMarginIndexDuration_s = market.config.tThresh ?? DEFAULT_MIN_MARGIN_INDEX_DURATION_S;
|
|
21
26
|
const timeToMaturity = market.data?.timeToMaturity ??
|
|
22
27
|
Math.max(0, market.imData.maturity - Math.floor(Date.now() / 1000));
|
|
@@ -34,10 +39,8 @@ function extractMarketParams(market, leverage) {
|
|
|
34
39
|
isMarketOrder: true,
|
|
35
40
|
};
|
|
36
41
|
}
|
|
37
|
-
function extractMarketParamsV2(market) {
|
|
38
|
-
const marginFactor = market
|
|
39
|
-
? boros_offchain_math_1.FixedX18.fromRawValue(BigInt(market.config.kIM))
|
|
40
|
-
: boros_offchain_math_1.FixedX18.fromNumber(0.5);
|
|
42
|
+
function extractMarketParamsV2(market, kIM) {
|
|
43
|
+
const marginFactor = resolveMarginFactor(market, kIM);
|
|
41
44
|
const minMarginIndexDuration_s = market.config.tThresh ?? DEFAULT_MIN_MARGIN_INDEX_DURATION_S;
|
|
42
45
|
const timeToMaturity = market.data?.timeToMaturity ??
|
|
43
46
|
Math.max(0, market.imData.maturity - Math.floor(Date.now() / 1000));
|
|
@@ -62,9 +65,9 @@ function getMarginRequiredFor1YU(market, leverage) {
|
|
|
62
65
|
}, false);
|
|
63
66
|
return Number(marginBigInt) / 1e18;
|
|
64
67
|
}
|
|
65
|
-
function getMarginRequiredFor1YUV2(market) {
|
|
68
|
+
function getMarginRequiredFor1YUV2(market, kIM) {
|
|
66
69
|
const marginBigInt = market_1.Market.getInitialMarginByOrderSizeV2({
|
|
67
|
-
...extractMarketParamsV2(market),
|
|
70
|
+
...extractMarketParamsV2(market, kIM),
|
|
68
71
|
orderSize: ONE_YU,
|
|
69
72
|
});
|
|
70
73
|
return Number(marginBigInt) / 1e18;
|
|
@@ -77,9 +80,9 @@ function getMarginRequiredFor1YUFixedX18(market, leverage) {
|
|
|
77
80
|
}, false);
|
|
78
81
|
return boros_offchain_math_1.FixedX18.fromRawValue(marginBigInt);
|
|
79
82
|
}
|
|
80
|
-
function getMarginRequiredFor1YUFixedX18V2(market) {
|
|
83
|
+
function getMarginRequiredFor1YUFixedX18V2(market, kIM) {
|
|
81
84
|
const marginBigInt = market_1.Market.getInitialMarginByOrderSizeV2({
|
|
82
|
-
...extractMarketParamsV2(market),
|
|
85
|
+
...extractMarketParamsV2(market, kIM),
|
|
83
86
|
orderSize: ONE_YU,
|
|
84
87
|
});
|
|
85
88
|
return boros_offchain_math_1.FixedX18.fromRawValue(marginBigInt);
|
|
@@ -98,9 +101,9 @@ function getStrategyMarginRequirements(longMarket, shortMarket, leverage) {
|
|
|
98
101
|
totalBorosMargin: marginRequired1 + marginRequired2,
|
|
99
102
|
};
|
|
100
103
|
}
|
|
101
|
-
function getStrategyMarginRequirementsV2(longMarket, shortMarket) {
|
|
102
|
-
const marginRequired1 = getMarginRequiredFor1YUV2(longMarket);
|
|
103
|
-
const marginRequired2 = getMarginRequiredFor1YUV2(shortMarket);
|
|
104
|
+
function getStrategyMarginRequirementsV2(longMarket, shortMarket, kIM) {
|
|
105
|
+
const marginRequired1 = getMarginRequiredFor1YUV2(longMarket, kIM?.long);
|
|
106
|
+
const marginRequired2 = getMarginRequiredFor1YUV2(shortMarket, kIM?.short);
|
|
104
107
|
return {
|
|
105
108
|
marginRequired1,
|
|
106
109
|
marginRequired2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marginCalculator.js","sourceRoot":"","sources":["../../../src/entities/Calculator/marginCalculator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"marginCalculator.js","sourceRoot":"","sources":["../../../src/entities/Calculator/marginCalculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -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";
|
|
@@ -43,11 +44,8 @@ export declare const EXECUTE_OTC_TRADE_MESSAGE_TYPES: readonly [{
|
|
|
43
44
|
readonly type: "uint64";
|
|
44
45
|
}];
|
|
45
46
|
export declare const LOCK_BOND_MESSAGE_TYPES: readonly [{
|
|
46
|
-
readonly name: "
|
|
47
|
-
readonly type: "
|
|
48
|
-
}, {
|
|
49
|
-
readonly name: "tokenId";
|
|
50
|
-
readonly type: "uint16";
|
|
47
|
+
readonly name: "owner";
|
|
48
|
+
readonly type: "bytes26";
|
|
51
49
|
}, {
|
|
52
50
|
readonly name: "bondId";
|
|
53
51
|
readonly type: "bytes32";
|
|
@@ -78,8 +76,7 @@ export interface ExecuteOTCTradeMessage {
|
|
|
78
76
|
expiry: bigint;
|
|
79
77
|
}
|
|
80
78
|
export interface LockBondMessage {
|
|
81
|
-
|
|
82
|
-
tokenId: number;
|
|
79
|
+
owner: MarketAcc;
|
|
83
80
|
bondId: Hex;
|
|
84
81
|
amount: bigint;
|
|
85
82
|
nonce: bigint;
|
|
@@ -103,8 +100,7 @@ export declare function signAcceptOTCFullMessageWithAgent(params: {
|
|
|
103
100
|
}>;
|
|
104
101
|
export declare function hashLockBondMessage(message: LockBondMessage, routerAddress?: Address, chainId?: number): Hex;
|
|
105
102
|
export declare function signLockBondMessageWithAgent(params: {
|
|
106
|
-
|
|
107
|
-
tokenId: number;
|
|
103
|
+
owner: MarketAcc;
|
|
108
104
|
bondId: Hex;
|
|
109
105
|
amount: bigint;
|
|
110
106
|
nonce?: bigint;
|
|
@@ -134,6 +130,13 @@ export declare function computeOtcTradeId(trade: {
|
|
|
134
130
|
salt: bigint | string;
|
|
135
131
|
}): Hex;
|
|
136
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;
|
|
137
140
|
export declare function signCancelOTCTradeMessageWithAgent(params: {
|
|
138
141
|
tradeId: Hex;
|
|
139
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() {
|
|
@@ -39,8 +42,7 @@ exports.EXECUTE_OTC_TRADE_MESSAGE_TYPES = [
|
|
|
39
42
|
{ name: 'expiry', type: 'uint64' },
|
|
40
43
|
];
|
|
41
44
|
exports.LOCK_BOND_MESSAGE_TYPES = [
|
|
42
|
-
{ name: '
|
|
43
|
-
{ name: 'tokenId', type: 'uint16' },
|
|
45
|
+
{ name: 'owner', type: 'bytes26' },
|
|
44
46
|
{ name: 'bondId', type: 'bytes32' },
|
|
45
47
|
{ name: 'amount', type: 'uint256' },
|
|
46
48
|
{ name: 'nonce', type: 'uint64' },
|
|
@@ -118,8 +120,7 @@ async function signLockBondMessageWithAgent(params) {
|
|
|
118
120
|
},
|
|
119
121
|
primaryType: 'LockBondMessage',
|
|
120
122
|
message: {
|
|
121
|
-
|
|
122
|
-
tokenId: params.tokenId,
|
|
123
|
+
owner: params.owner,
|
|
123
124
|
bondId: params.bondId,
|
|
124
125
|
amount: params.amount,
|
|
125
126
|
nonce,
|
|
@@ -153,6 +154,10 @@ function computeOtcTradeId(trade) {
|
|
|
153
154
|
function deriveBondId(account, salt) {
|
|
154
155
|
return (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('address account, uint256 salt'), [account, salt]));
|
|
155
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
|
+
}
|
|
156
161
|
async function signCancelOTCTradeMessageWithAgent(params) {
|
|
157
162
|
const agent = (0, entities_1.getInternalAgent)();
|
|
158
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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"}
|