@bitgo-beta/sdk-coin-mon 1.0.1-beta.689 → 1.0.1-beta.690
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/monToken.d.ts +26 -0
- package/dist/src/monToken.d.ts.map +1 -0
- package/dist/src/monToken.js +49 -0
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +5 -1
- package/dist/test/unit/monToken.d.ts +2 -0
- package/dist/test/unit/monToken.d.ts.map +1 -0
- package/dist/test/unit/monToken.js +96 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -18,4 +18,5 @@ __exportStar(require("./lib"), exports);
|
|
|
18
18
|
__exportStar(require("./mon"), exports);
|
|
19
19
|
__exportStar(require("./tmon"), exports);
|
|
20
20
|
__exportStar(require("./register"), exports);
|
|
21
|
-
|
|
21
|
+
__exportStar(require("./monToken"), exports);
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQjtBQUN0Qix3Q0FBc0I7QUFDdEIseUNBQXVCO0FBQ3ZCLDZDQUEyQjtBQUMzQiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG5leHBvcnQgKiBmcm9tICcuL21vbic7XG5leHBvcnQgKiBmcm9tICcuL3Rtb24nO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlcic7XG5leHBvcnQgKiBmcm9tICcuL21vblRva2VuJztcbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { EthLikeTokenConfig } from '@bitgo-beta/statics';
|
|
2
|
+
import { BitGoBase, CoinConstructor, MPCAlgorithm, NamedCoinConstructor } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { CoinNames, EthLikeToken } from '@bitgo-beta/abstract-eth';
|
|
4
|
+
import { TransactionBuilder } from './lib';
|
|
5
|
+
export { EthLikeTokenConfig };
|
|
6
|
+
export declare class MonToken extends EthLikeToken {
|
|
7
|
+
readonly tokenConfig: EthLikeTokenConfig;
|
|
8
|
+
static coinNames: CoinNames;
|
|
9
|
+
constructor(bitgo: BitGoBase, tokenConfig: EthLikeTokenConfig);
|
|
10
|
+
static createTokenConstructor(config: EthLikeTokenConfig): CoinConstructor;
|
|
11
|
+
static createTokenConstructors(): NamedCoinConstructor[];
|
|
12
|
+
protected getTransactionBuilder(): TransactionBuilder;
|
|
13
|
+
/** @inheritDoc **/
|
|
14
|
+
getMPCAlgorithm(): MPCAlgorithm;
|
|
15
|
+
/** @inheritDoc */
|
|
16
|
+
supportsTss(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Make a query to Mon explorer for information such as balance, token balance, solidity calls
|
|
19
|
+
* @param {Object} query key-value pairs of parameters to append after /api
|
|
20
|
+
* @param {string} apiKey optional API key to use instead of the one from the environment
|
|
21
|
+
* @returns {Promise<Object>} response from Mon explorer
|
|
22
|
+
*/
|
|
23
|
+
recoveryBlockchainExplorerQuery(query: Record<string, string>, apiKey?: string): Promise<Record<string, unknown>>;
|
|
24
|
+
getFullName(): string;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=monToken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monToken.d.ts","sourceRoot":"","sources":["../../src/monToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAU,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,SAAS,EAAE,YAAY,EAAmC,MAAM,0BAA0B,CAAC;AAEpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,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,mBAAmB;IACnB,eAAe,IAAI,YAAY;IAI/B,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB;;;;;OAKG;IACG,+BAA+B,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMnC,WAAW,IAAI,MAAM;CAGtB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MonToken = void 0;
|
|
4
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
5
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
6
|
+
const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
|
|
7
|
+
const lib_1 = require("./lib");
|
|
8
|
+
class MonToken extends abstract_eth_1.EthLikeToken {
|
|
9
|
+
constructor(bitgo, tokenConfig) {
|
|
10
|
+
super(bitgo, tokenConfig, MonToken.coinNames);
|
|
11
|
+
}
|
|
12
|
+
static createTokenConstructor(config) {
|
|
13
|
+
return super.createTokenConstructor(config, MonToken.coinNames);
|
|
14
|
+
}
|
|
15
|
+
static createTokenConstructors() {
|
|
16
|
+
return super.createTokenConstructors(MonToken.coinNames);
|
|
17
|
+
}
|
|
18
|
+
getTransactionBuilder() {
|
|
19
|
+
return new lib_1.TransactionBuilder(statics_1.coins.get(this.getBaseChain()));
|
|
20
|
+
}
|
|
21
|
+
/** @inheritDoc **/
|
|
22
|
+
getMPCAlgorithm() {
|
|
23
|
+
return 'ecdsa';
|
|
24
|
+
}
|
|
25
|
+
/** @inheritDoc */
|
|
26
|
+
supportsTss() {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Make a query to Mon explorer for information such as balance, token balance, solidity calls
|
|
31
|
+
* @param {Object} query key-value pairs of parameters to append after /api
|
|
32
|
+
* @param {string} apiKey optional API key to use instead of the one from the environment
|
|
33
|
+
* @returns {Promise<Object>} response from Mon explorer
|
|
34
|
+
*/
|
|
35
|
+
async recoveryBlockchainExplorerQuery(query, apiKey) {
|
|
36
|
+
const apiToken = apiKey || sdk_core_1.common.Environments[this.bitgo.getEnv()].monExplorerApiToken;
|
|
37
|
+
const explorerUrl = sdk_core_1.common.Environments[this.bitgo.getEnv()].monExplorerBaseUrl;
|
|
38
|
+
return await (0, abstract_eth_1.recoveryBlockchainExplorerQuery)(query, explorerUrl, apiToken);
|
|
39
|
+
}
|
|
40
|
+
getFullName() {
|
|
41
|
+
return 'Mon Token';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.MonToken = MonToken;
|
|
45
|
+
MonToken.coinNames = {
|
|
46
|
+
Mainnet: 'mon',
|
|
47
|
+
Testnet: 'tmon',
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9uVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQWdFO0FBQ2hFLG1EQUE4RztBQUM5RywyREFBb0c7QUFFcEcsK0JBQTJDO0FBSTNDLE1BQWEsUUFBUyxTQUFRLDJCQUFZO0lBTXhDLFlBQVksS0FBZ0IsRUFBRSxXQUErQjtRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxNQUEwQjtRQUN0RCxPQUFPLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxNQUFNLENBQUMsdUJBQXVCO1FBQzVCLE9BQU8sS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRVMscUJBQXFCO1FBQzdCLE9BQU8sSUFBSSx3QkFBa0IsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsK0JBQStCLENBQ25DLEtBQTZCLEVBQzdCLE1BQWU7UUFFZixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksaUJBQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1FBQ3hGLE1BQU0sV0FBVyxHQUFHLGlCQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztRQUNoRixPQUFPLE1BQU0sSUFBQSw4Q0FBK0IsRUFBQyxLQUFLLEVBQUUsV0FBcUIsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7O0FBaERILDRCQWlEQztBQS9DUSxrQkFBUyxHQUFjO0lBQzVCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsT0FBTyxFQUFFLE1BQU07Q0FDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvaW5zLCBFdGhMaWtlVG9rZW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJpdEdvQmFzZSwgQ29pbkNvbnN0cnVjdG9yLCBjb21tb24sIE1QQ0FsZ29yaXRobSwgTmFtZWRDb2luQ29uc3RydWN0b3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBDb2luTmFtZXMsIEV0aExpa2VUb2tlbiwgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeSB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vbGliJztcblxuZXhwb3J0IHsgRXRoTGlrZVRva2VuQ29uZmlnIH07XG5cbmV4cG9ydCBjbGFzcyBNb25Ub2tlbiBleHRlbmRzIEV0aExpa2VUb2tlbiB7XG4gIHB1YmxpYyByZWFkb25seSB0b2tlbkNvbmZpZzogRXRoTGlrZVRva2VuQ29uZmlnO1xuICBzdGF0aWMgY29pbk5hbWVzOiBDb2luTmFtZXMgPSB7XG4gICAgTWFpbm5ldDogJ21vbicsXG4gICAgVGVzdG5ldDogJ3Rtb24nLFxuICB9O1xuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB0b2tlbkNvbmZpZzogRXRoTGlrZVRva2VuQ29uZmlnKSB7XG4gICAgc3VwZXIoYml0Z28sIHRva2VuQ29uZmlnLCBNb25Ub2tlbi5jb2luTmFtZXMpO1xuICB9XG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9yKGNvbmZpZzogRXRoTGlrZVRva2VuQ29uZmlnKTogQ29pbkNvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gc3VwZXIuY3JlYXRlVG9rZW5Db25zdHJ1Y3Rvcihjb25maWcsIE1vblRva2VuLmNvaW5OYW1lcyk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKTogTmFtZWRDb2luQ29uc3RydWN0b3JbXSB7XG4gICAgcmV0dXJuIHN1cGVyLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKE1vblRva2VuLmNvaW5OYW1lcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VHJhbnNhY3Rpb25CdWlsZGVyKCk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KHRoaXMuZ2V0QmFzZUNoYWluKCkpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhIHF1ZXJ5IHRvIE1vbiBleHBsb3JlciBmb3IgaW5mb3JtYXRpb24gc3VjaCBhcyBiYWxhbmNlLCB0b2tlbiBiYWxhbmNlLCBzb2xpZGl0eSBjYWxsc1xuICAgKiBAcGFyYW0ge09iamVjdH0gcXVlcnkga2V5LXZhbHVlIHBhaXJzIG9mIHBhcmFtZXRlcnMgdG8gYXBwZW5kIGFmdGVyIC9hcGlcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaUtleSBvcHRpb25hbCBBUEkga2V5IHRvIHVzZSBpbnN0ZWFkIG9mIHRoZSBvbmUgZnJvbSB0aGUgZW52aXJvbm1lbnRcbiAgICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gcmVzcG9uc2UgZnJvbSBNb24gZXhwbG9yZXJcbiAgICovXG4gIGFzeW5jIHJlY292ZXJ5QmxvY2tjaGFpbkV4cGxvcmVyUXVlcnkoXG4gICAgcXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgYXBpS2V5Pzogc3RyaW5nXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICBjb25zdCBhcGlUb2tlbiA9IGFwaUtleSB8fCBjb21tb24uRW52aXJvbm1lbnRzW3RoaXMuYml0Z28uZ2V0RW52KCldLm1vbkV4cGxvcmVyQXBpVG9rZW47XG4gICAgY29uc3QgZXhwbG9yZXJVcmwgPSBjb21tb24uRW52aXJvbm1lbnRzW3RoaXMuYml0Z28uZ2V0RW52KCldLm1vbkV4cGxvcmVyQmFzZVVybDtcbiAgICByZXR1cm4gYXdhaXQgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeShxdWVyeSwgZXhwbG9yZXJVcmwgYXMgc3RyaW5nLCBhcGlUb2tlbik7XG4gIH1cblxuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnTW9uIFRva2VuJztcbiAgfVxufVxuIl19
|
|
@@ -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 mon_1 = require("./mon");
|
|
5
5
|
const tmon_1 = require("./tmon");
|
|
6
|
+
const monToken_1 = require("./monToken");
|
|
6
7
|
const register = (sdk) => {
|
|
7
8
|
sdk.register('mon', mon_1.Mon.createInstance);
|
|
8
9
|
sdk.register('tmon', tmon_1.Tmon.createInstance);
|
|
10
|
+
monToken_1.MonToken.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQTRCO0FBQzVCLGlDQUE4QjtBQUM5Qix5Q0FBc0M7QUFFL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFjLEVBQVEsRUFBRTtJQUMvQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFDLG1CQUFRLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBTlcsUUFBQSxRQUFRLFlBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgTW9uIH0gZnJvbSAnLi9tb24nO1xuaW1wb3J0IHsgVG1vbiB9IGZyb20gJy4vdG1vbic7XG5pbXBvcnQgeyBNb25Ub2tlbiB9IGZyb20gJy4vbW9uVG9rZW4nO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgc2RrLnJlZ2lzdGVyKCdtb24nLCBNb24uY3JlYXRlSW5zdGFuY2UpO1xuICBzZGsucmVnaXN0ZXIoJ3Rtb24nLCBUbW9uLmNyZWF0ZUluc3RhbmNlKTtcbiAgTW9uVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgc2RrLnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monToken.d.ts","sourceRoot":"","sources":["../../../test/unit/monToken.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("should");
|
|
4
|
+
const sdk_test_1 = require("@bitgo-beta/sdk-test");
|
|
5
|
+
const sdk_api_1 = require("@bitgo-beta/sdk-api");
|
|
6
|
+
const src_1 = require("../../src");
|
|
7
|
+
describe('Mon Token:', function () {
|
|
8
|
+
let bitgo;
|
|
9
|
+
let monTokenCoin;
|
|
10
|
+
const tokenName = 'mon:usdc';
|
|
11
|
+
before(function () {
|
|
12
|
+
bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'prod' });
|
|
13
|
+
(0, src_1.register)(bitgo);
|
|
14
|
+
bitgo.initializeTestVars();
|
|
15
|
+
monTokenCoin = bitgo.coin(tokenName);
|
|
16
|
+
});
|
|
17
|
+
it('should return constants', function () {
|
|
18
|
+
monTokenCoin.getChain().should.equal('mon:usdc');
|
|
19
|
+
monTokenCoin.getBaseChain().should.equal('mon');
|
|
20
|
+
monTokenCoin.getFullName().should.equal('Mon Token');
|
|
21
|
+
monTokenCoin.getBaseFactor().should.equal(1e6);
|
|
22
|
+
monTokenCoin.type.should.equal(tokenName);
|
|
23
|
+
monTokenCoin.name.should.equal('Monad USDC');
|
|
24
|
+
monTokenCoin.coin.should.equal('mon');
|
|
25
|
+
monTokenCoin.network.should.equal('Mainnet');
|
|
26
|
+
monTokenCoin.decimalPlaces.should.equal(6);
|
|
27
|
+
});
|
|
28
|
+
describe('Token Registration and TransactionBuilder', function () {
|
|
29
|
+
const mainnetTokens = ['mon:usdc', 'mon:wmon'];
|
|
30
|
+
describe('Mainnet tokens', function () {
|
|
31
|
+
mainnetTokens.forEach((tokenName) => {
|
|
32
|
+
it(`${tokenName} should be registered as MonToken`, function () {
|
|
33
|
+
const token = bitgo.coin(tokenName);
|
|
34
|
+
token.should.be.instanceOf(src_1.MonToken);
|
|
35
|
+
});
|
|
36
|
+
it(`${tokenName} should create TransactionBuilder without error`, function () {
|
|
37
|
+
const token = bitgo.coin(tokenName);
|
|
38
|
+
// @ts-expect-error - accessing protected method for testing
|
|
39
|
+
(() => token.getTransactionBuilder()).should.not.throw();
|
|
40
|
+
});
|
|
41
|
+
it(`${tokenName} should use Mon-specific TransactionBuilder`, function () {
|
|
42
|
+
const token = bitgo.coin(tokenName);
|
|
43
|
+
// @ts-expect-error - accessing protected method for testing
|
|
44
|
+
const builder = token.getTransactionBuilder();
|
|
45
|
+
builder.should.have.property('_common');
|
|
46
|
+
builder.constructor.name.should.equal('TransactionBuilder');
|
|
47
|
+
});
|
|
48
|
+
it(`${tokenName} should not throw "Cannot use common sdk module" error`, function () {
|
|
49
|
+
const token = bitgo.coin(tokenName);
|
|
50
|
+
let errorThrown = false;
|
|
51
|
+
let errorMessage = '';
|
|
52
|
+
try {
|
|
53
|
+
// @ts-expect-error - accessing protected method for testing
|
|
54
|
+
const builder = token.getTransactionBuilder();
|
|
55
|
+
// Try to use the builder to ensure it's fully functional
|
|
56
|
+
// @ts-expect-error - type expects TransactionType enum
|
|
57
|
+
builder.type('Send');
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
errorThrown = true;
|
|
61
|
+
errorMessage = e.message;
|
|
62
|
+
}
|
|
63
|
+
errorThrown.should.equal(false);
|
|
64
|
+
errorMessage.should.not.match(/Cannot use common sdk module/);
|
|
65
|
+
});
|
|
66
|
+
it(`${tokenName} should build transaction successfully`, async function () {
|
|
67
|
+
const token = bitgo.coin(tokenName);
|
|
68
|
+
// @ts-expect-error - accessing protected method for testing
|
|
69
|
+
const builder = token.getTransactionBuilder();
|
|
70
|
+
// Set up a basic transfer transaction
|
|
71
|
+
// @ts-expect-error - type expects TransactionType enum
|
|
72
|
+
builder.type('Send');
|
|
73
|
+
builder.fee({
|
|
74
|
+
fee: '10000000000',
|
|
75
|
+
gasLimit: '100000',
|
|
76
|
+
});
|
|
77
|
+
builder.counter(1);
|
|
78
|
+
builder.contract(token.tokenContractAddress);
|
|
79
|
+
// Verify the builder is correctly configured
|
|
80
|
+
builder.should.have.property('_type', 'Send');
|
|
81
|
+
builder.should.have.property('_fee');
|
|
82
|
+
builder.should.have.property('_counter', 1);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
it('should verify all Mon tokens use MonToken class, not EthLikeErc20Token', function () {
|
|
87
|
+
mainnetTokens.forEach((tokenName) => {
|
|
88
|
+
const token = bitgo.coin(tokenName);
|
|
89
|
+
token.should.be.instanceOf(src_1.MonToken);
|
|
90
|
+
token.constructor.name.should.equal('MonToken');
|
|
91
|
+
token.constructor.name.should.not.equal('EthLikeErc20Token');
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvbW9uVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZ0I7QUFDaEIsbURBQStEO0FBQy9ELGlEQUErQztBQUUvQyxtQ0FBK0M7QUFFL0MsUUFBUSxDQUFDLFlBQVksRUFBRTtJQUNyQixJQUFJLEtBQW1CLENBQUM7SUFDeEIsSUFBSSxZQUFZLENBQUM7SUFDakIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDO0lBRTdCLE1BQU0sQ0FBQztRQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBQSxjQUFRLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEIsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMseUJBQXlCLEVBQUU7UUFDNUIsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtB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QUM7WUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyLCBNb25Ub2tlbiB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbmRlc2NyaWJlKCdNb24gVG9rZW46JywgZnVuY3Rpb24gKCkge1xuICBsZXQgYml0Z286IFRlc3RCaXRHb0FQSTtcbiAgbGV0IG1vblRva2VuQ29pbjtcbiAgY29uc3QgdG9rZW5OYW1lID0gJ21vbjp1c2RjJztcblxuICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgIGJpdGdvID0gVGVzdEJpdEdvLmRlY29yYXRlKEJpdEdvQVBJLCB7IGVudjogJ3Byb2QnIH0pO1xuICAgIHJlZ2lzdGVyKGJpdGdvKTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgICBtb25Ub2tlbkNvaW4gPSBiaXRnby5jb2luKHRva2VuTmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIGNvbnN0YW50cycsIGZ1bmN0aW9uICgpIHtcbiAgICBtb25Ub2tlbkNvaW4uZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwoJ21vbjp1c2RjJyk7XG4gICAgbW9uVG9rZW5Db2luLmdldEJhc2VDaGFpbigpLnNob3VsZC5lcXVhbCgnbW9uJyk7XG4gICAgbW9uVG9rZW5Db2luLmdldEZ1bGxOYW1lKCkuc2hvdWxkLmVxdWFsKCdNb24gVG9rZW4nKTtcbiAgICBtb25Ub2tlbkNvaW4uZ2V0QmFzZUZhY3RvcigpLnNob3VsZC5lcXVhbCgxZTYpO1xuICAgIG1vblRva2VuQ29pbi50eXBlLnNob3VsZC5lcXVhbCh0b2tlbk5hbWUpO1xuICAgIG1vblRva2VuQ29pbi5uYW1lLnNob3VsZC5lcXVhbCgnTW9uYWQgVVNEQycpO1xuICAgIG1vblRva2VuQ29pbi5jb2luLnNob3VsZC5lcXVhbCgnbW9uJyk7XG4gICAgbW9uVG9rZW5Db2luLm5ldHdvcmsuc2hvdWxkLmVxdWFsKCdNYWlubmV0Jyk7XG4gICAgbW9uVG9rZW5Db2luLmRlY2ltYWxQbGFjZXMuc2hvdWxkLmVxdWFsKDYpO1xuICB9KTtcblxuICBkZXNjcmliZSgnVG9rZW4gUmVnaXN0cmF0aW9uIGFuZCBUcmFuc2FjdGlvbkJ1aWxkZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgbWFpbm5ldFRva2VucyA9IFsnbW9uOnVzZGMnLCAnbW9uOndtb24nXTtcblxuICAgIGRlc2NyaWJlKCdNYWlubmV0IHRva2VucycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIG1haW5uZXRUb2tlbnMuZm9yRWFjaCgodG9rZW5OYW1lKSA9PiB7XG4gICAgICAgIGl0KGAke3Rva2VuTmFtZX0gc2hvdWxkIGJlIHJlZ2lzdGVyZWQgYXMgTW9uVG9rZW5gLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY29uc3QgdG9rZW4gPSBiaXRnby5jb2luKHRva2VuTmFtZSk7XG4gICAgICAgICAgdG9rZW4uc2hvdWxkLmJlLmluc3RhbmNlT2YoTW9uVG9rZW4pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdChgJHt0b2tlbk5hbWV9IHNob3VsZCBjcmVhdGUgVHJhbnNhY3Rpb25CdWlsZGVyIHdpdGhvdXQgZXJyb3JgLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY29uc3QgdG9rZW4gPSBiaXRnby5jb2luKHRva2VuTmFtZSkgYXMgTW9uVG9rZW47XG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIGFjY2Vzc2luZyBwcm90ZWN0ZWQgbWV0aG9kIGZvciB0ZXN0aW5nXG4gICAgICAgICAgKCgpID0+IHRva2VuLmdldFRyYW5zYWN0aW9uQnVpbGRlcigpKS5zaG91bGQubm90LnRocm93KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KGAke3Rva2VuTmFtZX0gc2hvdWxkIHVzZSBNb24tc3BlY2lmaWMgVHJhbnNhY3Rpb25CdWlsZGVyYCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGNvbnN0IHRva2VuID0gYml0Z28uY29pbih0b2tlbk5hbWUpIGFzIE1vblRva2VuO1xuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBhY2Nlc3NpbmcgcHJvdGVjdGVkIG1ldGhvZCBmb3IgdGVzdGluZ1xuICAgICAgICAgIGNvbnN0IGJ1aWxkZXIgPSB0b2tlbi5nZXRUcmFuc2FjdGlvbkJ1aWxkZXIoKTtcbiAgICAgICAgICBidWlsZGVyLnNob3VsZC5oYXZlLnByb3BlcnR5KCdfY29tbW9uJyk7XG4gICAgICAgICAgYnVpbGRlci5jb25zdHJ1Y3Rvci5uYW1lLnNob3VsZC5lcXVhbCgnVHJhbnNhY3Rpb25CdWlsZGVyJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KGAke3Rva2VuTmFtZX0gc2hvdWxkIG5vdCB0aHJvdyBcIkNhbm5vdCB1c2UgY29tbW9uIHNkayBtb2R1bGVcIiBlcnJvcmAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBjb25zdCB0b2tlbiA9IGJpdGdvLmNvaW4odG9rZW5OYW1lKSBhcyBNb25Ub2tlbjtcbiAgICAgICAgICBsZXQgZXJyb3JUaHJvd24gPSBmYWxzZTtcbiAgICAgICAgICBsZXQgZXJyb3JNZXNzYWdlID0gJyc7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIGFjY2Vzc2luZyBwcm90ZWN0ZWQgbWV0aG9kIGZvciB0ZXN0aW5nXG4gICAgICAgICAgICBjb25zdCBidWlsZGVyID0gdG9rZW4uZ2V0VHJhbnNhY3Rpb25CdWlsZGVyKCk7XG4gICAgICAgICAgICAvLyBUcnkgdG8gdXNlIHRoZSBidWlsZGVyIHRvIGVuc3VyZSBpdCdzIGZ1bGx5IGZ1bmN0aW9uYWxcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSB0eXBlIGV4cGVjdHMgVHJhbnNhY3Rpb25UeXBlIGVudW1cbiAgICAgICAgICAgIGJ1aWxkZXIudHlwZSgnU2VuZCcpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTtcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IChlIGFzIEVycm9yKS5tZXNzYWdlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVycm9yVGhyb3duLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlLnNob3VsZC5ub3QubWF0Y2goL0Nhbm5vdCB1c2UgY29tbW9uIHNkayBtb2R1bGUvKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoYCR7dG9rZW5OYW1lfSBzaG91bGQgYnVpbGQgdHJhbnNhY3Rpb24gc3VjY2Vzc2Z1bGx5YCwgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGNvbnN0IHRva2VuID0gYml0Z28uY29pbih0b2tlbk5hbWUpIGFzIE1vblRva2VuO1xuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBhY2Nlc3NpbmcgcHJvdGVjdGVkIG1ldGhvZCBmb3IgdGVzdGluZ1xuICAgICAgICAgIGNvbnN0IGJ1aWxkZXIgPSB0b2tlbi5nZXRUcmFuc2FjdGlvbkJ1aWxkZXIoKTtcblxuICAgICAgICAgIC8vIFNldCB1cCBhIGJhc2ljIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIHR5cGUgZXhwZWN0cyBUcmFuc2FjdGlvblR5cGUgZW51bVxuICAgICAgICAgIGJ1aWxkZXIudHlwZSgnU2VuZCcpO1xuICAgICAgICAgIGJ1aWxkZXIuZmVlKHtcbiAgICAgICAgICAgIGZlZTogJzEwMDAwMDAwMDAwJyxcbiAgICAgICAgICAgIGdhc0xpbWl0OiAnMTAwMDAwJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBidWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgICAgICAgYnVpbGRlci5jb250cmFjdCh0b2tlbi50b2tlbkNvbnRyYWN0QWRkcmVzcyk7XG5cbiAgICAgICAgICAvLyBWZXJpZnkgdGhlIGJ1aWxkZXIgaXMgY29ycmVjdGx5IGNvbmZpZ3VyZWRcbiAgICAgICAgICBidWlsZGVyLnNob3VsZC5oYXZlLnByb3BlcnR5KCdfdHlwZScsICdTZW5kJyk7XG4gICAgICAgICAgYnVpbGRlci5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnX2ZlZScpO1xuICAgICAgICAgIGJ1aWxkZXIuc2hvdWxkLmhhdmUucHJvcGVydHkoJ19jb3VudGVyJywgMSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHZlcmlmeSBhbGwgTW9uIHRva2VucyB1c2UgTW9uVG9rZW4gY2xhc3MsIG5vdCBFdGhMaWtlRXJjMjBUb2tlbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIG1haW5uZXRUb2tlbnMuZm9yRWFjaCgodG9rZW5OYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gYml0Z28uY29pbih0b2tlbk5hbWUpO1xuICAgICAgICB0b2tlbi5zaG91bGQuYmUuaW5zdGFuY2VPZihNb25Ub2tlbik7XG4gICAgICAgIHRva2VuLmNvbnN0cnVjdG9yLm5hbWUuc2hvdWxkLmVxdWFsKCdNb25Ub2tlbicpO1xuICAgICAgICB0b2tlbi5jb25zdHJ1Y3Rvci5uYW1lLnNob3VsZC5ub3QuZXF1YWwoJ0V0aExpa2VFcmMyMFRva2VuJyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|