@pendle/sdk-boros 0.0.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.
Files changed (38) hide show
  1. package/README.md +1 -0
  2. package/dist/constants.d.ts +5 -0
  3. package/dist/constants.js +9 -0
  4. package/dist/constants.js.map +1 -0
  5. package/dist/contracts/viem-abis.d.ts +8692 -0
  6. package/dist/contracts/viem-abis.js +5353 -0
  7. package/dist/contracts/viem-abis.js.map +1 -0
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.js +19 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/types/common.d.ts +6 -0
  12. package/dist/types/common.js +3 -0
  13. package/dist/types/common.js.map +1 -0
  14. package/dist/types/contractStructs.d.ts +40 -0
  15. package/dist/types/contractStructs.js +11 -0
  16. package/dist/types/contractStructs.js.map +1 -0
  17. package/dist/types/index.d.ts +2 -0
  18. package/dist/types/index.js +19 -0
  19. package/dist/types/index.js.map +1 -0
  20. package/dist/utils/accountLib.d.ts +19 -0
  21. package/dist/utils/accountLib.js +53 -0
  22. package/dist/utils/accountLib.js.map +1 -0
  23. package/dist/utils/index.d.ts +3 -0
  24. package/dist/utils/index.js +31 -0
  25. package/dist/utils/index.js.map +1 -0
  26. package/dist/utils/signing/agent.d.ts +22 -0
  27. package/dist/utils/signing/agent.js +51 -0
  28. package/dist/utils/signing/agent.js.map +1 -0
  29. package/dist/utils/signing/common.d.ts +19 -0
  30. package/dist/utils/signing/common.js +17 -0
  31. package/dist/utils/signing/common.js.map +1 -0
  32. package/dist/utils/signing/index.d.ts +2 -0
  33. package/dist/utils/signing/index.js +9 -0
  34. package/dist/utils/signing/index.js.map +1 -0
  35. package/dist/utils/signing/sensitive.d.ts +4 -0
  36. package/dist/utils/signing/sensitive.js +41 -0
  37. package/dist/utils/signing/sensitive.js.map +1 -0
  38. package/package.json +29 -0
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.sendTx = sendTx;
18
+ __exportStar(require("./signing"), exports);
19
+ const constants_1 = require("../constants");
20
+ async function sendTx(walletClient, calldata) {
21
+ const [account] = await walletClient.getAddresses();
22
+ const txHash = await walletClient.sendTransaction({
23
+ account,
24
+ to: constants_1.ROUTER_ADDRESS,
25
+ data: calldata,
26
+ value: 0n,
27
+ chain: walletClient.chain,
28
+ });
29
+ return txHash;
30
+ }
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,wBAYC;AAjBD,4CAA0B;AAG1B,4CAA8C;AAEvC,KAAK,UAAU,MAAM,CAAC,YAA0B,EAAE,QAAa;IACpE,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,YAAY,CAAC,YAAY,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC;QAChD,OAAO;QACP,EAAE,EAAE,0BAAc;QAClB,IAAI,EAAE,QAAQ;QAEd,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,YAAY,CAAC,KAAK;KAC1B,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Address, Hex } from 'viem';
2
+ import { CancelStruct, OrderStruct, PendleSignTxStruct } from '../../types';
3
+ export declare const ACTION_INPUT_NAME_MAP: {
4
+ placeOrders: string;
5
+ cancelOrders: string;
6
+ };
7
+ export type AgentAction = {
8
+ tag: 'placeOrders';
9
+ value: OrderStruct[];
10
+ } | {
11
+ tag: 'cancelOrders';
12
+ value: CancelStruct[];
13
+ };
14
+ export declare function signWithAgent<T extends AgentAction>(params: {
15
+ root: Address;
16
+ accountId: number;
17
+ contractParams: T;
18
+ }): Promise<{
19
+ message: PendleSignTxStruct;
20
+ signature: Hex;
21
+ value: T['value'];
22
+ }>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ACTION_INPUT_NAME_MAP = void 0;
4
+ exports.signWithAgent = signWithAgent;
5
+ const viem_1 = require("viem");
6
+ const accounts_1 = require("viem/accounts");
7
+ const constants_1 = require("../../constants");
8
+ const viem_abis_1 = require("../../contracts/viem-abis");
9
+ const accountLib_1 = require("../accountLib");
10
+ const common_1 = require("./common");
11
+ exports.ACTION_INPUT_NAME_MAP = {
12
+ placeOrders: 'orders',
13
+ cancelOrders: 'cancels',
14
+ };
15
+ async function signWithAgent(params) {
16
+ const { root, accountId, contractParams } = params;
17
+ const primaryInput = (0, viem_1.getAbiItem)({
18
+ abi: viem_abis_1.iAuthModuleAbi,
19
+ name: contractParams.tag,
20
+ }).inputs;
21
+ const primaryType = primaryInput.find((item) => item.name === exports.ACTION_INPUT_NAME_MAP[contractParams.tag]);
22
+ const signer = (0, viem_1.createWalletClient)({
23
+ account: (0, accounts_1.privateKeyToAccount)(constants_1.AGENT_PRIVATE_KEY),
24
+ transport: (0, viem_1.http)(constants_1.RPC_URL),
25
+ });
26
+ const pendleSignTxType = (0, viem_1.getAbiItem)({
27
+ abi: viem_abis_1.iAuthModuleAbi,
28
+ name: 'hashPendleSignTx',
29
+ }).inputs.find((item) => item.name === 'message').components;
30
+ const message = {
31
+ account: accountLib_1.AccountLib.pack(root, accountId),
32
+ connectionId: (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([primaryType], [contractParams.value])),
33
+ nonce: BigInt(Date.now()),
34
+ };
35
+ const signature = await signer.signTypedData({
36
+ account: (0, accounts_1.privateKeyToAccount)(constants_1.AGENT_PRIVATE_KEY),
37
+ domain: common_1.PENDLE_BOROS_ROUTER_DOMAIN,
38
+ types: {
39
+ EIP712Domain: common_1.EIP712_DOMAIN_TYPES,
40
+ PendleSignTx: pendleSignTxType,
41
+ },
42
+ primaryType: 'PendleSignTx',
43
+ message,
44
+ });
45
+ return {
46
+ message,
47
+ signature,
48
+ value: contractParams.value,
49
+ };
50
+ }
51
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/utils/signing/agent.ts"],"names":[],"mappings":";;;AAwBA,sCAoDC;AA5ED,+BAA0G;AAC1G,4CAAoD;AACpD,+CAA6D;AAC7D,yDAA2D;AAE3D,8CAA2C;AAC3C,qCAA2E;AAE9D,QAAA,qBAAqB,GAAG;IACnC,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,SAAS;CACxB,CAAC;AAaK,KAAK,UAAU,aAAa,CAAwB,MAI1D;IAKC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAEnD,MAAM,YAAY,GAChB,IAAA,iBAAU,EAAC;QACT,GAAG,EAAE,0BAAc;QACnB,IAAI,EAAE,cAAc,CAAC,GAAG;KACzB,CACF,CAAC,MAAM,CAAC;IAET,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,6BAAqB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAE,CAAC;IAE/G,MAAM,MAAM,GAAG,IAAA,yBAAkB,EAAC;QAChC,OAAO,EAAE,IAAA,8BAAmB,EAAC,6BAAwB,CAAC;QACtD,SAAS,EAAE,IAAA,WAAI,EAAC,mBAAO,CAAC;KACzB,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAA,iBAAU,EAAC;QAClC,GAAG,EAAE,0BAAc;QACnB,IAAI,EAAE,kBAAkB;KACzB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAE,CAAC,UAAU,CAAC;IAE9D,MAAM,OAAO,GAAuB;QAClC,OAAO,EAAE,uBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;QACzC,YAAY,EAAE,IAAA,gBAAS,EAAC,IAAA,0BAAmB,EAAC,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACnF,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KAC1B,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;QAC3C,OAAO,EAAE,IAAA,8BAAmB,EAAC,6BAAwB,CAAC;QACtD,MAAM,EAAE,mCAA0B;QAClC,KAAK,EAAE;YACL,YAAY,EAAE,4BAAmB;YACjC,YAAY,EAAE,gBAAgB;SAC/B;QACD,WAAW,EAAE,cAAc;QAC3B,OAAO;KACR,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,SAAS;QACT,KAAK,EAAE,cAAc,CAAC,KAAK;KAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare const PENDLE_BOROS_ROUTER_DOMAIN: {
2
+ readonly name: "Pendle Boros Router";
3
+ readonly version: "1.0";
4
+ readonly chainId: bigint;
5
+ readonly verifyingContract: "0xb18F37F4B37b6B4F56E15f2e9F3Fe78cf5c6FE9E";
6
+ };
7
+ export declare const EIP712_DOMAIN_TYPES: readonly [{
8
+ readonly name: "name";
9
+ readonly type: "string";
10
+ }, {
11
+ readonly name: "version";
12
+ readonly type: "string";
13
+ }, {
14
+ readonly name: "chainId";
15
+ readonly type: "uint256";
16
+ }, {
17
+ readonly name: "verifyingContract";
18
+ readonly type: "address";
19
+ }];
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EIP712_DOMAIN_TYPES = exports.PENDLE_BOROS_ROUTER_DOMAIN = void 0;
4
+ const constants_1 = require("../../constants");
5
+ exports.PENDLE_BOROS_ROUTER_DOMAIN = {
6
+ name: 'Pendle Boros Router',
7
+ version: '1.0',
8
+ chainId: BigInt(constants_1.CHAIN_ID),
9
+ verifyingContract: constants_1.ROUTER_ADDRESS,
10
+ };
11
+ exports.EIP712_DOMAIN_TYPES = [
12
+ { name: 'name', type: 'string' },
13
+ { name: 'version', type: 'string' },
14
+ { name: 'chainId', type: 'uint256' },
15
+ { name: 'verifyingContract', type: 'address' },
16
+ ];
17
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/utils/signing/common.ts"],"names":[],"mappings":";;;AAAA,+CAA2D;AAE9C,QAAA,0BAA0B,GAAG;IACxC,IAAI,EAAE,qBAAqB;IAC3B,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,MAAM,CAAC,oBAAQ,CAAC;IACzB,iBAAiB,EAAE,0BAAc;CACzB,CAAC;AAEE,QAAA,mBAAmB,GAAG;IACjC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;CACtC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { signWithAgent } from './agent';
2
+ export { signSetAccManagerMessage, signApproveAgentMessage } from './sensitive';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signApproveAgentMessage = exports.signSetAccManagerMessage = exports.signWithAgent = void 0;
4
+ var agent_1 = require("./agent");
5
+ Object.defineProperty(exports, "signWithAgent", { enumerable: true, get: function () { return agent_1.signWithAgent; } });
6
+ var sensitive_1 = require("./sensitive");
7
+ Object.defineProperty(exports, "signSetAccManagerMessage", { enumerable: true, get: function () { return sensitive_1.signSetAccManagerMessage; } });
8
+ Object.defineProperty(exports, "signApproveAgentMessage", { enumerable: true, get: function () { return sensitive_1.signApproveAgentMessage; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/signing/index.ts"],"names":[],"mappings":";;;AAAA,iCAAwC;AAA/B,sGAAA,aAAa,OAAA;AACtB,yCAAgF;AAAvE,qHAAA,wBAAwB,OAAA;AAAE,oHAAA,uBAAuB,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { WalletClient } from 'viem';
2
+ import { ApproveAgentStruct, SetAccManagerStruct } from '../../types';
3
+ export declare function signSetAccManagerMessage(wallet: WalletClient, message: SetAccManagerStruct): Promise<`0x${string}`>;
4
+ export declare function signApproveAgentMessage(wallet: WalletClient, message: ApproveAgentStruct): Promise<`0x${string}`>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signSetAccManagerMessage = signSetAccManagerMessage;
4
+ exports.signApproveAgentMessage = signApproveAgentMessage;
5
+ const common_1 = require("./common");
6
+ async function signSetAccManagerMessage(wallet, message) {
7
+ const [account] = await wallet.getAddresses();
8
+ return wallet.signTypedData({
9
+ account,
10
+ domain: common_1.PENDLE_BOROS_ROUTER_DOMAIN,
11
+ types: {
12
+ EIP712Domain: common_1.EIP712_DOMAIN_TYPES,
13
+ SetAccManagerStruct: [
14
+ { name: 'account', type: 'bytes21' },
15
+ { name: 'accManager', type: 'address' },
16
+ { name: 'nonce', type: 'uint64' },
17
+ ],
18
+ },
19
+ primaryType: 'SetAccManagerStruct',
20
+ message,
21
+ });
22
+ }
23
+ async function signApproveAgentMessage(wallet, message) {
24
+ const [account] = await wallet.getAddresses();
25
+ return wallet.signTypedData({
26
+ account,
27
+ domain: common_1.PENDLE_BOROS_ROUTER_DOMAIN,
28
+ types: {
29
+ EIP712Domain: common_1.EIP712_DOMAIN_TYPES,
30
+ ApproveAgentStruct: [
31
+ { name: 'account', type: 'bytes21' },
32
+ { name: 'agent', type: 'address' },
33
+ { name: 'expiry', type: 'uint64' },
34
+ { name: 'nonce', type: 'uint64' },
35
+ ],
36
+ },
37
+ primaryType: 'ApproveAgentStruct',
38
+ message,
39
+ });
40
+ }
41
+ //# sourceMappingURL=sensitive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensitive.js","sourceRoot":"","sources":["../../../src/utils/signing/sensitive.ts"],"names":[],"mappings":";;AAIA,4DAgBC;AAED,0DAiBC;AArCD,qCAA2E;AAEpE,KAAK,UAAU,wBAAwB,CAAC,MAAoB,EAAE,OAA4B;IAC/F,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;IAC9C,OAAO,MAAM,CAAC,aAAa,CAAC;QAC1B,OAAO;QACP,MAAM,EAAE,mCAA0B;QAClC,KAAK,EAAE;YACL,YAAY,EAAE,4BAAmB;YACjC,mBAAmB,EAAE;gBACnB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;gBACvC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;aAClC;SACF;QACD,WAAW,EAAE,qBAAqB;QAClC,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,MAAoB,EAAE,OAA2B;IAC7F,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;IAC9C,OAAO,MAAM,CAAC,aAAa,CAAC;QAC1B,OAAO;QACP,MAAM,EAAE,mCAA0B;QAClC,KAAK,EAAE;YACL,YAAY,EAAE,4BAAmB;YACjC,kBAAkB,EAAE;gBAClB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;gBAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;aAClC;SACF;QACD,WAAW,EAAE,oBAAoB;QACjC,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@pendle/sdk-boros",
3
+ "description": "Pendle SDK for Boros",
4
+ "license": "MIT",
5
+ "version": "0.0.1",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "scripts": {
12
+ "build": "yarn clean && yarn tsc -p ./tsconfig.build.json",
13
+ "typecheck": "tsc --noemit --project tsconfig.json",
14
+ "clean": "rm -rf dist",
15
+ "format": "yarn biome format --write",
16
+ "lint": "yarn biome lint --write",
17
+ "prepack": "yarn build",
18
+ "release": "yarn npm publish"
19
+ },
20
+ "devDependencies": {
21
+ "@biomejs/biome": "1.9.4",
22
+ "@changesets/cli": "^2.27.11",
23
+ "typescript": "^5.7.3"
24
+ },
25
+ "dependencies": {
26
+ "viem": "^2.22.5"
27
+ },
28
+ "packageManager": "yarn@4.4.0"
29
+ }