@d8x/perpetuals-sdk 2.0.8-alpha → 2.0.10-alpha

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 (191) hide show
  1. package/dist/cjs/abi/BeaconProxy.json +71 -0
  2. package/dist/cjs/abi/IPerpetualManager.json +46 -0
  3. package/dist/cjs/abi/Maintainer.json +774 -0
  4. package/dist/cjs/abi/MockToken.json +347 -0
  5. package/dist/cjs/abi/UUPSUpgradeable.json +104 -0
  6. package/dist/cjs/abi/WeETH.json +310 -0
  7. package/dist/cjs/abi-zkevm/IPerpetualManager.json +2 -2
  8. package/dist/cjs/abi-zkevm/LimitOrderBook.json +910 -0
  9. package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +236 -0
  10. package/dist/cjs/contracts/BeaconProxy.d.ts +63 -0
  11. package/dist/cjs/contracts/BeaconProxy.js +3 -0
  12. package/dist/cjs/contracts/BeaconProxy.js.map +1 -0
  13. package/dist/cjs/contracts/IPerpetualManager.d.ts +15 -1
  14. package/dist/cjs/contracts/Maintainer.d.ts +799 -0
  15. package/dist/cjs/contracts/Maintainer.js +3 -0
  16. package/dist/cjs/contracts/Maintainer.js.map +1 -0
  17. package/dist/cjs/contracts/MockToken.d.ts +263 -0
  18. package/dist/cjs/contracts/MockToken.js +3 -0
  19. package/dist/cjs/contracts/MockToken.js.map +1 -0
  20. package/dist/cjs/contracts/UUPSUpgradeable.d.ts +118 -0
  21. package/dist/cjs/contracts/UUPSUpgradeable.js +3 -0
  22. package/dist/cjs/contracts/UUPSUpgradeable.js.map +1 -0
  23. package/dist/cjs/contracts/WeETH.d.ts +503 -0
  24. package/dist/cjs/contracts/WeETH.js +3 -0
  25. package/dist/cjs/contracts/WeETH.js.map +1 -0
  26. package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +61 -0
  27. package/dist/cjs/contracts/factories/BeaconProxy__factory.js +89 -0
  28. package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +1 -0
  29. package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +35 -0
  30. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +46 -0
  31. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  32. package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +609 -0
  33. package/dist/cjs/contracts/factories/Maintainer__factory.js +792 -0
  34. package/dist/cjs/contracts/factories/Maintainer__factory.js.map +1 -0
  35. package/dist/{esm/contracts/factories/PerpStorage__factory.d.ts → cjs/contracts/factories/MockToken__factory.d.ts} +128 -115
  36. package/dist/cjs/contracts/factories/MockToken__factory.js +365 -0
  37. package/dist/cjs/contracts/factories/MockToken__factory.js.map +1 -0
  38. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
  39. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +122 -0
  40. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
  41. package/dist/cjs/contracts/factories/WeETH__factory.d.ts +545 -0
  42. package/dist/cjs/contracts/factories/WeETH__factory.js +721 -0
  43. package/dist/cjs/contracts/factories/WeETH__factory.js.map +1 -0
  44. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
  45. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +5324 -0
  46. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
  47. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
  48. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +254 -0
  49. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
  50. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
  51. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +928 -0
  52. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
  53. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
  54. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +456 -0
  55. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
  56. package/dist/cjs/contracts/factories/lean0/index.d.ts +4 -0
  57. package/dist/cjs/contracts/factories/lean0/index.js +15 -0
  58. package/dist/cjs/contracts/factories/lean0/index.js.map +1 -0
  59. package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +2821 -0
  60. package/dist/cjs/contracts/lean0/IPerpetualManager.js +3 -0
  61. package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +1 -0
  62. package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +533 -0
  63. package/dist/cjs/contracts/lean0/LimitOrderBook.js +3 -0
  64. package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +1 -0
  65. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
  66. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +3 -0
  67. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
  68. package/dist/cjs/contracts/lean0/ShareToken.d.ts +320 -0
  69. package/dist/cjs/contracts/lean0/ShareToken.js +3 -0
  70. package/dist/cjs/contracts/lean0/ShareToken.js.map +1 -0
  71. package/dist/cjs/contracts/lean0/index.d.ts +4 -0
  72. package/dist/cjs/contracts/lean0/index.js +3 -0
  73. package/dist/cjs/contracts/lean0/index.js.map +1 -0
  74. package/dist/cjs/marketData.d.ts +2 -1
  75. package/dist/cjs/marketData.js +46 -18
  76. package/dist/cjs/marketData.js.map +1 -1
  77. package/dist/cjs/nodeSDKTypes.d.ts +19 -0
  78. package/dist/cjs/nodeSDKTypes.js +29 -0
  79. package/dist/cjs/nodeSDKTypes.js.map +1 -1
  80. package/dist/cjs/perpetualDataHandler.d.ts +9 -2
  81. package/dist/cjs/perpetualDataHandler.js +50 -13
  82. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  83. package/dist/cjs/referralCodeSigner.d.ts +38 -5
  84. package/dist/cjs/referralCodeSigner.js +107 -18
  85. package/dist/cjs/referralCodeSigner.js.map +1 -1
  86. package/dist/cjs/version.d.ts +1 -1
  87. package/dist/cjs/version.js +1 -1
  88. package/dist/cjs/version.js.map +1 -1
  89. package/dist/esm/abi/BeaconProxy.json +71 -0
  90. package/dist/esm/abi/IPerpetualManager.json +46 -0
  91. package/dist/esm/abi/Maintainer.json +774 -0
  92. package/dist/esm/abi/MockToken.json +347 -0
  93. package/dist/esm/abi/UUPSUpgradeable.json +104 -0
  94. package/dist/esm/abi/WeETH.json +310 -0
  95. package/dist/esm/abi/lean0/IPerpetualManager.json +5306 -0
  96. package/dist/esm/abi/lean0/LimitOrderBook.json +910 -0
  97. package/dist/esm/abi/lean0/LimitOrderBookFactory.json +236 -0
  98. package/dist/esm/abi/lean0/ShareToken.json +438 -0
  99. package/dist/esm/abi-zkevm/IPerpetualManager.json +2 -2
  100. package/dist/esm/abi-zkevm/LimitOrderBook.json +910 -0
  101. package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +236 -0
  102. package/dist/esm/contracts/BeaconProxy.d.ts +63 -0
  103. package/dist/esm/contracts/BeaconProxy.js +2 -0
  104. package/dist/esm/contracts/BeaconProxy.js.map +1 -0
  105. package/dist/esm/contracts/IPerpetualManager.d.ts +15 -1
  106. package/dist/esm/contracts/Maintainer.d.ts +799 -0
  107. package/dist/esm/contracts/Maintainer.js +2 -0
  108. package/dist/esm/contracts/Maintainer.js.map +1 -0
  109. package/dist/esm/contracts/MockToken.d.ts +263 -0
  110. package/dist/esm/contracts/MockToken.js +2 -0
  111. package/dist/esm/contracts/MockToken.js.map +1 -0
  112. package/dist/esm/contracts/UUPSUpgradeable.d.ts +118 -0
  113. package/dist/esm/contracts/UUPSUpgradeable.js +2 -0
  114. package/dist/esm/contracts/UUPSUpgradeable.js.map +1 -0
  115. package/dist/esm/contracts/WeETH.d.ts +503 -0
  116. package/dist/esm/contracts/WeETH.js +2 -0
  117. package/dist/esm/contracts/WeETH.js.map +1 -0
  118. package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +61 -0
  119. package/dist/esm/contracts/factories/BeaconProxy__factory.js +85 -0
  120. package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +1 -0
  121. package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +35 -0
  122. package/dist/esm/contracts/factories/IPerpetualManager__factory.js +46 -0
  123. package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  124. package/dist/esm/contracts/factories/Maintainer__factory.d.ts +609 -0
  125. package/dist/esm/contracts/factories/Maintainer__factory.js +788 -0
  126. package/dist/esm/contracts/factories/Maintainer__factory.js.map +1 -0
  127. package/dist/esm/contracts/factories/MockToken__factory.d.ts +273 -0
  128. package/dist/esm/contracts/factories/{PerpStorage__factory.js → MockToken__factory.js} +139 -128
  129. package/dist/esm/contracts/factories/MockToken__factory.js.map +1 -0
  130. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
  131. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +118 -0
  132. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
  133. package/dist/esm/contracts/factories/WeETH__factory.d.ts +545 -0
  134. package/dist/esm/contracts/factories/WeETH__factory.js +717 -0
  135. package/dist/esm/contracts/factories/WeETH__factory.js.map +1 -0
  136. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
  137. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +5320 -0
  138. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
  139. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
  140. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +250 -0
  141. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
  142. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
  143. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +924 -0
  144. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
  145. package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
  146. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +452 -0
  147. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
  148. package/dist/esm/contracts/factories/lean0/index.d.ts +4 -0
  149. package/dist/esm/contracts/factories/lean0/index.js +8 -0
  150. package/dist/esm/contracts/factories/lean0/index.js.map +1 -0
  151. package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +2821 -0
  152. package/dist/esm/contracts/lean0/IPerpetualManager.js +2 -0
  153. package/dist/esm/contracts/lean0/IPerpetualManager.js.map +1 -0
  154. package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +533 -0
  155. package/dist/esm/contracts/lean0/LimitOrderBook.js +2 -0
  156. package/dist/esm/contracts/lean0/LimitOrderBook.js.map +1 -0
  157. package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
  158. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +2 -0
  159. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
  160. package/dist/esm/contracts/lean0/ShareToken.d.ts +320 -0
  161. package/dist/esm/contracts/lean0/ShareToken.js +2 -0
  162. package/dist/esm/contracts/lean0/ShareToken.js.map +1 -0
  163. package/dist/esm/contracts/lean0/index.d.ts +4 -0
  164. package/dist/esm/contracts/lean0/index.js +2 -0
  165. package/dist/esm/contracts/lean0/index.js.map +1 -0
  166. package/dist/esm/marketData.d.ts +2 -1
  167. package/dist/esm/marketData.js +46 -18
  168. package/dist/esm/marketData.js.map +1 -1
  169. package/dist/esm/nodeSDKTypes.d.ts +19 -0
  170. package/dist/esm/nodeSDKTypes.js +28 -1
  171. package/dist/esm/nodeSDKTypes.js.map +1 -1
  172. package/dist/esm/perpetualDataHandler.d.ts +9 -2
  173. package/dist/esm/perpetualDataHandler.js +50 -13
  174. package/dist/esm/perpetualDataHandler.js.map +1 -1
  175. package/dist/esm/referralCodeSigner.d.ts +38 -5
  176. package/dist/esm/referralCodeSigner.js +108 -19
  177. package/dist/esm/referralCodeSigner.js.map +1 -1
  178. package/dist/esm/version.d.ts +1 -1
  179. package/dist/esm/version.js +1 -1
  180. package/dist/esm/version.js.map +1 -1
  181. package/package.json +4 -2
  182. package/src/abi/IPerpetualManager.json +46 -0
  183. package/src/abi-zkevm/IPerpetualManager.json +2 -2
  184. package/src/contracts/IPerpetualManager.ts +22 -0
  185. package/src/contracts/factories/IPerpetualManager__factory.ts +46 -0
  186. package/src/marketData.ts +54 -17
  187. package/src/nodeSDKTypes.ts +31 -0
  188. package/src/perpetualDataHandler.ts +54 -17
  189. package/src/referralCodeSigner.ts +174 -22
  190. package/src/version.ts +1 -1
  191. package/dist/esm/contracts/factories/PerpStorage__factory.js.map +0 -1
@@ -1,5 +1,22 @@
1
- import { AbiCoder, JsonRpcProvider, keccak256, Provider, Signer, verifyMessage, Wallet } from "ethers";
2
- import type { APIReferPayload, APIReferralCodePayload, APIReferralCodeSelectionPayload } from "./nodeSDKTypes";
1
+ import {
2
+ AbiCoder,
3
+ JsonRpcProvider,
4
+ keccak256,
5
+ Provider,
6
+ Signer,
7
+ TypedDataDomain,
8
+ TypedDataField,
9
+ verifyMessage,
10
+ verifyTypedData,
11
+ Wallet,
12
+ } from "ethers";
13
+ import {
14
+ APIReferPayload,
15
+ APIReferralCodePayload,
16
+ APIReferralCodeSelectionPayload,
17
+ referralDomain,
18
+ referralTypes,
19
+ } from "./nodeSDKTypes";
3
20
 
4
21
  /**
5
22
  * This is a 'standalone' class that deals with signatures
@@ -14,11 +31,26 @@ import type { APIReferPayload, APIReferralCodePayload, APIReferralCodeSelectionP
14
31
  export default class ReferralCodeSigner {
15
32
  private provider: Provider | undefined;
16
33
  private rpcURL: string;
17
- private signingFun: (x: string | Uint8Array) => Promise<string>;
34
+ private signingFun: ((x: string | Uint8Array) => Promise<string>) | undefined;
35
+ private signingTypedDataFun:
36
+ | ((
37
+ domain: TypedDataDomain,
38
+ types: Record<string, TypedDataField[]>,
39
+ value: Record<string, any>
40
+ ) => Promise<string>)
41
+ | undefined;
18
42
  private address: string;
19
43
 
20
44
  constructor(
21
- signer: Signer | string | ((x: string | Uint8Array) => Promise<string>),
45
+ signer:
46
+ | Signer
47
+ | string
48
+ | ((x: string | Uint8Array) => Promise<string>)
49
+ | ((
50
+ domain: TypedDataDomain,
51
+ types: Record<string, TypedDataField[]>,
52
+ value: Record<string, any>
53
+ ) => Promise<string>),
22
54
  address: string,
23
55
  _rpcURL: string
24
56
  ) {
@@ -27,38 +59,88 @@ export default class ReferralCodeSigner {
27
59
  if (typeof signer == "string") {
28
60
  const wallet = this.createSignerInstance(signer);
29
61
  this.signingFun = (x: string | Uint8Array) => wallet.signMessage(x);
62
+ this.signingTypedDataFun = (
63
+ domain: TypedDataDomain,
64
+ types: Record<string, TypedDataField[]>,
65
+ value: Record<string, any>
66
+ ) => wallet.signTypedData(domain, types, value);
30
67
  } else if ("signMessage" in signer) {
31
68
  this.signingFun = (x: string | Uint8Array) => signer.signMessage(x);
69
+ this.signingTypedDataFun = (
70
+ domain: TypedDataDomain,
71
+ types: Record<string, TypedDataField[]>,
72
+ value: Record<string, any>
73
+ ) => signer.signTypedData(domain, types, value);
74
+ } else if (signer.length === 1) {
75
+ this.signingFun = signer as (x: string | Uint8Array) => Promise<string>;
32
76
  } else {
33
- this.signingFun = signer;
77
+ this.signingTypedDataFun = signer as (
78
+ domain: TypedDataDomain,
79
+ types: Record<string, TypedDataField[]>,
80
+ value: Record<string, any>
81
+ ) => Promise<string>;
34
82
  }
35
83
  }
36
84
 
37
85
  public createSignerInstance(_privateKey: string): Signer {
38
86
  this.provider = new JsonRpcProvider(this.rpcURL);
39
87
  const wallet = new Wallet(_privateKey);
40
- return wallet.connect(this.provider);
88
+ wallet.connect(this.provider);
89
+ this.signingFun = (x: string | Uint8Array) => wallet.signMessage(x);
90
+ this.signingTypedDataFun = (
91
+ domain: TypedDataDomain,
92
+ types: Record<string, TypedDataField[]>,
93
+ value: Record<string, any>
94
+ ) => wallet.signTypedData(domain, types, value);
95
+ return wallet;
41
96
  }
42
97
 
43
98
  public async getSignatureForNewReferral(rp: APIReferPayload): Promise<string> {
44
- if (this.signingFun == undefined) {
99
+ if (this.signingTypedDataFun != undefined) {
100
+ return await this.signingTypedDataFun(
101
+ referralDomain,
102
+ {
103
+ NewReferral: referralTypes.NewReferral,
104
+ },
105
+ ReferralCodeSigner.newReferralPayloadToTypedData(rp)
106
+ );
107
+ } else if (this.signingFun != undefined) {
108
+ return await ReferralCodeSigner.getSignatureForNewReferral(rp, this.signingFun);
109
+ } else {
45
110
  throw Error("no signer defined, call createSignerInstance()");
46
111
  }
47
- return await ReferralCodeSigner.getSignatureForNewReferral(rp, this.signingFun);
48
112
  }
49
113
 
50
114
  public async getSignatureForNewCode(rc: APIReferralCodePayload): Promise<string> {
51
- if (this.signingFun == undefined) {
115
+ if (this.signingTypedDataFun != undefined) {
116
+ return await this.signingTypedDataFun(
117
+ referralDomain,
118
+ {
119
+ NewCode: referralTypes.NewCode,
120
+ },
121
+ ReferralCodeSigner.referralCodeNewCodePayloadToTypedData(rc)
122
+ );
123
+ } else if (this.signingFun != undefined) {
124
+ return await ReferralCodeSigner.getSignatureForNewCode(rc, this.signingFun);
125
+ } else {
52
126
  throw Error("no signer defined, call createSignerInstance()");
53
127
  }
54
- return await ReferralCodeSigner.getSignatureForNewCode(rc, this.signingFun);
55
128
  }
56
129
 
57
130
  public async getSignatureForCodeSelection(rc: APIReferralCodeSelectionPayload): Promise<string> {
58
- if (this.signingFun == undefined) {
131
+ if (this.signingTypedDataFun != undefined) {
132
+ return await this.signingTypedDataFun(
133
+ referralDomain,
134
+ {
135
+ CodeSelection: referralTypes.CodeSelection,
136
+ },
137
+ ReferralCodeSigner.codeSelectionPayloadToTypedData(rc)
138
+ );
139
+ } else if (this.signingFun != undefined) {
140
+ return await ReferralCodeSigner.getSignatureForCodeSelection(rc, this.signingFun);
141
+ } else {
59
142
  throw Error("no signer defined, call createSignerInstance()");
60
143
  }
61
- return await ReferralCodeSigner.getSignatureForCodeSelection(rc, this.signingFun);
62
144
  }
63
145
 
64
146
  public async getAddress(): Promise<string> {
@@ -127,6 +209,20 @@ export default class ReferralCodeSigner {
127
209
  return digest;
128
210
  }
129
211
 
212
+ /**
213
+ * Convert payload to data struct to sign
214
+ * @param rc payload
215
+ * @returns typed data
216
+ */
217
+ public static newReferralPayloadToTypedData(rc: APIReferPayload) {
218
+ return {
219
+ ParentAddr: rc.parentAddr as `0x${string}`,
220
+ ReferToAddr: rc.referToAddr as `0x${string}`,
221
+ PassOnPercTDF: Math.round(rc.passOnPercTDF),
222
+ CreatedOn: BigInt(Math.round(rc.createdOn)),
223
+ };
224
+ }
225
+
130
226
  /**
131
227
  * Create digest for referralCodePayload that is to be signed
132
228
  * @param rc payload
@@ -144,6 +240,20 @@ export default class ReferralCodeSigner {
144
240
  return digest;
145
241
  }
146
242
 
243
+ /**
244
+ * Convert payload to data struct to sign
245
+ * @param rc payload
246
+ * @returns typed data
247
+ */
248
+ public static referralCodeNewCodePayloadToTypedData(rc: APIReferralCodePayload) {
249
+ return {
250
+ Code: rc.code,
251
+ ReferrerAddr: rc.referrerAddr as `0x${string}`,
252
+ PassOnPercTDF: Math.round(rc.passOnPercTDF),
253
+ CreatedOn: BigInt(Math.round(rc.createdOn)),
254
+ };
255
+ }
256
+
147
257
  /**
148
258
  * Create digest for APIReferralCodeSelectionPayload that is to be signed
149
259
  * @param rc payload
@@ -157,6 +267,19 @@ export default class ReferralCodeSigner {
157
267
  return digest;
158
268
  }
159
269
 
270
+ /**
271
+ * Convert payload to data struct to sign
272
+ * @param rc payload
273
+ * @returns typed data
274
+ */
275
+ public static codeSelectionPayloadToTypedData(rc: APIReferralCodeSelectionPayload) {
276
+ return {
277
+ Code: rc.code,
278
+ TraderAddr: rc.traderAddr as `0x${string}`,
279
+ CreatedOn: BigInt(Math.round(rc.createdOn)),
280
+ };
281
+ }
282
+
160
283
  /**
161
284
  * Check whether signature is correct on payload:
162
285
  * - the referrer always signs
@@ -164,31 +287,60 @@ export default class ReferralCodeSigner {
164
287
  * @param rc referralcode payload with a signature
165
288
  * @returns true if correctly signed, false otherwise
166
289
  */
167
- public static async checkNewCodeSignature(rc: APIReferralCodePayload): Promise<boolean> {
290
+ public static checkNewCodeSignature(rc: APIReferralCodePayload) {
168
291
  if (rc.signature == undefined || rc.signature == "") {
169
292
  return false;
170
293
  }
171
294
  try {
172
- let digest = ReferralCodeSigner._referralCodeNewCodePayloadToMessage(rc);
173
- let digestBuffer = Buffer.from(digest.substring(2, digest.length), "hex");
174
- const signerAddress = await verifyMessage(digestBuffer, rc.signature);
295
+ // typed-data (^2.x.x)
296
+ const typedData = ReferralCodeSigner.referralCodeNewCodePayloadToTypedData(rc);
297
+ const signerAddress = verifyTypedData(
298
+ referralDomain,
299
+ { NewCode: referralTypes.NewCode },
300
+ typedData,
301
+ rc.signature
302
+ );
175
303
  return rc.referrerAddr.toLowerCase() == signerAddress.toLowerCase();
176
304
  } catch (err) {
177
- return false;
305
+ console.log(err);
306
+ // digest (1.x.x)
307
+ try {
308
+ let digest = ReferralCodeSigner._referralCodeNewCodePayloadToMessage(rc);
309
+ let digestBuffer = Buffer.from(digest.substring(2, digest.length), "hex");
310
+ const signerAddress = verifyMessage(digestBuffer, rc.signature);
311
+ return rc.referrerAddr.toLowerCase() == signerAddress.toLowerCase();
312
+ } catch (err) {
313
+ console.log(err);
314
+ return false;
315
+ }
178
316
  }
179
317
  }
180
318
 
181
- public static async checkCodeSelectionSignature(rc: APIReferralCodeSelectionPayload): Promise<boolean> {
319
+ public static checkCodeSelectionSignature(rc: APIReferralCodeSelectionPayload) {
182
320
  if (rc.signature == undefined || rc.signature == "") {
183
321
  return false;
184
322
  }
185
323
  try {
186
- let digest = ReferralCodeSigner._codeSelectionPayloadToMessage(rc);
187
- let digestBuffer = Buffer.from(digest.substring(2, digest.length), "hex");
188
- const signerAddress = await verifyMessage(digestBuffer, rc.signature);
324
+ // typed-data (^2.x.x)
325
+ const typedData = ReferralCodeSigner.codeSelectionPayloadToTypedData(rc);
326
+ const signerAddress = verifyTypedData(
327
+ referralDomain,
328
+ { CodeSelection: referralTypes.CodeSelection },
329
+ typedData,
330
+ rc.signature
331
+ );
189
332
  return rc.traderAddr.toLowerCase() == signerAddress.toLowerCase();
190
333
  } catch (err) {
191
- return false;
334
+ console.log(err);
335
+ // digest (1.x.x)
336
+ try {
337
+ let digest = ReferralCodeSigner._codeSelectionPayloadToMessage(rc);
338
+ let digestBuffer = Buffer.from(digest.substring(2, digest.length), "hex");
339
+ const signerAddress = verifyMessage(digestBuffer, rc.signature);
340
+ return rc.traderAddr.toLowerCase() == signerAddress.toLowerCase();
341
+ } catch (err) {
342
+ return false;
343
+ }
192
344
  }
193
345
  }
194
346
  }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const D8X_SDK_VERSION = "2.0.8-alpha";
1
+ export const D8X_SDK_VERSION = "2.0.10-alpha";
@@ -1 +0,0 @@
1
- {"version":3,"file":"PerpStorage__factory.js","sourceRoot":"","sources":["../../../../src/contracts/factories/PerpStorage__factory.ts"],"names":[],"mappings":"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"}