@d8x/perpetuals-sdk 2.0.9-alpha → 2.0.11-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.
- package/dist/cjs/abi-zkevm/IPerpetualManager.json +46 -0
- package/dist/cjs/nodeSDKTypes.d.ts +3 -0
- package/dist/cjs/nodeSDKTypes.js +15 -12
- package/dist/cjs/nodeSDKTypes.js.map +1 -1
- package/dist/cjs/polyMktsPxFeed.js +2 -1
- package/dist/cjs/polyMktsPxFeed.js.map +1 -1
- package/dist/cjs/referralCodeSigner.d.ts +14 -13
- package/dist/cjs/referralCodeSigner.js +50 -21
- package/dist/cjs/referralCodeSigner.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/abi-zkevm/IPerpetualManager.json +46 -0
- package/dist/esm/nodeSDKTypes.d.ts +3 -0
- package/dist/esm/nodeSDKTypes.js +14 -11
- package/dist/esm/nodeSDKTypes.js.map +1 -1
- package/dist/esm/polyMktsPxFeed.js +2 -1
- package/dist/esm/polyMktsPxFeed.js.map +1 -1
- package/dist/esm/referralCodeSigner.d.ts +14 -13
- package/dist/esm/referralCodeSigner.js +52 -23
- package/dist/esm/referralCodeSigner.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/package.json +2 -2
- package/src/abi-zkevm/IPerpetualManager.json +46 -0
- package/src/nodeSDKTypes.ts +14 -12
- package/src/polyMktsPxFeed.ts +2 -1
- package/src/referralCodeSigner.ts +106 -24
- package/src/version.ts +1 -1
|
@@ -2714,6 +2714,52 @@
|
|
|
2714
2714
|
"stateMutability": "view",
|
|
2715
2715
|
"type": "function"
|
|
2716
2716
|
},
|
|
2717
|
+
{
|
|
2718
|
+
"inputs": [
|
|
2719
|
+
{
|
|
2720
|
+
"internalType": "uint24[]",
|
|
2721
|
+
"name": "_perpetualIds",
|
|
2722
|
+
"type": "uint24[]"
|
|
2723
|
+
},
|
|
2724
|
+
{
|
|
2725
|
+
"internalType": "address",
|
|
2726
|
+
"name": "_traderAddress",
|
|
2727
|
+
"type": "address"
|
|
2728
|
+
}
|
|
2729
|
+
],
|
|
2730
|
+
"name": "getMarginAccounts",
|
|
2731
|
+
"outputs": [
|
|
2732
|
+
{
|
|
2733
|
+
"components": [
|
|
2734
|
+
{
|
|
2735
|
+
"internalType": "int128",
|
|
2736
|
+
"name": "fLockedInValueQC",
|
|
2737
|
+
"type": "int128"
|
|
2738
|
+
},
|
|
2739
|
+
{
|
|
2740
|
+
"internalType": "int128",
|
|
2741
|
+
"name": "fCashCC",
|
|
2742
|
+
"type": "int128"
|
|
2743
|
+
},
|
|
2744
|
+
{
|
|
2745
|
+
"internalType": "int128",
|
|
2746
|
+
"name": "fPositionBC",
|
|
2747
|
+
"type": "int128"
|
|
2748
|
+
},
|
|
2749
|
+
{
|
|
2750
|
+
"internalType": "int128",
|
|
2751
|
+
"name": "fUnitAccumulatedFundingStart",
|
|
2752
|
+
"type": "int128"
|
|
2753
|
+
}
|
|
2754
|
+
],
|
|
2755
|
+
"internalType": "struct PerpStorage.MarginAccount[]",
|
|
2756
|
+
"name": "",
|
|
2757
|
+
"type": "tuple[]"
|
|
2758
|
+
}
|
|
2759
|
+
],
|
|
2760
|
+
"stateMutability": "view",
|
|
2761
|
+
"type": "function"
|
|
2762
|
+
},
|
|
2717
2763
|
{
|
|
2718
2764
|
"inputs": [
|
|
2719
2765
|
{
|
|
@@ -409,6 +409,9 @@ export interface LiquidityPoolData {
|
|
|
409
409
|
totalSupplyShareToken: number;
|
|
410
410
|
fBrokerFundCashCC: number;
|
|
411
411
|
}
|
|
412
|
+
export declare const referralDomain: {
|
|
413
|
+
name: string;
|
|
414
|
+
};
|
|
412
415
|
export declare const referralTypes: {
|
|
413
416
|
NewCode: {
|
|
414
417
|
name: string;
|
package/dist/cjs/nodeSDKTypes.js
CHANGED
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.referralTypes = void 0;
|
|
3
|
+
exports.referralTypes = exports.referralDomain = void 0;
|
|
4
4
|
// referral types:
|
|
5
|
+
exports.referralDomain = {
|
|
6
|
+
name: "Referral System",
|
|
7
|
+
};
|
|
5
8
|
exports.referralTypes = {
|
|
6
9
|
// ["string", "address", "uint32", "uint256"],
|
|
7
10
|
// [rc.code, rc.referrerAddr, passOnPercTwoDigitsFormat, Math.round(rc.createdOn)]
|
|
8
11
|
NewCode: [
|
|
9
|
-
{ name: "
|
|
10
|
-
{ name: "
|
|
11
|
-
{ name: "
|
|
12
|
-
{ name: "
|
|
12
|
+
{ name: "Code", type: "string" },
|
|
13
|
+
{ name: "ReferrerAddr", type: "address" },
|
|
14
|
+
{ name: "PassOnPercTDF", type: "uint32" },
|
|
15
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
13
16
|
],
|
|
14
17
|
// ["address", "address", "uint32", "uint256"],
|
|
15
18
|
// [rc.parentAddr, rc.referToAddr, passOnPercTwoDigitsFormat, Math.round(rc.createdOn)]
|
|
16
19
|
NewReferral: [
|
|
17
|
-
{ name: "
|
|
18
|
-
{ name: "
|
|
19
|
-
{ name: "
|
|
20
|
-
{ name: "
|
|
20
|
+
{ name: "ParentAddr", type: "address" },
|
|
21
|
+
{ name: "ReferToAddr", type: "address" },
|
|
22
|
+
{ name: "PassOnPercTDF", type: "uint32" },
|
|
23
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
21
24
|
],
|
|
22
25
|
// ["string", "address", "uint256"], [rc.code, rc.traderAddr, Math.round(rc.createdOn)]
|
|
23
26
|
CodeSelection: [
|
|
24
|
-
{ name: "
|
|
25
|
-
{ name: "
|
|
26
|
-
{ name: "
|
|
27
|
+
{ name: "Code", type: "string" },
|
|
28
|
+
{ name: "TraderAddr", type: "address" },
|
|
29
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
27
30
|
],
|
|
28
31
|
};
|
|
29
32
|
//# sourceMappingURL=nodeSDKTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeSDKTypes.js","sourceRoot":"","sources":["../../src/nodeSDKTypes.ts"],"names":[],"mappings":";;;AAofA,kBAAkB;
|
|
1
|
+
{"version":3,"file":"nodeSDKTypes.js","sourceRoot":"","sources":["../../src/nodeSDKTypes.ts"],"names":[],"mappings":";;;AAofA,kBAAkB;AACL,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,iBAAiB;CACxB,CAAC;AACW,QAAA,aAAa,GAAG;IAC3B,+CAA+C;IAC/C,mFAAmF;IACnF,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;QACzC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC;IACD,+CAA+C;IAC/C,uFAAuF;IACvF,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;QACxC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC;IACD,uFAAuF;IACvF,aAAa,EAAE;QACb,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC;CACF,CAAC"}
|
|
@@ -30,7 +30,8 @@ class PolyMktsPxFeed {
|
|
|
30
30
|
if (mkt == undefined) {
|
|
31
31
|
throw new Error(`symbol not in polymarket universe: ${sym}`);
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
const px = await this.fetchPrice(mkt.idDec);
|
|
34
|
+
return px;
|
|
34
35
|
}
|
|
35
36
|
async fetchPrice(tokenIdDec) {
|
|
36
37
|
const query = "https://clob.polymarket.com/midpoint?token_id=" + tokenIdDec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polyMktsPxFeed.js","sourceRoot":"","sources":["../../src/polyMktsPxFeed.ts"],"names":[],"mappings":";;AAAA,uCAAwC;AASxC;;;;GAIG;AACH,MAAqB,cAAc;IAGjC,YAAY,MAAuB;QACjC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY,EAAE;gBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACjC,MAAM,KAAK,GAAG,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,MAAM,EAAE,GAAe;oBACrB,GAAG,EAAE,GAAG;oBACR,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBACpB,KAAK,EAAE,KAAK;iBACb,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aACvB;SACF;IACH,CAAC;IAEM,aAAa,CAAC,GAAW;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,GAAW;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,SAAS,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;SAC9D;QACD,
|
|
1
|
+
{"version":3,"file":"polyMktsPxFeed.js","sourceRoot":"","sources":["../../src/polyMktsPxFeed.ts"],"names":[],"mappings":";;AAAA,uCAAwC;AASxC;;;;GAIG;AACH,MAAqB,cAAc;IAGjC,YAAY,MAAuB;QACjC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY,EAAE;gBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACjC,MAAM,KAAK,GAAG,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,MAAM,EAAE,GAAe;oBACrB,GAAG,EAAE,GAAG;oBACR,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBACpB,KAAK,EAAE,KAAK;iBACb,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aACvB;SACF;IACH,CAAC;IAEM,aAAa,CAAC,GAAW;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,GAAW;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,SAAS,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;SAC9D;QACD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,UAAkB;QACxC,MAAM,KAAK,GAAG,gDAAgD,GAAG,UAAU,CAAC;QAC5E,IAAI,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/D;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;SAChG;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,IAAA,qBAAW,EAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,SAAiB;QACzC,sCAAsC;QACtC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC9B,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAChC;QAED,qCAAqC;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;QAE7C,yCAAyC;QACzC,OAAO,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;CACF;AA1DD,iCA0DC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Signer } from "ethers";
|
|
1
|
+
import { Signer, TypedDataDomain, TypedDataField } from "ethers";
|
|
2
2
|
import { APIReferPayload, APIReferralCodePayload, APIReferralCodeSelectionPayload } from "./nodeSDKTypes";
|
|
3
3
|
/**
|
|
4
4
|
* This is a 'standalone' class that deals with signatures
|
|
@@ -14,8 +14,9 @@ export default class ReferralCodeSigner {
|
|
|
14
14
|
private provider;
|
|
15
15
|
private rpcURL;
|
|
16
16
|
private signingFun;
|
|
17
|
+
private signingTypedDataFun;
|
|
17
18
|
private address;
|
|
18
|
-
constructor(signer: Signer | string | ((x: string | Uint8Array) => Promise<string>), address: string, _rpcURL: string);
|
|
19
|
+
constructor(signer: Signer | string | ((x: string | Uint8Array) => Promise<string>) | ((domain: TypedDataDomain, types: Record<string, TypedDataField[]>, value: Record<string, any>) => Promise<string>), address: string, _rpcURL: string);
|
|
19
20
|
createSignerInstance(_privateKey: string): Signer;
|
|
20
21
|
getSignatureForNewReferral(rp: APIReferPayload): Promise<string>;
|
|
21
22
|
getSignatureForNewCode(rc: APIReferralCodePayload): Promise<string>;
|
|
@@ -45,10 +46,10 @@ export default class ReferralCodeSigner {
|
|
|
45
46
|
* @returns typed data
|
|
46
47
|
*/
|
|
47
48
|
static newReferralPayloadToTypedData(rc: APIReferPayload): {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
ParentAddr: `0x${string}`;
|
|
50
|
+
ReferToAddr: `0x${string}`;
|
|
51
|
+
PassOnPercTDF: number;
|
|
52
|
+
CreatedOn: bigint;
|
|
52
53
|
};
|
|
53
54
|
/**
|
|
54
55
|
* Create digest for referralCodePayload that is to be signed
|
|
@@ -62,10 +63,10 @@ export default class ReferralCodeSigner {
|
|
|
62
63
|
* @returns typed data
|
|
63
64
|
*/
|
|
64
65
|
static referralCodeNewCodePayloadToTypedData(rc: APIReferralCodePayload): {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
Code: string;
|
|
67
|
+
ReferrerAddr: `0x${string}`;
|
|
68
|
+
PassOnPercTDF: number;
|
|
69
|
+
CreatedOn: bigint;
|
|
69
70
|
};
|
|
70
71
|
/**
|
|
71
72
|
* Create digest for APIReferralCodeSelectionPayload that is to be signed
|
|
@@ -79,9 +80,9 @@ export default class ReferralCodeSigner {
|
|
|
79
80
|
* @returns typed data
|
|
80
81
|
*/
|
|
81
82
|
static codeSelectionPayloadToTypedData(rc: APIReferralCodeSelectionPayload): {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
Code: string;
|
|
84
|
+
TraderAddr: `0x${string}`;
|
|
85
|
+
CreatedOn: bigint;
|
|
85
86
|
};
|
|
86
87
|
/**
|
|
87
88
|
* Check whether signature is correct on payload:
|
|
@@ -19,36 +19,65 @@ class ReferralCodeSigner {
|
|
|
19
19
|
if (typeof signer == "string") {
|
|
20
20
|
const wallet = this.createSignerInstance(signer);
|
|
21
21
|
this.signingFun = (x) => wallet.signMessage(x);
|
|
22
|
+
this.signingTypedDataFun = (domain, types, value) => wallet.signTypedData(domain, types, value);
|
|
22
23
|
}
|
|
23
24
|
else if ("signMessage" in signer) {
|
|
24
25
|
this.signingFun = (x) => signer.signMessage(x);
|
|
26
|
+
this.signingTypedDataFun = (domain, types, value) => signer.signTypedData(domain, types, value);
|
|
25
27
|
}
|
|
26
|
-
else {
|
|
28
|
+
else if (signer.length === 1) {
|
|
27
29
|
this.signingFun = signer;
|
|
28
30
|
}
|
|
31
|
+
else {
|
|
32
|
+
this.signingTypedDataFun = signer;
|
|
33
|
+
}
|
|
29
34
|
}
|
|
30
35
|
createSignerInstance(_privateKey) {
|
|
31
36
|
this.provider = new ethers_1.JsonRpcProvider(this.rpcURL);
|
|
32
37
|
const wallet = new ethers_1.Wallet(_privateKey);
|
|
33
|
-
|
|
38
|
+
wallet.connect(this.provider);
|
|
39
|
+
this.signingFun = (x) => wallet.signMessage(x);
|
|
40
|
+
this.signingTypedDataFun = (domain, types, value) => wallet.signTypedData(domain, types, value);
|
|
41
|
+
return wallet;
|
|
34
42
|
}
|
|
35
43
|
async getSignatureForNewReferral(rp) {
|
|
36
|
-
if (this.
|
|
44
|
+
if (this.signingTypedDataFun != undefined) {
|
|
45
|
+
return await this.signingTypedDataFun(nodeSDKTypes_1.referralDomain, {
|
|
46
|
+
NewReferral: nodeSDKTypes_1.referralTypes.NewReferral,
|
|
47
|
+
}, ReferralCodeSigner.newReferralPayloadToTypedData(rp));
|
|
48
|
+
}
|
|
49
|
+
else if (this.signingFun != undefined) {
|
|
50
|
+
return await ReferralCodeSigner.getSignatureForNewReferral(rp, this.signingFun);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
37
53
|
throw Error("no signer defined, call createSignerInstance()");
|
|
38
54
|
}
|
|
39
|
-
return await ReferralCodeSigner.getSignatureForNewReferral(rp, this.signingFun);
|
|
40
55
|
}
|
|
41
56
|
async getSignatureForNewCode(rc) {
|
|
42
|
-
if (this.
|
|
57
|
+
if (this.signingTypedDataFun != undefined) {
|
|
58
|
+
return await this.signingTypedDataFun(nodeSDKTypes_1.referralDomain, {
|
|
59
|
+
NewCode: nodeSDKTypes_1.referralTypes.NewCode,
|
|
60
|
+
}, ReferralCodeSigner.referralCodeNewCodePayloadToTypedData(rc));
|
|
61
|
+
}
|
|
62
|
+
else if (this.signingFun != undefined) {
|
|
63
|
+
return await ReferralCodeSigner.getSignatureForNewCode(rc, this.signingFun);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
43
66
|
throw Error("no signer defined, call createSignerInstance()");
|
|
44
67
|
}
|
|
45
|
-
return await ReferralCodeSigner.getSignatureForNewCode(rc, this.signingFun);
|
|
46
68
|
}
|
|
47
69
|
async getSignatureForCodeSelection(rc) {
|
|
48
|
-
if (this.
|
|
70
|
+
if (this.signingTypedDataFun != undefined) {
|
|
71
|
+
return await this.signingTypedDataFun(nodeSDKTypes_1.referralDomain, {
|
|
72
|
+
CodeSelection: nodeSDKTypes_1.referralTypes.CodeSelection,
|
|
73
|
+
}, ReferralCodeSigner.codeSelectionPayloadToTypedData(rc));
|
|
74
|
+
}
|
|
75
|
+
else if (this.signingFun != undefined) {
|
|
76
|
+
return await ReferralCodeSigner.getSignatureForCodeSelection(rc, this.signingFun);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
49
79
|
throw Error("no signer defined, call createSignerInstance()");
|
|
50
80
|
}
|
|
51
|
-
return await ReferralCodeSigner.getSignatureForCodeSelection(rc, this.signingFun);
|
|
52
81
|
}
|
|
53
82
|
async getAddress() {
|
|
54
83
|
if (this.signingFun == undefined) {
|
|
@@ -104,10 +133,10 @@ class ReferralCodeSigner {
|
|
|
104
133
|
*/
|
|
105
134
|
static newReferralPayloadToTypedData(rc) {
|
|
106
135
|
return {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
136
|
+
ParentAddr: rc.parentAddr,
|
|
137
|
+
ReferToAddr: rc.referToAddr,
|
|
138
|
+
PassOnPercTDF: Math.round(rc.passOnPercTDF),
|
|
139
|
+
CreatedOn: BigInt(Math.round(rc.createdOn)),
|
|
111
140
|
};
|
|
112
141
|
}
|
|
113
142
|
/**
|
|
@@ -128,10 +157,10 @@ class ReferralCodeSigner {
|
|
|
128
157
|
*/
|
|
129
158
|
static referralCodeNewCodePayloadToTypedData(rc) {
|
|
130
159
|
return {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
160
|
+
Code: rc.code,
|
|
161
|
+
ReferrerAddr: rc.referrerAddr,
|
|
162
|
+
PassOnPercTDF: Math.round(rc.passOnPercTDF),
|
|
163
|
+
CreatedOn: BigInt(Math.round(rc.createdOn)),
|
|
135
164
|
};
|
|
136
165
|
}
|
|
137
166
|
/**
|
|
@@ -151,9 +180,9 @@ class ReferralCodeSigner {
|
|
|
151
180
|
*/
|
|
152
181
|
static codeSelectionPayloadToTypedData(rc) {
|
|
153
182
|
return {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
183
|
+
Code: rc.code,
|
|
184
|
+
TraderAddr: rc.traderAddr,
|
|
185
|
+
CreatedOn: BigInt(Math.round(rc.createdOn)),
|
|
157
186
|
};
|
|
158
187
|
}
|
|
159
188
|
/**
|
|
@@ -170,7 +199,7 @@ class ReferralCodeSigner {
|
|
|
170
199
|
try {
|
|
171
200
|
// typed-data (^2.x.x)
|
|
172
201
|
const typedData = ReferralCodeSigner.referralCodeNewCodePayloadToTypedData(rc);
|
|
173
|
-
const signerAddress = (0, ethers_1.verifyTypedData)(
|
|
202
|
+
const signerAddress = (0, ethers_1.verifyTypedData)(nodeSDKTypes_1.referralDomain, { NewCode: nodeSDKTypes_1.referralTypes.NewCode }, typedData, rc.signature);
|
|
174
203
|
return rc.referrerAddr.toLowerCase() == signerAddress.toLowerCase();
|
|
175
204
|
}
|
|
176
205
|
catch (err) {
|
|
@@ -195,7 +224,7 @@ class ReferralCodeSigner {
|
|
|
195
224
|
try {
|
|
196
225
|
// typed-data (^2.x.x)
|
|
197
226
|
const typedData = ReferralCodeSigner.codeSelectionPayloadToTypedData(rc);
|
|
198
|
-
const signerAddress = (0, ethers_1.verifyTypedData)(
|
|
227
|
+
const signerAddress = (0, ethers_1.verifyTypedData)(nodeSDKTypes_1.referralDomain, { CodeSelection: nodeSDKTypes_1.referralTypes.CodeSelection }, typedData, rc.signature);
|
|
199
228
|
return rc.traderAddr.toLowerCase() == signerAddress.toLowerCase();
|
|
200
229
|
}
|
|
201
230
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referralCodeSigner.js","sourceRoot":"","sources":["../../src/referralCodeSigner.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"referralCodeSigner.js","sourceRoot":"","sources":["../../src/referralCodeSigner.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const D8X_SDK_VERSION = "2.0.
|
|
1
|
+
export declare const D8X_SDK_VERSION = "2.0.11-alpha";
|
package/dist/cjs/version.js
CHANGED
package/dist/cjs/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,cAAc,CAAC"}
|
|
@@ -2714,6 +2714,52 @@
|
|
|
2714
2714
|
"stateMutability": "view",
|
|
2715
2715
|
"type": "function"
|
|
2716
2716
|
},
|
|
2717
|
+
{
|
|
2718
|
+
"inputs": [
|
|
2719
|
+
{
|
|
2720
|
+
"internalType": "uint24[]",
|
|
2721
|
+
"name": "_perpetualIds",
|
|
2722
|
+
"type": "uint24[]"
|
|
2723
|
+
},
|
|
2724
|
+
{
|
|
2725
|
+
"internalType": "address",
|
|
2726
|
+
"name": "_traderAddress",
|
|
2727
|
+
"type": "address"
|
|
2728
|
+
}
|
|
2729
|
+
],
|
|
2730
|
+
"name": "getMarginAccounts",
|
|
2731
|
+
"outputs": [
|
|
2732
|
+
{
|
|
2733
|
+
"components": [
|
|
2734
|
+
{
|
|
2735
|
+
"internalType": "int128",
|
|
2736
|
+
"name": "fLockedInValueQC",
|
|
2737
|
+
"type": "int128"
|
|
2738
|
+
},
|
|
2739
|
+
{
|
|
2740
|
+
"internalType": "int128",
|
|
2741
|
+
"name": "fCashCC",
|
|
2742
|
+
"type": "int128"
|
|
2743
|
+
},
|
|
2744
|
+
{
|
|
2745
|
+
"internalType": "int128",
|
|
2746
|
+
"name": "fPositionBC",
|
|
2747
|
+
"type": "int128"
|
|
2748
|
+
},
|
|
2749
|
+
{
|
|
2750
|
+
"internalType": "int128",
|
|
2751
|
+
"name": "fUnitAccumulatedFundingStart",
|
|
2752
|
+
"type": "int128"
|
|
2753
|
+
}
|
|
2754
|
+
],
|
|
2755
|
+
"internalType": "struct PerpStorage.MarginAccount[]",
|
|
2756
|
+
"name": "",
|
|
2757
|
+
"type": "tuple[]"
|
|
2758
|
+
}
|
|
2759
|
+
],
|
|
2760
|
+
"stateMutability": "view",
|
|
2761
|
+
"type": "function"
|
|
2762
|
+
},
|
|
2717
2763
|
{
|
|
2718
2764
|
"inputs": [
|
|
2719
2765
|
{
|
|
@@ -409,6 +409,9 @@ export interface LiquidityPoolData {
|
|
|
409
409
|
totalSupplyShareToken: number;
|
|
410
410
|
fBrokerFundCashCC: number;
|
|
411
411
|
}
|
|
412
|
+
export declare const referralDomain: {
|
|
413
|
+
name: string;
|
|
414
|
+
};
|
|
412
415
|
export declare const referralTypes: {
|
|
413
416
|
NewCode: {
|
|
414
417
|
name: string;
|
package/dist/esm/nodeSDKTypes.js
CHANGED
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
// referral types:
|
|
2
|
+
export const referralDomain = {
|
|
3
|
+
name: "Referral System",
|
|
4
|
+
};
|
|
2
5
|
export const referralTypes = {
|
|
3
6
|
// ["string", "address", "uint32", "uint256"],
|
|
4
7
|
// [rc.code, rc.referrerAddr, passOnPercTwoDigitsFormat, Math.round(rc.createdOn)]
|
|
5
8
|
NewCode: [
|
|
6
|
-
{ name: "
|
|
7
|
-
{ name: "
|
|
8
|
-
{ name: "
|
|
9
|
-
{ name: "
|
|
9
|
+
{ name: "Code", type: "string" },
|
|
10
|
+
{ name: "ReferrerAddr", type: "address" },
|
|
11
|
+
{ name: "PassOnPercTDF", type: "uint32" },
|
|
12
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
10
13
|
],
|
|
11
14
|
// ["address", "address", "uint32", "uint256"],
|
|
12
15
|
// [rc.parentAddr, rc.referToAddr, passOnPercTwoDigitsFormat, Math.round(rc.createdOn)]
|
|
13
16
|
NewReferral: [
|
|
14
|
-
{ name: "
|
|
15
|
-
{ name: "
|
|
16
|
-
{ name: "
|
|
17
|
-
{ name: "
|
|
17
|
+
{ name: "ParentAddr", type: "address" },
|
|
18
|
+
{ name: "ReferToAddr", type: "address" },
|
|
19
|
+
{ name: "PassOnPercTDF", type: "uint32" },
|
|
20
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
18
21
|
],
|
|
19
22
|
// ["string", "address", "uint256"], [rc.code, rc.traderAddr, Math.round(rc.createdOn)]
|
|
20
23
|
CodeSelection: [
|
|
21
|
-
{ name: "
|
|
22
|
-
{ name: "
|
|
23
|
-
{ name: "
|
|
24
|
+
{ name: "Code", type: "string" },
|
|
25
|
+
{ name: "TraderAddr", type: "address" },
|
|
26
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
24
27
|
],
|
|
25
28
|
};
|
|
26
29
|
//# sourceMappingURL=nodeSDKTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeSDKTypes.js","sourceRoot":"","sources":["../../src/nodeSDKTypes.ts"],"names":[],"mappings":"AAofA,kBAAkB;
|
|
1
|
+
{"version":3,"file":"nodeSDKTypes.js","sourceRoot":"","sources":["../../src/nodeSDKTypes.ts"],"names":[],"mappings":"AAofA,kBAAkB;AAClB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,iBAAiB;CACxB,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,+CAA+C;IAC/C,mFAAmF;IACnF,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;QACzC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC;IACD,+CAA+C;IAC/C,uFAAuF;IACvF,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;QACxC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC;IACD,uFAAuF;IACvF,aAAa,EAAE;QACb,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC;CACF,CAAC"}
|
|
@@ -28,7 +28,8 @@ export default class PolyMktsPxFeed {
|
|
|
28
28
|
if (mkt == undefined) {
|
|
29
29
|
throw new Error(`symbol not in polymarket universe: ${sym}`);
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
const px = await this.fetchPrice(mkt.idDec);
|
|
32
|
+
return px;
|
|
32
33
|
}
|
|
33
34
|
async fetchPrice(tokenIdDec) {
|
|
34
35
|
const query = "https://clob.polymarket.com/midpoint?token_id=" + tokenIdDec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polyMktsPxFeed.js","sourceRoot":"","sources":["../../src/polyMktsPxFeed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AASxC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAGjC,YAAY,MAAuB;QACjC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY,EAAE;gBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACjC,MAAM,KAAK,GAAG,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,MAAM,EAAE,GAAe;oBACrB,GAAG,EAAE,GAAG;oBACR,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBACpB,KAAK,EAAE,KAAK;iBACb,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aACvB;SACF;IACH,CAAC;IAEM,aAAa,CAAC,GAAW;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,GAAW;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,SAAS,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;SAC9D;QACD,
|
|
1
|
+
{"version":3,"file":"polyMktsPxFeed.js","sourceRoot":"","sources":["../../src/polyMktsPxFeed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AASxC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAGjC,YAAY,MAAuB;QACjC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY,EAAE;gBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACjC,MAAM,KAAK,GAAG,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClE,MAAM,EAAE,GAAe;oBACrB,GAAG,EAAE,GAAG;oBACR,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBACpB,KAAK,EAAE,KAAK;iBACb,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aACvB;SACF;IACH,CAAC;IAEM,aAAa,CAAC,GAAW;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,GAAW;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,SAAS,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;SAC9D;QACD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,UAAkB;QACxC,MAAM,KAAK,GAAG,gDAAgD,GAAG,UAAU,CAAC;QAC5E,IAAI,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/D;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;SAChG;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,SAAiB;QACzC,sCAAsC;QACtC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC9B,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAChC;QAED,qCAAqC;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;QAE7C,yCAAyC;QACzC,OAAO,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Signer } from "ethers";
|
|
1
|
+
import { Signer, TypedDataDomain, TypedDataField } from "ethers";
|
|
2
2
|
import { APIReferPayload, APIReferralCodePayload, APIReferralCodeSelectionPayload } from "./nodeSDKTypes";
|
|
3
3
|
/**
|
|
4
4
|
* This is a 'standalone' class that deals with signatures
|
|
@@ -14,8 +14,9 @@ export default class ReferralCodeSigner {
|
|
|
14
14
|
private provider;
|
|
15
15
|
private rpcURL;
|
|
16
16
|
private signingFun;
|
|
17
|
+
private signingTypedDataFun;
|
|
17
18
|
private address;
|
|
18
|
-
constructor(signer: Signer | string | ((x: string | Uint8Array) => Promise<string>), address: string, _rpcURL: string);
|
|
19
|
+
constructor(signer: Signer | string | ((x: string | Uint8Array) => Promise<string>) | ((domain: TypedDataDomain, types: Record<string, TypedDataField[]>, value: Record<string, any>) => Promise<string>), address: string, _rpcURL: string);
|
|
19
20
|
createSignerInstance(_privateKey: string): Signer;
|
|
20
21
|
getSignatureForNewReferral(rp: APIReferPayload): Promise<string>;
|
|
21
22
|
getSignatureForNewCode(rc: APIReferralCodePayload): Promise<string>;
|
|
@@ -45,10 +46,10 @@ export default class ReferralCodeSigner {
|
|
|
45
46
|
* @returns typed data
|
|
46
47
|
*/
|
|
47
48
|
static newReferralPayloadToTypedData(rc: APIReferPayload): {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
ParentAddr: `0x${string}`;
|
|
50
|
+
ReferToAddr: `0x${string}`;
|
|
51
|
+
PassOnPercTDF: number;
|
|
52
|
+
CreatedOn: bigint;
|
|
52
53
|
};
|
|
53
54
|
/**
|
|
54
55
|
* Create digest for referralCodePayload that is to be signed
|
|
@@ -62,10 +63,10 @@ export default class ReferralCodeSigner {
|
|
|
62
63
|
* @returns typed data
|
|
63
64
|
*/
|
|
64
65
|
static referralCodeNewCodePayloadToTypedData(rc: APIReferralCodePayload): {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
Code: string;
|
|
67
|
+
ReferrerAddr: `0x${string}`;
|
|
68
|
+
PassOnPercTDF: number;
|
|
69
|
+
CreatedOn: bigint;
|
|
69
70
|
};
|
|
70
71
|
/**
|
|
71
72
|
* Create digest for APIReferralCodeSelectionPayload that is to be signed
|
|
@@ -79,9 +80,9 @@ export default class ReferralCodeSigner {
|
|
|
79
80
|
* @returns typed data
|
|
80
81
|
*/
|
|
81
82
|
static codeSelectionPayloadToTypedData(rc: APIReferralCodeSelectionPayload): {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
Code: string;
|
|
84
|
+
TraderAddr: `0x${string}`;
|
|
85
|
+
CreatedOn: bigint;
|
|
85
86
|
};
|
|
86
87
|
/**
|
|
87
88
|
* Check whether signature is correct on payload:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AbiCoder, JsonRpcProvider, keccak256, verifyMessage, verifyTypedData, Wallet } from "ethers";
|
|
2
|
-
import { referralTypes, } from "./nodeSDKTypes";
|
|
1
|
+
import { AbiCoder, JsonRpcProvider, keccak256, verifyMessage, verifyTypedData, Wallet, } from "ethers";
|
|
2
|
+
import { referralDomain, referralTypes, } from "./nodeSDKTypes";
|
|
3
3
|
/**
|
|
4
4
|
* This is a 'standalone' class that deals with signatures
|
|
5
5
|
* required for referral codes:
|
|
@@ -17,36 +17,65 @@ export default class ReferralCodeSigner {
|
|
|
17
17
|
if (typeof signer == "string") {
|
|
18
18
|
const wallet = this.createSignerInstance(signer);
|
|
19
19
|
this.signingFun = (x) => wallet.signMessage(x);
|
|
20
|
+
this.signingTypedDataFun = (domain, types, value) => wallet.signTypedData(domain, types, value);
|
|
20
21
|
}
|
|
21
22
|
else if ("signMessage" in signer) {
|
|
22
23
|
this.signingFun = (x) => signer.signMessage(x);
|
|
24
|
+
this.signingTypedDataFun = (domain, types, value) => signer.signTypedData(domain, types, value);
|
|
23
25
|
}
|
|
24
|
-
else {
|
|
26
|
+
else if (signer.length === 1) {
|
|
25
27
|
this.signingFun = signer;
|
|
26
28
|
}
|
|
29
|
+
else {
|
|
30
|
+
this.signingTypedDataFun = signer;
|
|
31
|
+
}
|
|
27
32
|
}
|
|
28
33
|
createSignerInstance(_privateKey) {
|
|
29
34
|
this.provider = new JsonRpcProvider(this.rpcURL);
|
|
30
35
|
const wallet = new Wallet(_privateKey);
|
|
31
|
-
|
|
36
|
+
wallet.connect(this.provider);
|
|
37
|
+
this.signingFun = (x) => wallet.signMessage(x);
|
|
38
|
+
this.signingTypedDataFun = (domain, types, value) => wallet.signTypedData(domain, types, value);
|
|
39
|
+
return wallet;
|
|
32
40
|
}
|
|
33
41
|
async getSignatureForNewReferral(rp) {
|
|
34
|
-
if (this.
|
|
42
|
+
if (this.signingTypedDataFun != undefined) {
|
|
43
|
+
return await this.signingTypedDataFun(referralDomain, {
|
|
44
|
+
NewReferral: referralTypes.NewReferral,
|
|
45
|
+
}, ReferralCodeSigner.newReferralPayloadToTypedData(rp));
|
|
46
|
+
}
|
|
47
|
+
else if (this.signingFun != undefined) {
|
|
48
|
+
return await ReferralCodeSigner.getSignatureForNewReferral(rp, this.signingFun);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
35
51
|
throw Error("no signer defined, call createSignerInstance()");
|
|
36
52
|
}
|
|
37
|
-
return await ReferralCodeSigner.getSignatureForNewReferral(rp, this.signingFun);
|
|
38
53
|
}
|
|
39
54
|
async getSignatureForNewCode(rc) {
|
|
40
|
-
if (this.
|
|
55
|
+
if (this.signingTypedDataFun != undefined) {
|
|
56
|
+
return await this.signingTypedDataFun(referralDomain, {
|
|
57
|
+
NewCode: referralTypes.NewCode,
|
|
58
|
+
}, ReferralCodeSigner.referralCodeNewCodePayloadToTypedData(rc));
|
|
59
|
+
}
|
|
60
|
+
else if (this.signingFun != undefined) {
|
|
61
|
+
return await ReferralCodeSigner.getSignatureForNewCode(rc, this.signingFun);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
41
64
|
throw Error("no signer defined, call createSignerInstance()");
|
|
42
65
|
}
|
|
43
|
-
return await ReferralCodeSigner.getSignatureForNewCode(rc, this.signingFun);
|
|
44
66
|
}
|
|
45
67
|
async getSignatureForCodeSelection(rc) {
|
|
46
|
-
if (this.
|
|
68
|
+
if (this.signingTypedDataFun != undefined) {
|
|
69
|
+
return await this.signingTypedDataFun(referralDomain, {
|
|
70
|
+
CodeSelection: referralTypes.CodeSelection,
|
|
71
|
+
}, ReferralCodeSigner.codeSelectionPayloadToTypedData(rc));
|
|
72
|
+
}
|
|
73
|
+
else if (this.signingFun != undefined) {
|
|
74
|
+
return await ReferralCodeSigner.getSignatureForCodeSelection(rc, this.signingFun);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
47
77
|
throw Error("no signer defined, call createSignerInstance()");
|
|
48
78
|
}
|
|
49
|
-
return await ReferralCodeSigner.getSignatureForCodeSelection(rc, this.signingFun);
|
|
50
79
|
}
|
|
51
80
|
async getAddress() {
|
|
52
81
|
if (this.signingFun == undefined) {
|
|
@@ -102,10 +131,10 @@ export default class ReferralCodeSigner {
|
|
|
102
131
|
*/
|
|
103
132
|
static newReferralPayloadToTypedData(rc) {
|
|
104
133
|
return {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
134
|
+
ParentAddr: rc.parentAddr,
|
|
135
|
+
ReferToAddr: rc.referToAddr,
|
|
136
|
+
PassOnPercTDF: Math.round(rc.passOnPercTDF),
|
|
137
|
+
CreatedOn: BigInt(Math.round(rc.createdOn)),
|
|
109
138
|
};
|
|
110
139
|
}
|
|
111
140
|
/**
|
|
@@ -126,10 +155,10 @@ export default class ReferralCodeSigner {
|
|
|
126
155
|
*/
|
|
127
156
|
static referralCodeNewCodePayloadToTypedData(rc) {
|
|
128
157
|
return {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
158
|
+
Code: rc.code,
|
|
159
|
+
ReferrerAddr: rc.referrerAddr,
|
|
160
|
+
PassOnPercTDF: Math.round(rc.passOnPercTDF),
|
|
161
|
+
CreatedOn: BigInt(Math.round(rc.createdOn)),
|
|
133
162
|
};
|
|
134
163
|
}
|
|
135
164
|
/**
|
|
@@ -149,9 +178,9 @@ export default class ReferralCodeSigner {
|
|
|
149
178
|
*/
|
|
150
179
|
static codeSelectionPayloadToTypedData(rc) {
|
|
151
180
|
return {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
181
|
+
Code: rc.code,
|
|
182
|
+
TraderAddr: rc.traderAddr,
|
|
183
|
+
CreatedOn: BigInt(Math.round(rc.createdOn)),
|
|
155
184
|
};
|
|
156
185
|
}
|
|
157
186
|
/**
|
|
@@ -168,7 +197,7 @@ export default class ReferralCodeSigner {
|
|
|
168
197
|
try {
|
|
169
198
|
// typed-data (^2.x.x)
|
|
170
199
|
const typedData = ReferralCodeSigner.referralCodeNewCodePayloadToTypedData(rc);
|
|
171
|
-
const signerAddress = verifyTypedData(
|
|
200
|
+
const signerAddress = verifyTypedData(referralDomain, { NewCode: referralTypes.NewCode }, typedData, rc.signature);
|
|
172
201
|
return rc.referrerAddr.toLowerCase() == signerAddress.toLowerCase();
|
|
173
202
|
}
|
|
174
203
|
catch (err) {
|
|
@@ -193,7 +222,7 @@ export default class ReferralCodeSigner {
|
|
|
193
222
|
try {
|
|
194
223
|
// typed-data (^2.x.x)
|
|
195
224
|
const typedData = ReferralCodeSigner.codeSelectionPayloadToTypedData(rc);
|
|
196
|
-
const signerAddress = verifyTypedData(
|
|
225
|
+
const signerAddress = verifyTypedData(referralDomain, { CodeSelection: referralTypes.CodeSelection }, typedData, rc.signature);
|
|
197
226
|
return rc.traderAddr.toLowerCase() == signerAddress.toLowerCase();
|
|
198
227
|
}
|
|
199
228
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referralCodeSigner.js","sourceRoot":"","sources":["../../src/referralCodeSigner.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"referralCodeSigner.js","sourceRoot":"","sources":["../../src/referralCodeSigner.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const D8X_SDK_VERSION = "2.0.
|
|
1
|
+
export declare const D8X_SDK_VERSION = "2.0.11-alpha";
|
package/dist/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const D8X_SDK_VERSION = "2.0.
|
|
1
|
+
export const D8X_SDK_VERSION = "2.0.11-alpha";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/dist/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@d8x/perpetuals-sdk",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.11-alpha",
|
|
4
4
|
"description": "Node TypeScript SDK for D8X Perpetual Futures",
|
|
5
5
|
"author": "D8X",
|
|
6
6
|
"homepage": "https://github.com/D8-X/d8x-futures-node-sdk#readme",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"prepublish": "yarn build",
|
|
32
32
|
"prepare": "npm run build",
|
|
33
33
|
"typechain": "typechain --target ethers-v6 --out-dir ./src/contracts './src/abi/**/*.json'",
|
|
34
|
-
"postinstall": "patch-package"
|
|
34
|
+
"postinstall": "npx patch-package"
|
|
35
35
|
},
|
|
36
36
|
"main": "./dist/cjs/index.js",
|
|
37
37
|
"module": "./dist/esm/index.js",
|
|
@@ -2714,6 +2714,52 @@
|
|
|
2714
2714
|
"stateMutability": "view",
|
|
2715
2715
|
"type": "function"
|
|
2716
2716
|
},
|
|
2717
|
+
{
|
|
2718
|
+
"inputs": [
|
|
2719
|
+
{
|
|
2720
|
+
"internalType": "uint24[]",
|
|
2721
|
+
"name": "_perpetualIds",
|
|
2722
|
+
"type": "uint24[]"
|
|
2723
|
+
},
|
|
2724
|
+
{
|
|
2725
|
+
"internalType": "address",
|
|
2726
|
+
"name": "_traderAddress",
|
|
2727
|
+
"type": "address"
|
|
2728
|
+
}
|
|
2729
|
+
],
|
|
2730
|
+
"name": "getMarginAccounts",
|
|
2731
|
+
"outputs": [
|
|
2732
|
+
{
|
|
2733
|
+
"components": [
|
|
2734
|
+
{
|
|
2735
|
+
"internalType": "int128",
|
|
2736
|
+
"name": "fLockedInValueQC",
|
|
2737
|
+
"type": "int128"
|
|
2738
|
+
},
|
|
2739
|
+
{
|
|
2740
|
+
"internalType": "int128",
|
|
2741
|
+
"name": "fCashCC",
|
|
2742
|
+
"type": "int128"
|
|
2743
|
+
},
|
|
2744
|
+
{
|
|
2745
|
+
"internalType": "int128",
|
|
2746
|
+
"name": "fPositionBC",
|
|
2747
|
+
"type": "int128"
|
|
2748
|
+
},
|
|
2749
|
+
{
|
|
2750
|
+
"internalType": "int128",
|
|
2751
|
+
"name": "fUnitAccumulatedFundingStart",
|
|
2752
|
+
"type": "int128"
|
|
2753
|
+
}
|
|
2754
|
+
],
|
|
2755
|
+
"internalType": "struct PerpStorage.MarginAccount[]",
|
|
2756
|
+
"name": "",
|
|
2757
|
+
"type": "tuple[]"
|
|
2758
|
+
}
|
|
2759
|
+
],
|
|
2760
|
+
"stateMutability": "view",
|
|
2761
|
+
"type": "function"
|
|
2762
|
+
},
|
|
2717
2763
|
{
|
|
2718
2764
|
"inputs": [
|
|
2719
2765
|
{
|
package/src/nodeSDKTypes.ts
CHANGED
|
@@ -499,28 +499,30 @@ export interface LiquidityPoolData {
|
|
|
499
499
|
}
|
|
500
500
|
|
|
501
501
|
// referral types:
|
|
502
|
-
|
|
502
|
+
export const referralDomain = {
|
|
503
|
+
name: "Referral System",
|
|
504
|
+
};
|
|
503
505
|
export const referralTypes = {
|
|
504
506
|
// ["string", "address", "uint32", "uint256"],
|
|
505
507
|
// [rc.code, rc.referrerAddr, passOnPercTwoDigitsFormat, Math.round(rc.createdOn)]
|
|
506
508
|
NewCode: [
|
|
507
|
-
{ name: "
|
|
508
|
-
{ name: "
|
|
509
|
-
{ name: "
|
|
510
|
-
{ name: "
|
|
509
|
+
{ name: "Code", type: "string" },
|
|
510
|
+
{ name: "ReferrerAddr", type: "address" },
|
|
511
|
+
{ name: "PassOnPercTDF", type: "uint32" },
|
|
512
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
511
513
|
],
|
|
512
514
|
// ["address", "address", "uint32", "uint256"],
|
|
513
515
|
// [rc.parentAddr, rc.referToAddr, passOnPercTwoDigitsFormat, Math.round(rc.createdOn)]
|
|
514
516
|
NewReferral: [
|
|
515
|
-
{ name: "
|
|
516
|
-
{ name: "
|
|
517
|
-
{ name: "
|
|
518
|
-
{ name: "
|
|
517
|
+
{ name: "ParentAddr", type: "address" },
|
|
518
|
+
{ name: "ReferToAddr", type: "address" },
|
|
519
|
+
{ name: "PassOnPercTDF", type: "uint32" },
|
|
520
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
519
521
|
],
|
|
520
522
|
// ["string", "address", "uint256"], [rc.code, rc.traderAddr, Math.round(rc.createdOn)]
|
|
521
523
|
CodeSelection: [
|
|
522
|
-
{ name: "
|
|
523
|
-
{ name: "
|
|
524
|
-
{ name: "
|
|
524
|
+
{ name: "Code", type: "string" },
|
|
525
|
+
{ name: "TraderAddr", type: "address" },
|
|
526
|
+
{ name: "CreatedOn", type: "uint256" },
|
|
525
527
|
],
|
|
526
528
|
};
|
package/src/polyMktsPxFeed.ts
CHANGED
|
@@ -40,7 +40,8 @@ export default class PolyMktsPxFeed {
|
|
|
40
40
|
if (mkt == undefined) {
|
|
41
41
|
throw new Error(`symbol not in polymarket universe: ${sym}`);
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
const px = await this.fetchPrice(mkt.idDec);
|
|
44
|
+
return px;
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
public async fetchPrice(tokenIdDec: string): Promise<number> {
|
|
@@ -1,8 +1,20 @@
|
|
|
1
|
-
import {
|
|
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";
|
|
2
13
|
import {
|
|
3
14
|
APIReferPayload,
|
|
4
15
|
APIReferralCodePayload,
|
|
5
16
|
APIReferralCodeSelectionPayload,
|
|
17
|
+
referralDomain,
|
|
6
18
|
referralTypes,
|
|
7
19
|
} from "./nodeSDKTypes";
|
|
8
20
|
|
|
@@ -19,11 +31,26 @@ import {
|
|
|
19
31
|
export default class ReferralCodeSigner {
|
|
20
32
|
private provider: Provider | undefined;
|
|
21
33
|
private rpcURL: string;
|
|
22
|
-
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;
|
|
23
42
|
private address: string;
|
|
24
43
|
|
|
25
44
|
constructor(
|
|
26
|
-
signer:
|
|
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>),
|
|
27
54
|
address: string,
|
|
28
55
|
_rpcURL: string
|
|
29
56
|
) {
|
|
@@ -32,38 +59,88 @@ export default class ReferralCodeSigner {
|
|
|
32
59
|
if (typeof signer == "string") {
|
|
33
60
|
const wallet = this.createSignerInstance(signer);
|
|
34
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);
|
|
35
67
|
} else if ("signMessage" in signer) {
|
|
36
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>;
|
|
37
76
|
} else {
|
|
38
|
-
this.
|
|
77
|
+
this.signingTypedDataFun = signer as (
|
|
78
|
+
domain: TypedDataDomain,
|
|
79
|
+
types: Record<string, TypedDataField[]>,
|
|
80
|
+
value: Record<string, any>
|
|
81
|
+
) => Promise<string>;
|
|
39
82
|
}
|
|
40
83
|
}
|
|
41
84
|
|
|
42
85
|
public createSignerInstance(_privateKey: string): Signer {
|
|
43
86
|
this.provider = new JsonRpcProvider(this.rpcURL);
|
|
44
87
|
const wallet = new Wallet(_privateKey);
|
|
45
|
-
|
|
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;
|
|
46
96
|
}
|
|
47
97
|
|
|
48
98
|
public async getSignatureForNewReferral(rp: APIReferPayload): Promise<string> {
|
|
49
|
-
if (this.
|
|
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 {
|
|
50
110
|
throw Error("no signer defined, call createSignerInstance()");
|
|
51
111
|
}
|
|
52
|
-
return await ReferralCodeSigner.getSignatureForNewReferral(rp, this.signingFun);
|
|
53
112
|
}
|
|
54
113
|
|
|
55
114
|
public async getSignatureForNewCode(rc: APIReferralCodePayload): Promise<string> {
|
|
56
|
-
if (this.
|
|
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 {
|
|
57
126
|
throw Error("no signer defined, call createSignerInstance()");
|
|
58
127
|
}
|
|
59
|
-
return await ReferralCodeSigner.getSignatureForNewCode(rc, this.signingFun);
|
|
60
128
|
}
|
|
61
129
|
|
|
62
130
|
public async getSignatureForCodeSelection(rc: APIReferralCodeSelectionPayload): Promise<string> {
|
|
63
|
-
if (this.
|
|
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 {
|
|
64
142
|
throw Error("no signer defined, call createSignerInstance()");
|
|
65
143
|
}
|
|
66
|
-
return await ReferralCodeSigner.getSignatureForCodeSelection(rc, this.signingFun);
|
|
67
144
|
}
|
|
68
145
|
|
|
69
146
|
public async getAddress(): Promise<string> {
|
|
@@ -139,10 +216,10 @@ export default class ReferralCodeSigner {
|
|
|
139
216
|
*/
|
|
140
217
|
public static newReferralPayloadToTypedData(rc: APIReferPayload) {
|
|
141
218
|
return {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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)),
|
|
146
223
|
};
|
|
147
224
|
}
|
|
148
225
|
|
|
@@ -170,10 +247,10 @@ export default class ReferralCodeSigner {
|
|
|
170
247
|
*/
|
|
171
248
|
public static referralCodeNewCodePayloadToTypedData(rc: APIReferralCodePayload) {
|
|
172
249
|
return {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
250
|
+
Code: rc.code,
|
|
251
|
+
ReferrerAddr: rc.referrerAddr as `0x${string}`,
|
|
252
|
+
PassOnPercTDF: Math.round(rc.passOnPercTDF),
|
|
253
|
+
CreatedOn: BigInt(Math.round(rc.createdOn)),
|
|
177
254
|
};
|
|
178
255
|
}
|
|
179
256
|
|
|
@@ -197,9 +274,9 @@ export default class ReferralCodeSigner {
|
|
|
197
274
|
*/
|
|
198
275
|
public static codeSelectionPayloadToTypedData(rc: APIReferralCodeSelectionPayload) {
|
|
199
276
|
return {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
277
|
+
Code: rc.code,
|
|
278
|
+
TraderAddr: rc.traderAddr as `0x${string}`,
|
|
279
|
+
CreatedOn: BigInt(Math.round(rc.createdOn)),
|
|
203
280
|
};
|
|
204
281
|
}
|
|
205
282
|
|
|
@@ -217,7 +294,12 @@ export default class ReferralCodeSigner {
|
|
|
217
294
|
try {
|
|
218
295
|
// typed-data (^2.x.x)
|
|
219
296
|
const typedData = ReferralCodeSigner.referralCodeNewCodePayloadToTypedData(rc);
|
|
220
|
-
const signerAddress = verifyTypedData(
|
|
297
|
+
const signerAddress = verifyTypedData(
|
|
298
|
+
referralDomain,
|
|
299
|
+
{ NewCode: referralTypes.NewCode },
|
|
300
|
+
typedData,
|
|
301
|
+
rc.signature
|
|
302
|
+
);
|
|
221
303
|
return rc.referrerAddr.toLowerCase() == signerAddress.toLowerCase();
|
|
222
304
|
} catch (err) {
|
|
223
305
|
console.log(err);
|
|
@@ -242,7 +324,7 @@ export default class ReferralCodeSigner {
|
|
|
242
324
|
// typed-data (^2.x.x)
|
|
243
325
|
const typedData = ReferralCodeSigner.codeSelectionPayloadToTypedData(rc);
|
|
244
326
|
const signerAddress = verifyTypedData(
|
|
245
|
-
|
|
327
|
+
referralDomain,
|
|
246
328
|
{ CodeSelection: referralTypes.CodeSelection },
|
|
247
329
|
typedData,
|
|
248
330
|
rc.signature
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const D8X_SDK_VERSION = "2.0.
|
|
1
|
+
export const D8X_SDK_VERSION = "2.0.11-alpha";
|