@bitgo-beta/sdk-coin-xdc 1.0.1-beta.142 → 1.0.1-beta.1421
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/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/lib/XDCValidatorABI.json +431 -0
- package/dist/src/lib/index.d.ts +4 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +12 -2
- package/dist/src/lib/transactionBuilder.d.ts +24 -2
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +55 -3
- package/dist/src/lib/uploadKycBuilder.d.ts +73 -0
- package/dist/src/lib/uploadKycBuilder.d.ts.map +1 -0
- package/dist/src/lib/uploadKycBuilder.js +110 -0
- package/dist/src/lib/validatorContract.d.ts +136 -0
- package/dist/src/lib/validatorContract.d.ts.map +1 -0
- package/dist/src/lib/validatorContract.js +62 -0
- package/dist/src/lib/xdcKycMessage.d.ts +26 -0
- package/dist/src/lib/xdcKycMessage.d.ts.map +1 -0
- package/dist/src/lib/xdcKycMessage.js +38 -0
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +5 -1
- package/dist/src/xdc.d.ts +2 -1
- package/dist/src/xdc.d.ts.map +1 -1
- package/dist/src/xdc.js +4 -1
- package/dist/src/xdcToken.d.ts +27 -0
- package/dist/src/xdcToken.d.ts.map +1 -0
- package/dist/src/xdcToken.js +50 -0
- package/dist/test/resources.d.ts +45 -0
- package/dist/test/resources.d.ts.map +1 -0
- package/dist/test/resources.js +107 -0
- package/dist/test/unit/getBuilder.d.ts +3 -0
- package/dist/test/unit/getBuilder.d.ts.map +1 -0
- package/dist/test/unit/getBuilder.js +10 -0
- package/dist/test/unit/transactionBuilder/send.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/send.js +19 -0
- package/dist/test/unit/transactionBuilder/uploadKyc.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/uploadKyc.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/uploadKyc.js +215 -0
- package/dist/test/unit/utils.d.ts +2 -0
- package/dist/test/unit/utils.d.ts.map +1 -0
- package/dist/test/unit/utils.js +27 -0
- package/dist/test/unit/xdc.d.ts +2 -0
- package/dist/test/unit/xdc.d.ts.map +1 -0
- package/dist/test/unit/xdc.js +321 -0
- package/dist/test/unit/xdcKycMessage.d.ts +2 -0
- package/dist/test/unit/xdcKycMessage.d.ts.map +1 -0
- package/dist/test/unit/xdcKycMessage.js +104 -0
- package/dist/test/unit/xdcToken.d.ts +2 -0
- package/dist/test/unit/xdcToken.d.ts.map +1 -0
- package/dist/test/unit/xdcToken.js +189 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +17 -11
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -74
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prettier
|
|
3
|
+
*/
|
|
4
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
5
|
+
import { ContractCall } from '@bitgo-beta/abstract-eth';
|
|
6
|
+
/**
|
|
7
|
+
* Represents an XDC uploadKYC contract call
|
|
8
|
+
* This is used to submit KYC document hashes (IPFS hashes) to the XDC Validator contract
|
|
9
|
+
*/
|
|
10
|
+
export declare class UploadKycCall extends ContractCall {
|
|
11
|
+
readonly contractAddress: string;
|
|
12
|
+
readonly ipfsHash: string;
|
|
13
|
+
constructor(contractAddress: string, ipfsHash: string);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Builder for XDC uploadKYC transactions
|
|
17
|
+
*
|
|
18
|
+
* This builder creates transactions that upload KYC document hashes to the XDC Validator contract.
|
|
19
|
+
* The flow is:
|
|
20
|
+
* 1. Upload KYC document to IPFS → get IPFS hash (e.g., "Qm...")
|
|
21
|
+
* 2. Use this builder to create a transaction that submits the hash to the validator contract
|
|
22
|
+
* 3. The transaction is signed using TSS/MPC
|
|
23
|
+
* 4. After successful upload, the address can propose a validator candidate
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const builder = new UploadKycBuilder(coinConfig);
|
|
28
|
+
* const call = builder
|
|
29
|
+
* .ipfsHash('QmRealIPFSHash...')
|
|
30
|
+
* .build();
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare class UploadKycBuilder {
|
|
34
|
+
private _ipfsHash?;
|
|
35
|
+
private _contractAddress?;
|
|
36
|
+
private readonly _coinConfig;
|
|
37
|
+
constructor(coinConfig: Readonly<CoinConfig>);
|
|
38
|
+
/**
|
|
39
|
+
* Set the IPFS hash of the uploaded KYC document
|
|
40
|
+
*
|
|
41
|
+
* @param {string} hash - The IPFS hash (e.g., "QmRealIPFSHash...")
|
|
42
|
+
* @returns {UploadKycBuilder} this builder instance
|
|
43
|
+
* @throws {InvalidParameterValueError} if the hash is invalid
|
|
44
|
+
*/
|
|
45
|
+
ipfsHash(hash: string): this;
|
|
46
|
+
/**
|
|
47
|
+
* Set a custom validator contract address
|
|
48
|
+
* If not set, the default address for the network will be used
|
|
49
|
+
*
|
|
50
|
+
* @param {string} address - The validator contract address
|
|
51
|
+
* @returns {UploadKycBuilder} this builder instance
|
|
52
|
+
* @throws {InvalidParameterValueError} if the address is invalid
|
|
53
|
+
*/
|
|
54
|
+
contractAddress(address: string): this;
|
|
55
|
+
/**
|
|
56
|
+
* Build the uploadKYC contract call
|
|
57
|
+
*
|
|
58
|
+
* @returns {UploadKycCall} the constructed contract call
|
|
59
|
+
* @throws {BuildTransactionError} if required fields are missing
|
|
60
|
+
*/
|
|
61
|
+
build(): UploadKycCall;
|
|
62
|
+
/**
|
|
63
|
+
* Validate that all mandatory fields are set
|
|
64
|
+
* @private
|
|
65
|
+
*/
|
|
66
|
+
private validateMandatoryFields;
|
|
67
|
+
/**
|
|
68
|
+
* Get the default validator contract address for the current network
|
|
69
|
+
* @private
|
|
70
|
+
*/
|
|
71
|
+
private getDefaultContractAddress;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=uploadKycBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadKycBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/uploadKycBuilder.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,SAAgB,eAAe,EAAE,MAAM,CAAC;IACxC,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAMtD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;gBAEvC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB5B;;;;;;;OAOG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IActC;;;;;OAKG;IACH,KAAK,IAAI,aAAa;IAOtB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAM/B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;CAIlC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UploadKycBuilder = exports.UploadKycCall = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
|
|
6
|
+
const validatorContract_1 = require("./validatorContract");
|
|
7
|
+
/**
|
|
8
|
+
* Represents an XDC uploadKYC contract call
|
|
9
|
+
* This is used to submit KYC document hashes (IPFS hashes) to the XDC Validator contract
|
|
10
|
+
*/
|
|
11
|
+
class UploadKycCall extends abstract_eth_1.ContractCall {
|
|
12
|
+
constructor(contractAddress, ipfsHash) {
|
|
13
|
+
// uploadKYC(string) - takes a single string parameter (the IPFS hash)
|
|
14
|
+
super(validatorContract_1.UPLOAD_KYC_METHOD_ID, ['string'], [ipfsHash]);
|
|
15
|
+
this.contractAddress = contractAddress;
|
|
16
|
+
this.ipfsHash = ipfsHash;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.UploadKycCall = UploadKycCall;
|
|
20
|
+
/**
|
|
21
|
+
* Builder for XDC uploadKYC transactions
|
|
22
|
+
*
|
|
23
|
+
* This builder creates transactions that upload KYC document hashes to the XDC Validator contract.
|
|
24
|
+
* The flow is:
|
|
25
|
+
* 1. Upload KYC document to IPFS → get IPFS hash (e.g., "Qm...")
|
|
26
|
+
* 2. Use this builder to create a transaction that submits the hash to the validator contract
|
|
27
|
+
* 3. The transaction is signed using TSS/MPC
|
|
28
|
+
* 4. After successful upload, the address can propose a validator candidate
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const builder = new UploadKycBuilder(coinConfig);
|
|
33
|
+
* const call = builder
|
|
34
|
+
* .ipfsHash('QmRealIPFSHash...')
|
|
35
|
+
* .build();
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
class UploadKycBuilder {
|
|
39
|
+
constructor(coinConfig) {
|
|
40
|
+
this._coinConfig = coinConfig;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Set the IPFS hash of the uploaded KYC document
|
|
44
|
+
*
|
|
45
|
+
* @param {string} hash - The IPFS hash (e.g., "QmRealIPFSHash...")
|
|
46
|
+
* @returns {UploadKycBuilder} this builder instance
|
|
47
|
+
* @throws {InvalidParameterValueError} if the hash is invalid
|
|
48
|
+
*/
|
|
49
|
+
ipfsHash(hash) {
|
|
50
|
+
if (!hash || hash.trim().length === 0) {
|
|
51
|
+
throw new sdk_core_1.InvalidParameterValueError('IPFS hash cannot be empty');
|
|
52
|
+
}
|
|
53
|
+
// Basic IPFS hash validation (should start with 'Qm' for v0 or 'b' for v1)
|
|
54
|
+
if (!hash.startsWith('Qm') && !hash.startsWith('b')) {
|
|
55
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid IPFS hash format. Expected hash starting with "Qm" (v0) or "b" (v1)');
|
|
56
|
+
}
|
|
57
|
+
this._ipfsHash = hash;
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Set a custom validator contract address
|
|
62
|
+
* If not set, the default address for the network will be used
|
|
63
|
+
*
|
|
64
|
+
* @param {string} address - The validator contract address
|
|
65
|
+
* @returns {UploadKycBuilder} this builder instance
|
|
66
|
+
* @throws {InvalidParameterValueError} if the address is invalid
|
|
67
|
+
*/
|
|
68
|
+
contractAddress(address) {
|
|
69
|
+
if (!address || address.trim().length === 0) {
|
|
70
|
+
throw new sdk_core_1.InvalidParameterValueError('Contract address cannot be empty');
|
|
71
|
+
}
|
|
72
|
+
// Basic Ethereum address validation
|
|
73
|
+
if (!/^(0x)?[0-9a-fA-F]{40}$/.test(address)) {
|
|
74
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid contract address format');
|
|
75
|
+
}
|
|
76
|
+
this._contractAddress = address.toLowerCase().startsWith('0x') ? address : `0x${address}`;
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Build the uploadKYC contract call
|
|
81
|
+
*
|
|
82
|
+
* @returns {UploadKycCall} the constructed contract call
|
|
83
|
+
* @throws {BuildTransactionError} if required fields are missing
|
|
84
|
+
*/
|
|
85
|
+
build() {
|
|
86
|
+
this.validateMandatoryFields();
|
|
87
|
+
const contractAddress = this._contractAddress || this.getDefaultContractAddress();
|
|
88
|
+
const ipfsHash = this._ipfsHash; // validated by validateMandatoryFields
|
|
89
|
+
return new UploadKycCall(contractAddress, ipfsHash);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Validate that all mandatory fields are set
|
|
93
|
+
* @private
|
|
94
|
+
*/
|
|
95
|
+
validateMandatoryFields() {
|
|
96
|
+
if (!this._ipfsHash) {
|
|
97
|
+
throw new sdk_core_1.BuildTransactionError('Missing IPFS hash for uploadKYC transaction');
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Get the default validator contract address for the current network
|
|
102
|
+
* @private
|
|
103
|
+
*/
|
|
104
|
+
getDefaultContractAddress() {
|
|
105
|
+
const isTestnet = this._coinConfig.name === 'txdc';
|
|
106
|
+
return (0, validatorContract_1.getValidatorContractAddress)(isTestnet);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.UploadKycBuilder = UploadKycBuilder;
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkS3ljQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdXBsb2FkS3ljQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxtREFBeUY7QUFDekYsMkRBQXdEO0FBQ3hELDJEQUF3RjtBQUV4Rjs7O0dBR0c7QUFDSCxNQUFhLGFBQWMsU0FBUSwyQkFBWTtJQUk3QyxZQUFZLGVBQXVCLEVBQUUsUUFBZ0I7UUFDbkQsc0VBQXNFO1FBQ3RFLEtBQUssQ0FBQyx3Q0FBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFWRCxzQ0FVQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQWEsZ0JBQWdCO0lBSzNCLFlBQVksVUFBZ0M7UUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUkscUNBQTBCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBRUQsMkVBQTJFO1FBQzNFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BELE1BQU0sSUFBSSxxQ0FBMEIsQ0FDbEMsNkVBQTZFLENBQzlFLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGVBQWUsQ0FBQyxPQUFlO1FBQzdCLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUkscUNBQTBCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBRUQsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUkscUNBQTBCLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUMxRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDbEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQW1CLENBQUMsQ0FBQyx1Q0FBdUM7UUFDbEYsT0FBTyxJQUFJLGFBQWEsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7T0FHRztJQUNLLHVCQUF1QjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0sseUJBQXlCO1FBQy9CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztRQUNuRCxPQUFPLElBQUEsK0NBQTJCLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGO0FBckZELDRDQXFGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBDb250cmFjdENhbGwgfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgVVBMT0FEX0tZQ19NRVRIT0RfSUQsIGdldFZhbGlkYXRvckNvbnRyYWN0QWRkcmVzcyB9IGZyb20gJy4vdmFsaWRhdG9yQ29udHJhY3QnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gWERDIHVwbG9hZEtZQyBjb250cmFjdCBjYWxsXG4gKiBUaGlzIGlzIHVzZWQgdG8gc3VibWl0IEtZQyBkb2N1bWVudCBoYXNoZXMgKElQRlMgaGFzaGVzKSB0byB0aGUgWERDIFZhbGlkYXRvciBjb250cmFjdFxuICovXG5leHBvcnQgY2xhc3MgVXBsb2FkS3ljQ2FsbCBleHRlbmRzIENvbnRyYWN0Q2FsbCB7XG4gIHB1YmxpYyByZWFkb25seSBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGlwZnNIYXNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoY29udHJhY3RBZGRyZXNzOiBzdHJpbmcsIGlwZnNIYXNoOiBzdHJpbmcpIHtcbiAgICAvLyB1cGxvYWRLWUMoc3RyaW5nKSAtIHRha2VzIGEgc2luZ2xlIHN0cmluZyBwYXJhbWV0ZXIgKHRoZSBJUEZTIGhhc2gpXG4gICAgc3VwZXIoVVBMT0FEX0tZQ19NRVRIT0RfSUQsIFsnc3RyaW5nJ10sIFtpcGZzSGFzaF0pO1xuICAgIHRoaXMuY29udHJhY3RBZGRyZXNzID0gY29udHJhY3RBZGRyZXNzO1xuICAgIHRoaXMuaXBmc0hhc2ggPSBpcGZzSGFzaDtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkZXIgZm9yIFhEQyB1cGxvYWRLWUMgdHJhbnNhY3Rpb25zXG4gKlxuICogVGhpcyBidWlsZGVyIGNyZWF0ZXMgdHJhbnNhY3Rpb25zIHRoYXQgdXBsb2FkIEtZQyBkb2N1bWVudCBoYXNoZXMgdG8gdGhlIFhEQyBWYWxpZGF0b3IgY29udHJhY3QuXG4gKiBUaGUgZmxvdyBpczpcbiAqIDEuIFVwbG9hZCBLWUMgZG9jdW1lbnQgdG8gSVBGUyDihpIgZ2V0IElQRlMgaGFzaCAoZS5nLiwgXCJRbS4uLlwiKVxuICogMi4gVXNlIHRoaXMgYnVpbGRlciB0byBjcmVhdGUgYSB0cmFuc2FjdGlvbiB0aGF0IHN1Ym1pdHMgdGhlIGhhc2ggdG8gdGhlIHZhbGlkYXRvciBjb250cmFjdFxuICogMy4gVGhlIHRyYW5zYWN0aW9uIGlzIHNpZ25lZCB1c2luZyBUU1MvTVBDXG4gKiA0LiBBZnRlciBzdWNjZXNzZnVsIHVwbG9hZCwgdGhlIGFkZHJlc3MgY2FuIHByb3Bvc2UgYSB2YWxpZGF0b3IgY2FuZGlkYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVXBsb2FkS3ljQnVpbGRlcihjb2luQ29uZmlnKTtcbiAqIGNvbnN0IGNhbGwgPSBidWlsZGVyXG4gKiAgIC5pcGZzSGFzaCgnUW1SZWFsSVBGU0hhc2guLi4nKVxuICogICAuYnVpbGQoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgVXBsb2FkS3ljQnVpbGRlciB7XG4gIHByaXZhdGUgX2lwZnNIYXNoPzogc3RyaW5nO1xuICBwcml2YXRlIF9jb250cmFjdEFkZHJlc3M/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+O1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgdGhpcy5fY29pbkNvbmZpZyA9IGNvaW5Db25maWc7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBJUEZTIGhhc2ggb2YgdGhlIHVwbG9hZGVkIEtZQyBkb2N1bWVudFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaGFzaCAtIFRoZSBJUEZTIGhhc2ggKGUuZy4sIFwiUW1SZWFsSVBGU0hhc2guLi5cIilcbiAgICogQHJldHVybnMge1VwbG9hZEt5Y0J1aWxkZXJ9IHRoaXMgYnVpbGRlciBpbnN0YW5jZVxuICAgKiBAdGhyb3dzIHtJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcn0gaWYgdGhlIGhhc2ggaXMgaW52YWxpZFxuICAgKi9cbiAgaXBmc0hhc2goaGFzaDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFoYXNoIHx8IGhhc2gudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJUEZTIGhhc2ggY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuXG4gICAgLy8gQmFzaWMgSVBGUyBoYXNoIHZhbGlkYXRpb24gKHNob3VsZCBzdGFydCB3aXRoICdRbScgZm9yIHYwIG9yICdiJyBmb3IgdjEpXG4gICAgaWYgKCFoYXNoLnN0YXJ0c1dpdGgoJ1FtJykgJiYgIWhhc2guc3RhcnRzV2l0aCgnYicpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoXG4gICAgICAgICdJbnZhbGlkIElQRlMgaGFzaCBmb3JtYXQuIEV4cGVjdGVkIGhhc2ggc3RhcnRpbmcgd2l0aCBcIlFtXCIgKHYwKSBvciBcImJcIiAodjEpJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pcGZzSGFzaCA9IGhhc2g7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgY3VzdG9tIHZhbGlkYXRvciBjb250cmFjdCBhZGRyZXNzXG4gICAqIElmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IGFkZHJlc3MgZm9yIHRoZSBuZXR3b3JrIHdpbGwgYmUgdXNlZFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIFRoZSB2YWxpZGF0b3IgY29udHJhY3QgYWRkcmVzc1xuICAgKiBAcmV0dXJucyB7VXBsb2FkS3ljQnVpbGRlcn0gdGhpcyBidWlsZGVyIGluc3RhbmNlXG4gICAqIEB0aHJvd3Mge0ludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yfSBpZiB0aGUgYWRkcmVzcyBpcyBpbnZhbGlkXG4gICAqL1xuICBjb250cmFjdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFhZGRyZXNzIHx8IGFkZHJlc3MudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdDb250cmFjdCBhZGRyZXNzIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgIH1cblxuICAgIC8vIEJhc2ljIEV0aGVyZXVtIGFkZHJlc3MgdmFsaWRhdGlvblxuICAgIGlmICghL14oMHgpP1swLTlhLWZBLUZdezQwfSQvLnRlc3QoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBjb250cmFjdCBhZGRyZXNzIGZvcm1hdCcpO1xuICAgIH1cblxuICAgIHRoaXMuX2NvbnRyYWN0QWRkcmVzcyA9IGFkZHJlc3MudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCcweCcpID8gYWRkcmVzcyA6IGAweCR7YWRkcmVzc31gO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRoZSB1cGxvYWRLWUMgY29udHJhY3QgY2FsbFxuICAgKlxuICAgKiBAcmV0dXJucyB7VXBsb2FkS3ljQ2FsbH0gdGhlIGNvbnN0cnVjdGVkIGNvbnRyYWN0IGNhbGxcbiAgICogQHRocm93cyB7QnVpbGRUcmFuc2FjdGlvbkVycm9yfSBpZiByZXF1aXJlZCBmaWVsZHMgYXJlIG1pc3NpbmdcbiAgICovXG4gIGJ1aWxkKCk6IFVwbG9hZEt5Y0NhbGwge1xuICAgIHRoaXMudmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTtcbiAgICBjb25zdCBjb250cmFjdEFkZHJlc3MgPSB0aGlzLl9jb250cmFjdEFkZHJlc3MgfHwgdGhpcy5nZXREZWZhdWx0Q29udHJhY3RBZGRyZXNzKCk7XG4gICAgY29uc3QgaXBmc0hhc2ggPSB0aGlzLl9pcGZzSGFzaCBhcyBzdHJpbmc7IC8vIHZhbGlkYXRlZCBieSB2YWxpZGF0ZU1hbmRhdG9yeUZpZWxkc1xuICAgIHJldHVybiBuZXcgVXBsb2FkS3ljQ2FsbChjb250cmFjdEFkZHJlc3MsIGlwZnNIYXNoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IGFsbCBtYW5kYXRvcnkgZmllbGRzIGFyZSBzZXRcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pcGZzSGFzaCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBJUEZTIGhhc2ggZm9yIHVwbG9hZEtZQyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgdmFsaWRhdG9yIGNvbnRyYWN0IGFkZHJlc3MgZm9yIHRoZSBjdXJyZW50IG5ldHdvcmtcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0RGVmYXVsdENvbnRyYWN0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlzVGVzdG5ldCA9IHRoaXMuX2NvaW5Db25maWcubmFtZSA9PT0gJ3R4ZGMnO1xuICAgIHJldHVybiBnZXRWYWxpZGF0b3JDb250cmFjdEFkZHJlc3MoaXNUZXN0bmV0KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XDC Validator Contract Constants and ABI
|
|
3
|
+
*
|
|
4
|
+
* This file contains the contract address and ABI for the XDC Validator contract
|
|
5
|
+
* which handles KYC uploads and validator staking operations.
|
|
6
|
+
*
|
|
7
|
+
* Contract Address: 0x0000000000000000000000000000000000000088 (System Contract)
|
|
8
|
+
* Source: XDC Network Validator Contract
|
|
9
|
+
* Reference: https://github.com/XinFinOrg/XDPoSChain
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* XDC Validator Contract Address (Testnet)
|
|
13
|
+
* This is the deployed contract address on XDC Apothem testnet (chainId: 51)
|
|
14
|
+
*/
|
|
15
|
+
export declare const XDC_VALIDATOR_CONTRACT_ADDRESS_TESTNET = "0x0000000000000000000000000000000000000088";
|
|
16
|
+
/**
|
|
17
|
+
* XDC Validator Contract Address (Mainnet)
|
|
18
|
+
* This is the deployed contract address on XDC mainnet (chainId: 50)
|
|
19
|
+
*/
|
|
20
|
+
export declare const XDC_VALIDATOR_CONTRACT_ADDRESS_MAINNET = "0x0000000000000000000000000000000000000088";
|
|
21
|
+
/**
|
|
22
|
+
* uploadKYC method ID
|
|
23
|
+
* keccak256("uploadKYC(string)") = 0xf5c95125
|
|
24
|
+
*/
|
|
25
|
+
export declare const UPLOAD_KYC_METHOD_ID = "0xf5c95125";
|
|
26
|
+
/**
|
|
27
|
+
* propose method ID
|
|
28
|
+
* keccak256("propose(address)") = 0x01267951
|
|
29
|
+
*/
|
|
30
|
+
export declare const PROPOSE_METHOD_ID = "0x01267951";
|
|
31
|
+
/**
|
|
32
|
+
* Full XDC Validator Contract ABI
|
|
33
|
+
* Imported from JSON file for easy use with Web3/XDC3
|
|
34
|
+
*/
|
|
35
|
+
export declare const XDC_VALIDATOR_ABI: ({
|
|
36
|
+
constant: boolean;
|
|
37
|
+
inputs: {
|
|
38
|
+
name: string;
|
|
39
|
+
type: string;
|
|
40
|
+
}[];
|
|
41
|
+
name: string;
|
|
42
|
+
outputs: {
|
|
43
|
+
name: string;
|
|
44
|
+
type: string;
|
|
45
|
+
}[];
|
|
46
|
+
payable: boolean;
|
|
47
|
+
stateMutability: string;
|
|
48
|
+
type: string;
|
|
49
|
+
anonymous?: undefined;
|
|
50
|
+
} | {
|
|
51
|
+
anonymous: boolean;
|
|
52
|
+
inputs: {
|
|
53
|
+
indexed: boolean;
|
|
54
|
+
name: string;
|
|
55
|
+
type: string;
|
|
56
|
+
}[];
|
|
57
|
+
name: string;
|
|
58
|
+
type: string;
|
|
59
|
+
constant?: undefined;
|
|
60
|
+
outputs?: undefined;
|
|
61
|
+
payable?: undefined;
|
|
62
|
+
stateMutability?: undefined;
|
|
63
|
+
})[];
|
|
64
|
+
/**
|
|
65
|
+
* Get the uploadKYC function ABI
|
|
66
|
+
* Useful for encoding function calls
|
|
67
|
+
*/
|
|
68
|
+
export declare const UPLOAD_KYC_ABI: {
|
|
69
|
+
constant: boolean;
|
|
70
|
+
inputs: {
|
|
71
|
+
name: string;
|
|
72
|
+
type: string;
|
|
73
|
+
}[];
|
|
74
|
+
name: string;
|
|
75
|
+
outputs: {
|
|
76
|
+
name: string;
|
|
77
|
+
type: string;
|
|
78
|
+
}[];
|
|
79
|
+
payable: boolean;
|
|
80
|
+
stateMutability: string;
|
|
81
|
+
type: string;
|
|
82
|
+
anonymous?: undefined;
|
|
83
|
+
} | {
|
|
84
|
+
anonymous: boolean;
|
|
85
|
+
inputs: {
|
|
86
|
+
indexed: boolean;
|
|
87
|
+
name: string;
|
|
88
|
+
type: string;
|
|
89
|
+
}[];
|
|
90
|
+
name: string;
|
|
91
|
+
type: string;
|
|
92
|
+
constant?: undefined;
|
|
93
|
+
outputs?: undefined;
|
|
94
|
+
payable?: undefined;
|
|
95
|
+
stateMutability?: undefined;
|
|
96
|
+
} | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Get the propose function ABI
|
|
99
|
+
* Useful for encoding function calls
|
|
100
|
+
*/
|
|
101
|
+
export declare const PROPOSE_ABI: {
|
|
102
|
+
constant: boolean;
|
|
103
|
+
inputs: {
|
|
104
|
+
name: string;
|
|
105
|
+
type: string;
|
|
106
|
+
}[];
|
|
107
|
+
name: string;
|
|
108
|
+
outputs: {
|
|
109
|
+
name: string;
|
|
110
|
+
type: string;
|
|
111
|
+
}[];
|
|
112
|
+
payable: boolean;
|
|
113
|
+
stateMutability: string;
|
|
114
|
+
type: string;
|
|
115
|
+
anonymous?: undefined;
|
|
116
|
+
} | {
|
|
117
|
+
anonymous: boolean;
|
|
118
|
+
inputs: {
|
|
119
|
+
indexed: boolean;
|
|
120
|
+
name: string;
|
|
121
|
+
type: string;
|
|
122
|
+
}[];
|
|
123
|
+
name: string;
|
|
124
|
+
type: string;
|
|
125
|
+
constant?: undefined;
|
|
126
|
+
outputs?: undefined;
|
|
127
|
+
payable?: undefined;
|
|
128
|
+
stateMutability?: undefined;
|
|
129
|
+
} | undefined;
|
|
130
|
+
/**
|
|
131
|
+
* Get the validator contract address for the given network
|
|
132
|
+
* @param isTestnet - whether to use testnet or mainnet
|
|
133
|
+
* @returns the validator contract address
|
|
134
|
+
*/
|
|
135
|
+
export declare function getValidatorContractAddress(isTestnet: boolean): string;
|
|
136
|
+
//# sourceMappingURL=validatorContract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validatorContract.d.ts","sourceRoot":"","sources":["../../../src/lib/validatorContract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;GAGG;AACH,eAAO,MAAM,sCAAsC,+CAA+C,CAAC;AAEnG;;;GAGG;AACH,eAAO,MAAM,sCAAsC,+CAA+C,CAAC;AAEnG;;;GAGG;AACH,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAkB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAA4D,CAAC;AAExF;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAA0D,CAAC;AAEnF;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAEtE"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* XDC Validator Contract Constants and ABI
|
|
4
|
+
*
|
|
5
|
+
* This file contains the contract address and ABI for the XDC Validator contract
|
|
6
|
+
* which handles KYC uploads and validator staking operations.
|
|
7
|
+
*
|
|
8
|
+
* Contract Address: 0x0000000000000000000000000000000000000088 (System Contract)
|
|
9
|
+
* Source: XDC Network Validator Contract
|
|
10
|
+
* Reference: https://github.com/XinFinOrg/XDPoSChain
|
|
11
|
+
*/
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.PROPOSE_ABI = exports.UPLOAD_KYC_ABI = exports.XDC_VALIDATOR_ABI = exports.PROPOSE_METHOD_ID = exports.UPLOAD_KYC_METHOD_ID = exports.XDC_VALIDATOR_CONTRACT_ADDRESS_MAINNET = exports.XDC_VALIDATOR_CONTRACT_ADDRESS_TESTNET = void 0;
|
|
17
|
+
exports.getValidatorContractAddress = getValidatorContractAddress;
|
|
18
|
+
const XDCValidatorABI_json_1 = __importDefault(require("./XDCValidatorABI.json"));
|
|
19
|
+
/**
|
|
20
|
+
* XDC Validator Contract Address (Testnet)
|
|
21
|
+
* This is the deployed contract address on XDC Apothem testnet (chainId: 51)
|
|
22
|
+
*/
|
|
23
|
+
exports.XDC_VALIDATOR_CONTRACT_ADDRESS_TESTNET = '0x0000000000000000000000000000000000000088';
|
|
24
|
+
/**
|
|
25
|
+
* XDC Validator Contract Address (Mainnet)
|
|
26
|
+
* This is the deployed contract address on XDC mainnet (chainId: 50)
|
|
27
|
+
*/
|
|
28
|
+
exports.XDC_VALIDATOR_CONTRACT_ADDRESS_MAINNET = '0x0000000000000000000000000000000000000088';
|
|
29
|
+
/**
|
|
30
|
+
* uploadKYC method ID
|
|
31
|
+
* keccak256("uploadKYC(string)") = 0xf5c95125
|
|
32
|
+
*/
|
|
33
|
+
exports.UPLOAD_KYC_METHOD_ID = '0xf5c95125';
|
|
34
|
+
/**
|
|
35
|
+
* propose method ID
|
|
36
|
+
* keccak256("propose(address)") = 0x01267951
|
|
37
|
+
*/
|
|
38
|
+
exports.PROPOSE_METHOD_ID = '0x01267951';
|
|
39
|
+
/**
|
|
40
|
+
* Full XDC Validator Contract ABI
|
|
41
|
+
* Imported from JSON file for easy use with Web3/XDC3
|
|
42
|
+
*/
|
|
43
|
+
exports.XDC_VALIDATOR_ABI = XDCValidatorABI_json_1.default;
|
|
44
|
+
/**
|
|
45
|
+
* Get the uploadKYC function ABI
|
|
46
|
+
* Useful for encoding function calls
|
|
47
|
+
*/
|
|
48
|
+
exports.UPLOAD_KYC_ABI = XDCValidatorABI_json_1.default.find((item) => item.name === 'uploadKYC');
|
|
49
|
+
/**
|
|
50
|
+
* Get the propose function ABI
|
|
51
|
+
* Useful for encoding function calls
|
|
52
|
+
*/
|
|
53
|
+
exports.PROPOSE_ABI = XDCValidatorABI_json_1.default.find((item) => item.name === 'propose');
|
|
54
|
+
/**
|
|
55
|
+
* Get the validator contract address for the given network
|
|
56
|
+
* @param isTestnet - whether to use testnet or mainnet
|
|
57
|
+
* @returns the validator contract address
|
|
58
|
+
*/
|
|
59
|
+
function getValidatorContractAddress(isTestnet) {
|
|
60
|
+
return isTestnet ? exports.XDC_VALIDATOR_CONTRACT_ADDRESS_TESTNET : exports.XDC_VALIDATOR_CONTRACT_ADDRESS_MAINNET;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yQ29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ZhbGlkYXRvckNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0c7Ozs7OztBQW1ESCxrRUFFQztBQW5ERCxrRkFBcUQ7QUFFckQ7OztHQUdHO0FBQ1UsUUFBQSxzQ0FBc0MsR0FBRyw0Q0FBNEMsQ0FBQztBQUVuRzs7O0dBR0c7QUFDVSxRQUFBLHNDQUFzQyxHQUFHLDRDQUE0QyxDQUFDO0FBRW5HOzs7R0FHRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsWUFBWSxDQUFDO0FBRWpEOzs7R0FHRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsWUFBWSxDQUFDO0FBRTlDOzs7R0FHRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsOEJBQWUsQ0FBQztBQUVqRDs7O0dBR0c7QUFDVSxRQUFBLGNBQWMsR0FBRyw4QkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQztBQUV4Rjs7O0dBR0c7QUFDVSxRQUFBLFdBQVcsR0FBRyw4QkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQztBQUVuRjs7OztHQUlHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsU0FBa0I7SUFDNUQsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLDhDQUFzQyxDQUFDLENBQUMsQ0FBQyw4Q0FBc0MsQ0FBQztBQUNyRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBYREMgVmFsaWRhdG9yIENvbnRyYWN0IENvbnN0YW50cyBhbmQgQUJJXG4gKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBjb250cmFjdCBhZGRyZXNzIGFuZCBBQkkgZm9yIHRoZSBYREMgVmFsaWRhdG9yIGNvbnRyYWN0XG4gKiB3aGljaCBoYW5kbGVzIEtZQyB1cGxvYWRzIGFuZCB2YWxpZGF0b3Igc3Rha2luZyBvcGVyYXRpb25zLlxuICpcbiAqIENvbnRyYWN0IEFkZHJlc3M6IDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OCAoU3lzdGVtIENvbnRyYWN0KVxuICogU291cmNlOiBYREMgTmV0d29yayBWYWxpZGF0b3IgQ29udHJhY3RcbiAqIFJlZmVyZW5jZTogaHR0cHM6Ly9naXRodWIuY29tL1hpbkZpbk9yZy9YRFBvU0NoYWluXG4gKi9cblxuaW1wb3J0IFhEQ1ZhbGlkYXRvckFCSSBmcm9tICcuL1hEQ1ZhbGlkYXRvckFCSS5qc29uJztcblxuLyoqXG4gKiBYREMgVmFsaWRhdG9yIENvbnRyYWN0IEFkZHJlc3MgKFRlc3RuZXQpXG4gKiBUaGlzIGlzIHRoZSBkZXBsb3llZCBjb250cmFjdCBhZGRyZXNzIG9uIFhEQyBBcG90aGVtIHRlc3RuZXQgKGNoYWluSWQ6IDUxKVxuICovXG5leHBvcnQgY29uc3QgWERDX1ZBTElEQVRPUl9DT05UUkFDVF9BRERSRVNTX1RFU1RORVQgPSAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg4JztcblxuLyoqXG4gKiBYREMgVmFsaWRhdG9yIENvbnRyYWN0IEFkZHJlc3MgKE1haW5uZXQpXG4gKiBUaGlzIGlzIHRoZSBkZXBsb3llZCBjb250cmFjdCBhZGRyZXNzIG9uIFhEQyBtYWlubmV0IChjaGFpbklkOiA1MClcbiAqL1xuZXhwb3J0IGNvbnN0IFhEQ19WQUxJREFUT1JfQ09OVFJBQ1RfQUREUkVTU19NQUlOTkVUID0gJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OCc7XG5cbi8qKlxuICogdXBsb2FkS1lDIG1ldGhvZCBJRFxuICoga2VjY2FrMjU2KFwidXBsb2FkS1lDKHN0cmluZylcIikgPSAweGY1Yzk1MTI1XG4gKi9cbmV4cG9ydCBjb25zdCBVUExPQURfS1lDX01FVEhPRF9JRCA9ICcweGY1Yzk1MTI1JztcblxuLyoqXG4gKiBwcm9wb3NlIG1ldGhvZCBJRFxuICoga2VjY2FrMjU2KFwicHJvcG9zZShhZGRyZXNzKVwiKSA9IDB4MDEyNjc5NTFcbiAqL1xuZXhwb3J0IGNvbnN0IFBST1BPU0VfTUVUSE9EX0lEID0gJzB4MDEyNjc5NTEnO1xuXG4vKipcbiAqIEZ1bGwgWERDIFZhbGlkYXRvciBDb250cmFjdCBBQklcbiAqIEltcG9ydGVkIGZyb20gSlNPTiBmaWxlIGZvciBlYXN5IHVzZSB3aXRoIFdlYjMvWERDM1xuICovXG5leHBvcnQgY29uc3QgWERDX1ZBTElEQVRPUl9BQkkgPSBYRENWYWxpZGF0b3JBQkk7XG5cbi8qKlxuICogR2V0IHRoZSB1cGxvYWRLWUMgZnVuY3Rpb24gQUJJXG4gKiBVc2VmdWwgZm9yIGVuY29kaW5nIGZ1bmN0aW9uIGNhbGxzXG4gKi9cbmV4cG9ydCBjb25zdCBVUExPQURfS1lDX0FCSSA9IFhEQ1ZhbGlkYXRvckFCSS5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09ICd1cGxvYWRLWUMnKTtcblxuLyoqXG4gKiBHZXQgdGhlIHByb3Bvc2UgZnVuY3Rpb24gQUJJXG4gKiBVc2VmdWwgZm9yIGVuY29kaW5nIGZ1bmN0aW9uIGNhbGxzXG4gKi9cbmV4cG9ydCBjb25zdCBQUk9QT1NFX0FCSSA9IFhEQ1ZhbGlkYXRvckFCSS5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09ICdwcm9wb3NlJyk7XG5cbi8qKlxuICogR2V0IHRoZSB2YWxpZGF0b3IgY29udHJhY3QgYWRkcmVzcyBmb3IgdGhlIGdpdmVuIG5ldHdvcmtcbiAqIEBwYXJhbSBpc1Rlc3RuZXQgLSB3aGV0aGVyIHRvIHVzZSB0ZXN0bmV0IG9yIG1haW5uZXRcbiAqIEByZXR1cm5zIHRoZSB2YWxpZGF0b3IgY29udHJhY3QgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yQ29udHJhY3RBZGRyZXNzKGlzVGVzdG5ldDogYm9vbGVhbik6IHN0cmluZyB7XG4gIHJldHVybiBpc1Rlc3RuZXQgPyBYRENfVkFMSURBVE9SX0NPTlRSQUNUX0FERFJFU1NfVEVTVE5FVCA6IFhEQ19WQUxJREFUT1JfQ09OVFJBQ1RfQUREUkVTU19NQUlOTkVUO1xufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IWallet } from '@bitgo-beta/sdk-core';
|
|
2
|
+
export interface XdcKycMessageParams {
|
|
3
|
+
account: string;
|
|
4
|
+
timestamp: string;
|
|
5
|
+
}
|
|
6
|
+
export interface XdcKycSignedMessage {
|
|
7
|
+
kycAccount: string;
|
|
8
|
+
kycMessage: string;
|
|
9
|
+
kycSignature: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Build the message string expected by the XinFin masternode IPFS API.
|
|
13
|
+
* Format: "[XDCmaster KYC <timestamp>] Upload KYC for <account>"
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildXdcKycMessage(params: XdcKycMessageParams): string;
|
|
16
|
+
/**
|
|
17
|
+
* Sign the XDC KYC message using the wallet's TSS key.
|
|
18
|
+
* Calls wallet.signMessage() which routes through WP /msgrequests TSS ceremony.
|
|
19
|
+
*
|
|
20
|
+
* @param wallet - TSS wallet (must be XDC/TXDC)
|
|
21
|
+
* @param account - wallet Ethereum address
|
|
22
|
+
* @param walletPassphrase - user's wallet passphrase for TSS signing
|
|
23
|
+
* @returns signed message object ready to send as staking-service request fields
|
|
24
|
+
*/
|
|
25
|
+
export declare function signXdcKycMessage(wallet: IWallet, account: string, walletPassphrase: string): Promise<XdcKycSignedMessage>;
|
|
26
|
+
//# sourceMappingURL=xdcKycMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xdcKycMessage.d.ts","sourceRoot":"","sources":["../../../src/lib/xdcKycMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAuB,MAAM,sBAAsB,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAEtE;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAiB9B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildXdcKycMessage = buildXdcKycMessage;
|
|
4
|
+
exports.signXdcKycMessage = signXdcKycMessage;
|
|
5
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
6
|
+
/**
|
|
7
|
+
* Build the message string expected by the XinFin masternode IPFS API.
|
|
8
|
+
* Format: "[XDCmaster KYC <timestamp>] Upload KYC for <account>"
|
|
9
|
+
*/
|
|
10
|
+
function buildXdcKycMessage(params) {
|
|
11
|
+
return `[XDCmaster KYC ${params.timestamp}] Upload KYC for ${params.account}`;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Sign the XDC KYC message using the wallet's TSS key.
|
|
15
|
+
* Calls wallet.signMessage() which routes through WP /msgrequests TSS ceremony.
|
|
16
|
+
*
|
|
17
|
+
* @param wallet - TSS wallet (must be XDC/TXDC)
|
|
18
|
+
* @param account - wallet Ethereum address
|
|
19
|
+
* @param walletPassphrase - user's wallet passphrase for TSS signing
|
|
20
|
+
* @returns signed message object ready to send as staking-service request fields
|
|
21
|
+
*/
|
|
22
|
+
async function signXdcKycMessage(wallet, account, walletPassphrase) {
|
|
23
|
+
const timestamp = new Date().toISOString();
|
|
24
|
+
const kycMessage = buildXdcKycMessage({ account, timestamp });
|
|
25
|
+
const signed = await wallet.signMessage({
|
|
26
|
+
message: {
|
|
27
|
+
messageRaw: kycMessage,
|
|
28
|
+
messageStandardType: sdk_core_1.MessageStandardType.EIP191,
|
|
29
|
+
},
|
|
30
|
+
walletPassphrase,
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
kycAccount: account,
|
|
34
|
+
kycMessage,
|
|
35
|
+
kycSignature: signed.signature,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGRjS3ljTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIveGRjS3ljTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxnREFFQztBQVdELDhDQXFCQztBQW5ERCxtREFBb0U7QUFhcEU7OztHQUdHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsTUFBMkI7SUFDNUQsT0FBTyxrQkFBa0IsTUFBTSxDQUFDLFNBQVMsb0JBQW9CLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNoRixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLE1BQWUsRUFDZixPQUFlLEVBQ2YsZ0JBQXdCO0lBRXhCLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUU5RCxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEMsT0FBTyxFQUFFO1lBQ1AsVUFBVSxFQUFFLFVBQVU7WUFDdEIsbUJBQW1CLEVBQUUsOEJBQW1CLENBQUMsTUFBTTtTQUNoRDtRQUNELGdCQUFnQjtLQUNqQixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsVUFBVSxFQUFFLE9BQU87UUFDbkIsVUFBVTtRQUNWLFlBQVksRUFBRSxNQUFNLENBQUMsU0FBUztLQUMvQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElXYWxsZXQsIE1lc3NhZ2VTdGFuZGFyZFR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgWGRjS3ljTWVzc2FnZVBhcmFtcyB7XG4gIGFjY291bnQ6IHN0cmluZzsgLy8gd2FsbGV0IEV0aGVyZXVtIGFkZHJlc3MgKGNoZWNrc3VtbWVkKVxuICB0aW1lc3RhbXA6IHN0cmluZzsgLy8gSVNPIDg2MDEsIGdlbmVyYXRlZCBieSBjYWxsZXIgYXQgc2lnbmluZyB0aW1lXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWGRjS3ljU2lnbmVkTWVzc2FnZSB7XG4gIGt5Y0FjY291bnQ6IHN0cmluZztcbiAga3ljTWVzc2FnZTogc3RyaW5nO1xuICBreWNTaWduYXR1cmU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgbWVzc2FnZSBzdHJpbmcgZXhwZWN0ZWQgYnkgdGhlIFhpbkZpbiBtYXN0ZXJub2RlIElQRlMgQVBJLlxuICogRm9ybWF0OiBcIltYRENtYXN0ZXIgS1lDIDx0aW1lc3RhbXA+XSBVcGxvYWQgS1lDIGZvciA8YWNjb3VudD5cIlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRYZGNLeWNNZXNzYWdlKHBhcmFtczogWGRjS3ljTWVzc2FnZVBhcmFtcyk6IHN0cmluZyB7XG4gIHJldHVybiBgW1hEQ21hc3RlciBLWUMgJHtwYXJhbXMudGltZXN0YW1wfV0gVXBsb2FkIEtZQyBmb3IgJHtwYXJhbXMuYWNjb3VudH1gO1xufVxuXG4vKipcbiAqIFNpZ24gdGhlIFhEQyBLWUMgbWVzc2FnZSB1c2luZyB0aGUgd2FsbGV0J3MgVFNTIGtleS5cbiAqIENhbGxzIHdhbGxldC5zaWduTWVzc2FnZSgpIHdoaWNoIHJvdXRlcyB0aHJvdWdoIFdQIC9tc2dyZXF1ZXN0cyBUU1MgY2VyZW1vbnkuXG4gKlxuICogQHBhcmFtIHdhbGxldCAtIFRTUyB3YWxsZXQgKG11c3QgYmUgWERDL1RYREMpXG4gKiBAcGFyYW0gYWNjb3VudCAtIHdhbGxldCBFdGhlcmV1bSBhZGRyZXNzXG4gKiBAcGFyYW0gd2FsbGV0UGFzc3BocmFzZSAtIHVzZXIncyB3YWxsZXQgcGFzc3BocmFzZSBmb3IgVFNTIHNpZ25pbmdcbiAqIEByZXR1cm5zIHNpZ25lZCBtZXNzYWdlIG9iamVjdCByZWFkeSB0byBzZW5kIGFzIHN0YWtpbmctc2VydmljZSByZXF1ZXN0IGZpZWxkc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnblhkY0t5Y01lc3NhZ2UoXG4gIHdhbGxldDogSVdhbGxldCxcbiAgYWNjb3VudDogc3RyaW5nLFxuICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmdcbik6IFByb21pc2U8WGRjS3ljU2lnbmVkTWVzc2FnZT4ge1xuICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gIGNvbnN0IGt5Y01lc3NhZ2UgPSBidWlsZFhkY0t5Y01lc3NhZ2UoeyBhY2NvdW50LCB0aW1lc3RhbXAgfSk7XG5cbiAgY29uc3Qgc2lnbmVkID0gYXdhaXQgd2FsbGV0LnNpZ25NZXNzYWdlKHtcbiAgICBtZXNzYWdlOiB7XG4gICAgICBtZXNzYWdlUmF3OiBreWNNZXNzYWdlLFxuICAgICAgbWVzc2FnZVN0YW5kYXJkVHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgfSxcbiAgICB3YWxsZXRQYXNzcGhyYXNlLFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIGt5Y0FjY291bnQ6IGFjY291bnQsXG4gICAga3ljTWVzc2FnZSxcbiAgICBreWNTaWduYXR1cmU6IHNpZ25lZC5zaWduYXR1cmUsXG4gIH07XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAMzC,CAAC"}
|
package/dist/src/register.js
CHANGED
|
@@ -3,9 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.register = void 0;
|
|
4
4
|
const xdc_1 = require("./xdc");
|
|
5
5
|
const txdc_1 = require("./txdc");
|
|
6
|
+
const xdcToken_1 = require("./xdcToken");
|
|
6
7
|
const register = (sdk) => {
|
|
7
8
|
sdk.register('xdc', xdc_1.Xdc.createInstance);
|
|
8
9
|
sdk.register('txdc', txdc_1.Txdc.createInstance);
|
|
10
|
+
xdcToken_1.XdcToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
|
|
11
|
+
sdk.register(name, coinConstructor);
|
|
12
|
+
});
|
|
9
13
|
};
|
|
10
14
|
exports.register = register;
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQTRCO0FBQzVCLGlDQUE4QjtBQUM5Qix5Q0FBc0M7QUFFL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFjLEVBQVEsRUFBRTtJQUMvQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFDLG1CQUFRLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBTlcsUUFBQSxRQUFRLFlBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgWGRjIH0gZnJvbSAnLi94ZGMnO1xuaW1wb3J0IHsgVHhkYyB9IGZyb20gJy4vdHhkYyc7XG5pbXBvcnQgeyBYZGNUb2tlbiB9IGZyb20gJy4veGRjVG9rZW4nO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgc2RrLnJlZ2lzdGVyKCd4ZGMnLCBYZGMuY3JlYXRlSW5zdGFuY2UpO1xuICBzZGsucmVnaXN0ZXIoJ3R4ZGMnLCBUeGRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgWGRjVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgc2RrLnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xufTtcbiJdfQ==
|
package/dist/src/xdc.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseCoin, BitGoBase, MPCAlgorithm, MultisigType } from '@bitgo-beta/sdk-core';
|
|
2
2
|
import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
|
|
3
|
-
import { AbstractEthLikeNewCoins } from '@bitgo-beta/abstract-eth';
|
|
3
|
+
import { AbstractEthLikeNewCoins, UnsignedSweepTxMPCv2, RecoverOptions, OfflineVaultTxInfo } from '@bitgo-beta/abstract-eth';
|
|
4
4
|
import { TransactionBuilder } from './lib';
|
|
5
5
|
export declare class Xdc extends AbstractEthLikeNewCoins {
|
|
6
6
|
protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
|
|
@@ -12,6 +12,7 @@ export declare class Xdc extends AbstractEthLikeNewCoins {
|
|
|
12
12
|
getDefaultMultisigType(): MultisigType;
|
|
13
13
|
/** @inheritDoc */
|
|
14
14
|
getMPCAlgorithm(): MPCAlgorithm;
|
|
15
|
+
protected buildUnsignedSweepTxnTSS(params: RecoverOptions): Promise<OfflineVaultTxInfo | UnsignedSweepTxMPCv2>;
|
|
15
16
|
recoveryBlockchainExplorerQuery(query: Record<string, string>): Promise<Record<string, unknown>>;
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=xdc.d.ts.map
|
package/dist/src/xdc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xdc.d.ts","sourceRoot":"","sources":["../../src/xdc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAU,YAAY,EAAE,YAAY,EAAiB,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAS,MAAM,qBAAqB,CAAC;AACzE,OAAO,
|
|
1
|
+
{"version":3,"file":"xdc.d.ts","sourceRoot":"","sources":["../../src/xdc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAU,YAAY,EAAE,YAAY,EAAiB,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAS,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,uBAAuB,EAEvB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,qBAAa,GAAI,SAAQ,uBAAuB;IAC9C,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAI/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;IAIrD,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,oBAAoB;IACpB,sBAAsB,IAAI,YAAY;IAItC,kBAAkB;IAClB,eAAe,IAAI,YAAY;cAIf,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAI9G,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAKvG"}
|
package/dist/src/xdc.js
CHANGED
|
@@ -27,6 +27,9 @@ class Xdc extends abstract_eth_1.AbstractEthLikeNewCoins {
|
|
|
27
27
|
getMPCAlgorithm() {
|
|
28
28
|
return 'ecdsa';
|
|
29
29
|
}
|
|
30
|
+
async buildUnsignedSweepTxnTSS(params) {
|
|
31
|
+
return this.buildUnsignedSweepTxnMPCv2(params);
|
|
32
|
+
}
|
|
30
33
|
async recoveryBlockchainExplorerQuery(query) {
|
|
31
34
|
const apiToken = sdk_core_1.common.Environments[this.bitgo.getEnv()].xdcExplorerApiToken;
|
|
32
35
|
const explorerUrl = sdk_core_1.common.Environments[this.bitgo.getEnv()].xdcExplorerBaseUrl;
|
|
@@ -34,4 +37,4 @@ class Xdc extends abstract_eth_1.AbstractEthLikeNewCoins {
|
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
39
|
exports.Xdc = Xdc;
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGRjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3hkYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBOEc7QUFDOUcsaURBQXlFO0FBQ3pFLDJEQU1rQztBQUNsQywrQkFBMkM7QUFFM0MsTUFBYSxHQUFJLFNBQVEsc0NBQXVCO0lBQzlDLFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQixFQUFFLFdBQXVDO1FBQzdFLE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxxQkFBcUI7UUFDN0IsT0FBTyxJQUFJLHdCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsc0JBQXNCO1FBQ3BCLE9BQU8sd0JBQWEsQ0FBQyxHQUFHLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVTLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxNQUFzQjtRQUM3RCxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsS0FBSyxDQUFDLCtCQUErQixDQUFDLEtBQTZCO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLGlCQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztRQUM5RSxNQUFNLFdBQVcsR0FBRyxpQkFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsa0JBQWtCLENBQUM7UUFDaEYsT0FBTyxNQUFNLElBQUEsOENBQStCLEVBQUMsS0FBSyxFQUFFLFdBQXFCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkYsQ0FBQztDQUNGO0FBckNELGtCQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luLCBCaXRHb0Jhc2UsIGNvbW1vbiwgTVBDQWxnb3JpdGhtLCBNdWx0aXNpZ1R5cGUsIG11bHRpc2lnVHlwZXMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4sIGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyxcbiAgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeSxcbiAgVW5zaWduZWRTd2VlcFR4TVBDdjIsXG4gIFJlY292ZXJPcHRpb25zLFxuICBPZmZsaW5lVmF1bHRUeEluZm8sXG59IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpYic7XG5cbmV4cG9ydCBjbGFzcyBYZGMgZXh0ZW5kcyBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pIHtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFhkYyhiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zYWN0aW9uQnVpbGRlcigpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCh0aGlzLmdldEJhc2VDaGFpbigpKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogaW5oZXJpdGVkIGRvYyAqL1xuICBnZXREZWZhdWx0TXVsdGlzaWdUeXBlKCk6IE11bHRpc2lnVHlwZSB7XG4gICAgcmV0dXJuIG11bHRpc2lnVHlwZXMudHNzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG0ge1xuICAgIHJldHVybiAnZWNkc2EnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkVW5zaWduZWRTd2VlcFR4blRTUyhwYXJhbXM6IFJlY292ZXJPcHRpb25zKTogUHJvbWlzZTxPZmZsaW5lVmF1bHRUeEluZm8gfCBVbnNpZ25lZFN3ZWVwVHhNUEN2Mj4ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkVW5zaWduZWRTd2VlcFR4bk1QQ3YyKHBhcmFtcyk7XG4gIH1cblxuICBhc3luYyByZWNvdmVyeUJsb2NrY2hhaW5FeHBsb3JlclF1ZXJ5KHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgIGNvbnN0IGFwaVRva2VuID0gY29tbW9uLkVudmlyb25tZW50c1t0aGlzLmJpdGdvLmdldEVudigpXS54ZGNFeHBsb3JlckFwaVRva2VuO1xuICAgIGNvbnN0IGV4cGxvcmVyVXJsID0gY29tbW9uLkVudmlyb25tZW50c1t0aGlzLmJpdGdvLmdldEVudigpXS54ZGNFeHBsb3JlckJhc2VVcmw7XG4gICAgcmV0dXJuIGF3YWl0IHJlY292ZXJ5QmxvY2tjaGFpbkV4cGxvcmVyUXVlcnkocXVlcnksIGV4cGxvcmVyVXJsIGFzIHN0cmluZywgYXBpVG9rZW4pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prettier
|
|
3
|
+
*/
|
|
4
|
+
import { EthLikeTokenConfig } from '@bitgo-beta/statics';
|
|
5
|
+
import { BitGoBase, CoinConstructor, NamedCoinConstructor, MPCAlgorithm } from '@bitgo-beta/sdk-core';
|
|
6
|
+
import { CoinNames, EthLikeToken } from '@bitgo-beta/abstract-eth';
|
|
7
|
+
import { TransactionBuilder } from './lib';
|
|
8
|
+
export { EthLikeTokenConfig };
|
|
9
|
+
export declare class XdcToken extends EthLikeToken {
|
|
10
|
+
readonly tokenConfig: EthLikeTokenConfig;
|
|
11
|
+
static coinNames: CoinNames;
|
|
12
|
+
constructor(bitgo: BitGoBase, tokenConfig: EthLikeTokenConfig);
|
|
13
|
+
static createTokenConstructor(config: EthLikeTokenConfig): CoinConstructor;
|
|
14
|
+
static createTokenConstructors(): NamedCoinConstructor[];
|
|
15
|
+
protected getTransactionBuilder(): TransactionBuilder;
|
|
16
|
+
/**
|
|
17
|
+
* Make a query to XDC Etherscan for information such as balance, token balance, solidity calls
|
|
18
|
+
* @param {Object} query key-value pairs of parameters to append after /api
|
|
19
|
+
* @returns {Promise<Object>} response from XDC Etherscan
|
|
20
|
+
*/
|
|
21
|
+
recoveryBlockchainExplorerQuery(query: Record<string, string>): Promise<Record<string, unknown>>;
|
|
22
|
+
getFullName(): string;
|
|
23
|
+
supportsTss(): boolean;
|
|
24
|
+
/** @inheritDoc */
|
|
25
|
+
getMPCAlgorithm(): MPCAlgorithm;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=xdcToken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xdcToken.d.ts","sourceRoot":"","sources":["../../src/xdcToken.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAS,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAU,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,SAAS,EAAE,YAAY,EAAmC,MAAM,0BAA0B,CAAC;AAEpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,qBAAa,QAAS,SAAQ,YAAY;IACxC,SAAgB,WAAW,EAAE,kBAAkB,CAAC;IAChD,MAAM,CAAC,SAAS,EAAE,SAAS,CAGzB;gBACU,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB;IAG7D,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,eAAe;IAI1E,MAAM,CAAC,uBAAuB,IAAI,oBAAoB,EAAE;IAIxD,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;IAIrD;;;;OAIG;IACG,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMtG,WAAW,IAAI,MAAM;IAIrB,WAAW,IAAI,OAAO;IAItB,kBAAkB;IAClB,eAAe,IAAI,YAAY;CAGhC"}
|