@reyaxyz/sdk 0.16.1 → 0.17.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 (94) hide show
  1. package/dist/abis/Periphery.json +700 -0
  2. package/dist/services/encode.js +9 -5
  3. package/dist/services/encode.js.map +1 -1
  4. package/dist/services/executeTransaction.js +4 -7
  5. package/dist/services/executeTransaction.js.map +1 -1
  6. package/dist/services/lp/encode.js +30 -1
  7. package/dist/services/lp/encode.js.map +1 -1
  8. package/dist/services/lp/lp.js +3 -3
  9. package/dist/services/lp/lp.js.map +1 -1
  10. package/dist/services/lp/transferFromMAToPool.js +70 -0
  11. package/dist/services/lp/transferFromMAToPool.js.map +1 -0
  12. package/dist/services/lp/types.js.map +1 -1
  13. package/dist/services/lp/withdrawPassivePoolAndBridge.js +75 -0
  14. package/dist/services/lp/withdrawPassivePoolAndBridge.js.map +1 -0
  15. package/dist/services/margin-accounts/account.js +2 -2
  16. package/dist/services/margin-accounts/account.js.map +1 -1
  17. package/dist/services/margin-accounts/deposit.js +4 -6
  18. package/dist/services/margin-accounts/deposit.js.map +1 -1
  19. package/dist/services/margin-accounts/encode.js +33 -5
  20. package/dist/services/margin-accounts/encode.js.map +1 -1
  21. package/dist/services/margin-accounts/transferMarginBetweenAccounts.js +67 -0
  22. package/dist/services/margin-accounts/transferMarginBetweenAccounts.js.map +1 -0
  23. package/dist/services/margin-accounts/types.js.map +1 -1
  24. package/dist/services/margin-accounts/withdraw.js +4 -6
  25. package/dist/services/margin-accounts/withdraw.js.map +1 -1
  26. package/dist/services/margin-accounts/withdrawMAAndBridge.js +77 -0
  27. package/dist/services/margin-accounts/withdrawMAAndBridge.js.map +1 -0
  28. package/dist/services/orders/order.js +3 -3
  29. package/dist/services/orders/order.js.map +1 -1
  30. package/dist/services/sign.js +124 -0
  31. package/dist/services/sign.js.map +1 -0
  32. package/dist/services/token/approve.js +2 -2
  33. package/dist/services/token/approve.js.map +1 -1
  34. package/dist/services/token/getAllowance.js +2 -2
  35. package/dist/services/token/getAllowance.js.map +1 -1
  36. package/dist/types/services/encode.d.ts +3 -2
  37. package/dist/types/services/encode.d.ts.map +1 -1
  38. package/dist/types/services/executeTransaction.d.ts +3 -3
  39. package/dist/types/services/executeTransaction.d.ts.map +1 -1
  40. package/dist/types/services/lp/encode.d.ts +3 -0
  41. package/dist/types/services/lp/encode.d.ts.map +1 -1
  42. package/dist/types/services/lp/transferFromMAToPool.d.ts +3 -0
  43. package/dist/types/services/lp/transferFromMAToPool.d.ts.map +1 -0
  44. package/dist/types/services/lp/types.d.ts +28 -1
  45. package/dist/types/services/lp/types.d.ts.map +1 -1
  46. package/dist/types/services/lp/withdrawPassivePoolAndBridge.d.ts +3 -0
  47. package/dist/types/services/lp/withdrawPassivePoolAndBridge.d.ts.map +1 -0
  48. package/dist/types/services/margin-accounts/deposit.d.ts.map +1 -1
  49. package/dist/types/services/margin-accounts/encode.d.ts +5 -2
  50. package/dist/types/services/margin-accounts/encode.d.ts.map +1 -1
  51. package/dist/types/services/margin-accounts/transferMarginBetweenAccounts.d.ts +3 -0
  52. package/dist/types/services/margin-accounts/transferMarginBetweenAccounts.d.ts.map +1 -0
  53. package/dist/types/services/margin-accounts/types.d.ts +23 -0
  54. package/dist/types/services/margin-accounts/types.d.ts.map +1 -1
  55. package/dist/types/services/margin-accounts/withdraw.d.ts.map +1 -1
  56. package/dist/types/services/margin-accounts/withdrawMAAndBridge.d.ts +3 -0
  57. package/dist/types/services/margin-accounts/withdrawMAAndBridge.d.ts.map +1 -0
  58. package/dist/types/services/sign.d.ts +10 -0
  59. package/dist/types/services/sign.d.ts.map +1 -0
  60. package/dist/types/utils/contractAddresses.d.ts +5 -1
  61. package/dist/types/utils/contractAddresses.d.ts.map +1 -1
  62. package/dist/types/utils/routerCommands.d.ts +2 -1
  63. package/dist/types/utils/routerCommands.d.ts.map +1 -1
  64. package/dist/utils/contractAddresses.js +23 -14
  65. package/dist/utils/contractAddresses.js.map +1 -1
  66. package/dist/utils/routerCommands.js +2 -0
  67. package/dist/utils/routerCommands.js.map +1 -1
  68. package/package.json +3 -3
  69. package/src/abis/Periphery.json +700 -0
  70. package/src/services/encode.ts +17 -7
  71. package/src/services/executeTransaction.ts +5 -9
  72. package/src/services/lp/encode.ts +47 -0
  73. package/src/services/lp/lp.ts +3 -3
  74. package/src/services/lp/transferFromMAToPool.ts +48 -0
  75. package/src/services/lp/types.ts +32 -1
  76. package/src/services/lp/withdrawPassivePoolAndBridge.ts +56 -0
  77. package/src/services/margin-accounts/account.ts +2 -2
  78. package/src/services/margin-accounts/deposit.ts +2 -6
  79. package/src/services/margin-accounts/encode.ts +52 -6
  80. package/src/services/margin-accounts/transferMarginBetweenAccounts.ts +36 -0
  81. package/src/services/margin-accounts/types.ts +27 -0
  82. package/src/services/margin-accounts/withdraw.ts +2 -6
  83. package/src/services/margin-accounts/withdrawMAAndBridge.ts +56 -0
  84. package/src/services/orders/order.ts +3 -3
  85. package/src/services/sign.ts +110 -0
  86. package/src/services/token/approve.ts +3 -3
  87. package/src/services/token/getAllowance.ts +3 -3
  88. package/src/utils/contractAddresses.ts +17 -7
  89. package/src/utils/routerCommands.ts +2 -0
  90. package/dist/types/utils/consts.d.ts +0 -8
  91. package/dist/types/utils/consts.d.ts.map +0 -1
  92. package/dist/utils/consts.js +0 -12
  93. package/dist/utils/consts.js.map +0 -1
  94. package/src/utils/consts.ts +0 -7
@@ -0,0 +1,110 @@
1
+ import { JsonRpcSigner, Signature, Signer, TypedDataField } from 'ethers';
2
+ import { ContractType, getAddress } from '../utils/contractAddresses';
3
+
4
+ export type EIP712Signature = {
5
+ v: number;
6
+ r: string;
7
+ s: string;
8
+ deadline: number;
9
+ };
10
+
11
+ function convertEthersSignatureToEIP712Signature(
12
+ signature: Signature,
13
+ deadline: number,
14
+ ): EIP712Signature {
15
+ return {
16
+ v: signature.v,
17
+ r: signature.r,
18
+ s: signature.s,
19
+ deadline: deadline,
20
+ };
21
+ }
22
+
23
+ export async function signCoreCommands(
24
+ signer: Signer | JsonRpcSigner,
25
+ chainId: number,
26
+ accountId: number,
27
+ nonce: number,
28
+ deadline: number,
29
+ // todo: add caller/commands/both once smart contracts are fixed
30
+ ): Promise<EIP712Signature> {
31
+ const signature = await signReyaTypedData(
32
+ signer,
33
+ chainId,
34
+ getAddress(chainId, ContractType.CORE_PROXY),
35
+ {
36
+ ExecuteBySig: [
37
+ { name: 'accountId', type: 'uint128' },
38
+ { name: 'nonce', type: 'uint256' },
39
+ { name: 'deadline', type: 'uint256' },
40
+ ],
41
+ },
42
+ {
43
+ accountId: accountId,
44
+ nonce: nonce,
45
+ deadline: deadline,
46
+ },
47
+ );
48
+
49
+ return convertEthersSignatureToEIP712Signature(signature, deadline);
50
+ }
51
+
52
+ export async function signPoolRemoveLiquidity(
53
+ signer: Signer | JsonRpcSigner,
54
+ chainId: number,
55
+ owner: string,
56
+ poolId: number,
57
+ sharesAmount: bigint,
58
+ minOut: bigint,
59
+ nonce: number,
60
+ deadline: number,
61
+ // todo: add caller once smart contracts are fixed
62
+ ): Promise<EIP712Signature> {
63
+ const signature = await signReyaTypedData(
64
+ signer,
65
+ chainId,
66
+ getAddress(chainId, ContractType.PASSIVE_POOL_PROXY),
67
+ {
68
+ RemoveLiquidityBySig: [
69
+ { name: 'owner', type: 'address' },
70
+ { name: 'poolId', type: 'uint128' },
71
+ { name: 'sharesAmount', type: 'uint256' },
72
+ { name: 'minOut', type: 'uint256' },
73
+ { name: 'nonce', type: 'uint256' },
74
+ { name: 'deadline', type: 'uint256' },
75
+ ],
76
+ },
77
+ {
78
+ owner: owner,
79
+ poolId: poolId,
80
+ sharesAmount: sharesAmount,
81
+ minOut: minOut,
82
+ nonce: nonce,
83
+ deadline: deadline,
84
+ },
85
+ );
86
+
87
+ return convertEthersSignatureToEIP712Signature(signature, deadline);
88
+ }
89
+
90
+ async function signReyaTypedData(
91
+ signer: Signer | JsonRpcSigner,
92
+ chainId: number,
93
+ verifyingContract: string,
94
+ types: Record<string, Array<TypedDataField>>,
95
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
96
+ value: Record<string, any>,
97
+ ): Promise<Signature> {
98
+ const signatureString = await signer.signTypedData(
99
+ {
100
+ name: 'Reya',
101
+ version: '1',
102
+ chainId: chainId,
103
+ verifyingContract: verifyingContract,
104
+ },
105
+ types,
106
+ value,
107
+ );
108
+
109
+ return Signature.from(signatureString);
110
+ }
@@ -1,6 +1,6 @@
1
1
  import { ApprovalType, ApproveTokenParams } from './types';
2
2
  import { getERC20Allowance, getERC20TokenContract } from './common';
3
- import { getAddress } from '../../utils/contractAddresses';
3
+ import { ContractType, getAddress } from '../../utils/contractAddresses';
4
4
 
5
5
  export const approveTokenSpending = async (
6
6
  params: ApproveTokenParams,
@@ -17,8 +17,8 @@ export const approveTokenSpending = async (
17
17
 
18
18
  const contractProxyAddress =
19
19
  params.type === ApprovalType.DEPOSIT
20
- ? getAddress(chainId, 'core_proxy')
21
- : getAddress(chainId, 'passive_pool_proxy');
20
+ ? getAddress(chainId, ContractType.CORE_PROXY)
21
+ : getAddress(chainId, ContractType.PASSIVE_POOL_PROXY);
22
22
 
23
23
  // @todo validate if maxAllowance should be passed from UI
24
24
  const maxUint256Bn = BigInt(
@@ -1,6 +1,6 @@
1
1
  import { ApprovalType, GetAllowanceParams } from './types';
2
2
  import { getERC20Allowance } from './common';
3
- import { getAddress } from '../../utils/contractAddresses';
3
+ import { ContractType, getAddress } from '../../utils/contractAddresses';
4
4
 
5
5
  export const getAllowance = async (
6
6
  params: GetAllowanceParams,
@@ -12,8 +12,8 @@ export const getAllowance = async (
12
12
 
13
13
  const contractProxyAddress =
14
14
  params.type === ApprovalType.DEPOSIT
15
- ? getAddress(chainId, 'core_proxy')
16
- : getAddress(chainId, 'passive_pool_proxy');
15
+ ? getAddress(chainId, ContractType.CORE_PROXY)
16
+ : getAddress(chainId, ContractType.PASSIVE_POOL_PROXY);
17
17
  const walletAddress: string = await params.signer.getAddress();
18
18
 
19
19
  const allowance = await getERC20Allowance({
@@ -2,21 +2,31 @@ export type Address = Lowercase<string>;
2
2
  // @todo update with proper chainId for mainnet
3
3
  import { ReyaChainId } from '@reyaxyz/common';
4
4
 
5
- export type ContractType = 'core_proxy' | 'passive_pool_proxy';
5
+ export enum ContractType {
6
+ CORE_PROXY = 'core_proxy',
7
+ PASSIVE_POOL_PROXY = 'passive_pool_proxy',
8
+ PERIPHERY_PROXY = 'periphery_proxy',
9
+ }
6
10
 
7
11
  const addresses: Record<ReyaChainId, Record<ContractType, Address>> = {
8
12
  [ReyaChainId.polygonMumbai]: {
9
- core_proxy: '0xc2f1b4a1275b7338e0eb03967fea3858af4bc900',
10
- passive_pool_proxy: '0x1b9d499f3ac864b8d4da415846d1d1916e00a6ff',
13
+ [ContractType.CORE_PROXY]: '0xc2f1b4a1275b7338e0eb03967fea3858af4bc900',
14
+ [ContractType.PASSIVE_POOL_PROXY]:
15
+ '0x1b9d499f3ac864b8d4da415846d1d1916e00a6ff',
16
+ [ContractType.PERIPHERY_PROXY]: 'todo',
11
17
  },
12
18
  [ReyaChainId.reyaCronos]: {
13
- core_proxy: '0x141a7e35a22688c8e8f429da47e246f3896c5af8',
14
- passive_pool_proxy: '0x730ea458b8b2d2fdf15406829c4106a12775bae0',
19
+ [ContractType.CORE_PROXY]: '0x141a7e35a22688c8e8f429da47e246f3896c5af8',
20
+ [ContractType.PASSIVE_POOL_PROXY]:
21
+ '0x730ea458b8b2d2fdf15406829c4106a12775bae0',
22
+ [ContractType.PERIPHERY_PROXY]: 'todo',
15
23
  },
16
24
  // TODO: add proper config
17
25
  [ReyaChainId.reyaNetwork]: {
18
- core_proxy: '0x2cb06a22ee9b823a307d22f131380dbe151ece5f',
19
- passive_pool_proxy: '0x63df38878c5b8e84d7dcb347b934072add64bdc5',
26
+ [ContractType.CORE_PROXY]: '0x2cb06a22ee9b823a307d22f131380dbe151ece5f',
27
+ [ContractType.PASSIVE_POOL_PROXY]:
28
+ '0x63df38878c5b8e84d7dcb347b934072add64bdc5',
29
+ [ContractType.PERIPHERY_PROXY]: 'todo',
20
30
  },
21
31
  };
22
32
  export const getAddress = (
@@ -12,6 +12,7 @@ export enum CommandType {
12
12
  DUTCH_LIQUIDATION,
13
13
  MATCH_ORDER,
14
14
  PROPAGATE_CACHE_FLOW,
15
+ TRANSFER_MARGIN_ACCOUNT,
15
16
  }
16
17
 
17
18
  const ABI_DEFINITION: { [key in CommandType]: string[] } = {
@@ -20,6 +21,7 @@ const ABI_DEFINITION: { [key in CommandType]: string[] } = {
20
21
  [CommandType.MATCH_ORDER]: ['uint128[]', 'bytes'],
21
22
  [CommandType.PROPAGATE_CACHE_FLOW]: [], // @todo Check if correct
22
23
  [CommandType.DUTCH_LIQUIDATION]: [], // @todo update once needed
24
+ [CommandType.TRANSFER_MARGIN_ACCOUNT]: [], // @todo update once needed
23
25
  };
24
26
 
25
27
  export type RouterCommand = {
@@ -1,8 +0,0 @@
1
- export declare enum TransactionType {
2
- CREATE_ACCOUNT = 0,
3
- DEPOSIT = 1,
4
- WITHDRAW = 2,
5
- LP = 3,
6
- TRADE = 4
7
- }
8
- //# sourceMappingURL=consts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"/","sources":["utils/consts.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACzB,cAAc,IAAA;IACd,OAAO,IAAA;IACP,QAAQ,IAAA;IACR,EAAE,IAAA;IACF,KAAK,IAAA;CACN"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TransactionType = void 0;
4
- var TransactionType;
5
- (function (TransactionType) {
6
- TransactionType[TransactionType["CREATE_ACCOUNT"] = 0] = "CREATE_ACCOUNT";
7
- TransactionType[TransactionType["DEPOSIT"] = 1] = "DEPOSIT";
8
- TransactionType[TransactionType["WITHDRAW"] = 2] = "WITHDRAW";
9
- TransactionType[TransactionType["LP"] = 3] = "LP";
10
- TransactionType[TransactionType["TRADE"] = 4] = "TRADE";
11
- })(TransactionType || (exports.TransactionType = TransactionType = {}));
12
- //# sourceMappingURL=consts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"/","sources":["utils/consts.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,yEAAc,CAAA;IACd,2DAAO,CAAA;IACP,6DAAQ,CAAA;IACR,iDAAE,CAAA;IACF,uDAAK,CAAA;AACP,CAAC,EANW,eAAe,+BAAf,eAAe,QAM1B","sourcesContent":["export enum TransactionType {\n CREATE_ACCOUNT,\n DEPOSIT,\n WITHDRAW,\n LP,\n TRADE,\n}\n"]}
@@ -1,7 +0,0 @@
1
- export enum TransactionType {
2
- CREATE_ACCOUNT,
3
- DEPOSIT,
4
- WITHDRAW,
5
- LP,
6
- TRADE,
7
- }