@bitgo-beta/statics 10.0.1-alpha.469 → 10.0.1-alpha.470

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/src/allCoinsAndTokens.d.ts.map +1 -1
  2. package/dist/src/allCoinsAndTokens.js +151 -17
  3. package/dist/src/base.d.ts +32 -14
  4. package/dist/src/base.d.ts.map +1 -1
  5. package/dist/src/base.js +33 -15
  6. package/dist/src/coins/avaxTokens.d.ts.map +1 -1
  7. package/dist/src/coins/avaxTokens.js +4 -4
  8. package/dist/src/coins/bscTokens.d.ts.map +1 -1
  9. package/dist/src/coins/bscTokens.js +3 -1
  10. package/dist/src/coins/cantonTokens.d.ts.map +1 -1
  11. package/dist/src/coins/cantonTokens.js +2 -1
  12. package/dist/src/coins/erc20Coins.d.ts +1 -1
  13. package/dist/src/coins/erc20Coins.d.ts.map +1 -1
  14. package/dist/src/coins/erc20Coins.js +1959 -18284
  15. package/dist/src/coins/{generateErc20Coins.d.ts → generateERC20.d.ts} +5 -7
  16. package/dist/src/coins/generateERC20.d.ts.map +1 -0
  17. package/dist/src/coins/generateERC20.js +44 -0
  18. package/dist/src/coins/ofcCoins.d.ts +1 -1
  19. package/dist/src/coins/ofcCoins.d.ts.map +1 -1
  20. package/dist/src/coins/ofcCoins.js +22 -10
  21. package/dist/src/coins/ofcErc20Coins.d.ts +3 -6
  22. package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -1
  23. package/dist/src/coins/ofcErc20Coins.js +1707 -53
  24. package/dist/src/coins/polygonTokens.d.ts.map +1 -1
  25. package/dist/src/coins/polygonTokens.js +3 -1
  26. package/dist/src/coins/solTokens.d.ts.map +1 -1
  27. package/dist/src/coins/solTokens.js +5 -1
  28. package/dist/src/coins.d.ts.map +1 -1
  29. package/dist/src/coins.js +9 -2
  30. package/dist/src/index.d.ts +1 -0
  31. package/dist/src/index.d.ts.map +1 -1
  32. package/dist/src/index.js +7 -2
  33. package/dist/src/networks.d.ts +47 -8
  34. package/dist/src/networks.d.ts.map +1 -1
  35. package/dist/src/networks.js +70 -20
  36. package/dist/src/ofc.d.ts +29 -4
  37. package/dist/src/ofc.d.ts.map +1 -1
  38. package/dist/src/ofc.js +132 -99
  39. package/dist/src/tokenConfig.d.ts +13 -7
  40. package/dist/src/tokenConfig.d.ts.map +1 -1
  41. package/dist/tsconfig.tsbuildinfo +1 -1
  42. package/package.json +2 -2
  43. package/dist/src/coins/generateErc20Coins.d.ts.map +0 -1
  44. package/dist/src/coins/generateErc20Coins.js +0 -69
  45. package/dist/src/ofcCoin.d.ts +0 -32
  46. package/dist/src/ofcCoin.d.ts.map +0 -1
  47. package/dist/src/ofcCoin.js +0 -42
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateErc20Coin = generateErc20Coin;
4
- exports.generateTestErc20Coin = generateTestErc20Coin;
5
- exports.generateErc20Token = generateErc20Token;
6
- exports.generateTestErc20Token = generateTestErc20Token;
7
- exports.generateXdcErc20 = generateXdcErc20;
8
- exports.generateMonErc20 = generateMonErc20;
9
- const account_1 = require("../account");
10
- const ofcCoin_1 = require("../ofcCoin");
11
- const ofcErc20Coins_1 = require("./ofcErc20Coins");
12
- /**
13
- * Derive OFC features from the onchain coin's features by filtering out
14
- * disallowed features and ensuring required features are present.
15
- */
16
- function deriveOfcFeatures(onchainFeatures) {
17
- const filtered = onchainFeatures.filter((f) => !ofcCoin_1.DISALLOWED_FEATURES.includes(f));
18
- return [...filtered, ...ofcCoin_1.REQUIRED_FEATURES.filter((f) => !filtered.includes(f))];
19
- }
20
- function createOfcCoin(config, onchainFeatures, defaultAddressCoin, isTestnet) {
21
- const ofcFeatures = deriveOfcFeatures(onchainFeatures);
22
- const ofcFn = isTestnet ? ofcErc20Coins_1.tofcerc20 : ofcErc20Coins_1.ofcerc20;
23
- return ofcFn(config.ofcId, config.ofcName, config.fullName, config.decimalPlaces, config.asset, undefined, // kind
24
- ofcFeatures, undefined, // prefix
25
- undefined, // suffix
26
- undefined, // network
27
- true, // isToken
28
- config.ofcAddressCoin ?? defaultAddressCoin);
29
- }
30
- // --- Ethereum ERC20 generators (erc20 / terc20) ---
31
- function generateErc20Coin(config) {
32
- const onChain = (0, account_1.erc20)(config.id, config.name, config.fullName, config.decimalPlaces, config.contractAddress, config.asset, config.features, config.prefix, config.suffix, config.network);
33
- if (config.skipOfc)
34
- return [onChain];
35
- return [onChain, createOfcCoin(config, onChain.features, 'eth', false)];
36
- }
37
- function generateTestErc20Coin(config) {
38
- const onChain = (0, account_1.terc20)(config.id, config.name, config.fullName, config.decimalPlaces, config.contractAddress, config.asset, config.features, config.prefix, config.suffix, config.network);
39
- if (config.skipOfc)
40
- return [onChain];
41
- return [onChain, createOfcCoin(config, onChain.features, 'teth', true)];
42
- }
43
- // --- ERC20 Token generators (erc20Token for non-Ethereum EVM chains) ---
44
- function generateErc20Token(config) {
45
- const onChain = (0, account_1.erc20Token)(config.id, config.name, config.fullName, config.decimalPlaces, config.contractAddress, config.asset, config.network, config.features, config.prefix, config.suffix);
46
- if (config.skipOfc)
47
- return [onChain];
48
- return [onChain, createOfcCoin(config, onChain.features, 'eth', false)];
49
- }
50
- function generateTestErc20Token(config) {
51
- const onChain = (0, account_1.erc20Token)(config.id, config.name, config.fullName, config.decimalPlaces, config.contractAddress, config.asset, config.network, config.features, config.prefix, config.suffix);
52
- if (config.skipOfc)
53
- return [onChain];
54
- return [onChain, createOfcCoin(config, onChain.features, 'teth', true)];
55
- }
56
- // --- Chain-specific ERC20 generators (xdc, mon, etc.) ---
57
- function generateXdcErc20(config) {
58
- const onChain = (0, account_1.xdcErc20)(config.id, config.name, config.fullName, config.decimalPlaces, config.contractAddress, config.asset, config.features, config.prefix, config.suffix);
59
- if (config.skipOfc)
60
- return [onChain];
61
- return [onChain, createOfcCoin(config, onChain.features, 'xdc', false)];
62
- }
63
- function generateMonErc20(config) {
64
- const onChain = (0, account_1.monErc20)(config.id, config.name, config.fullName, config.decimalPlaces, config.contractAddress, config.asset, config.features, config.prefix, config.suffix);
65
- if (config.skipOfc)
66
- return [onChain];
67
- return [onChain, createOfcCoin(config, onChain.features, 'mon', false)];
68
- }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVFcmMyMENvaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvaW5zL2dlbmVyYXRlRXJjMjBDb2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXdFQSw4Q0FpQkM7QUFFRCxzREFpQkM7QUFJRCxnREFpQkM7QUFFRCx3REFpQkM7QUFJRCw0Q0FnQkM7QUFFRCw0Q0FnQkM7QUExTEQsd0NBQTJFO0FBRzNFLHdDQUFvRTtBQUNwRSxtREFBc0Q7QUFnQ3REOzs7R0FHRztBQUNILFNBQVMsaUJBQWlCLENBQUMsZUFBOEI7SUFDdkQsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyw2QkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixPQUFPLENBQUMsR0FBRyxRQUFRLEVBQUUsR0FBRywyQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUNwQixNQUEwQixFQUMxQixlQUE4QixFQUM5QixrQkFBMEIsRUFDMUIsU0FBa0I7SUFFbEIsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyx5QkFBUyxDQUFDLENBQUMsQ0FBQyx3QkFBUSxDQUFDO0lBRS9DLE9BQU8sS0FBSyxDQUNWLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLE9BQU8sRUFDZCxNQUFNLENBQUMsUUFBUSxFQUNmLE1BQU0sQ0FBQyxhQUFhLEVBQ3BCLE1BQU0sQ0FBQyxLQUFLLEVBQ1osU0FBUyxFQUFFLE9BQU87SUFDbEIsV0FBVyxFQUNYLFNBQVMsRUFBRSxT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QUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVyYzIwLCBlcmMyMFRva2VuLCBtb25FcmMyMCwgdGVyYzIwLCB4ZGNFcmMyMCB9IGZyb20gJy4uL2FjY291bnQnO1xuaW1wb3J0IHsgQ29pbkZlYXR1cmUsIFVuZGVybHlpbmdBc3NldCB9IGZyb20gJy4uL2Jhc2UnO1xuaW1wb3J0IHsgQWNjb3VudE5ldHdvcmssIEV0aGVyZXVtTmV0d29yayB9IGZyb20gJy4uL25ldHdvcmtzJztcbmltcG9ydCB7IERJU0FMTE9XRURfRkVBVFVSRVMsIFJFUVVJUkVEX0ZFQVRVUkVTIH0gZnJvbSAnLi4vb2ZjQ29pbic7XG5pbXBvcnQgeyBvZmNlcmMyMCwgdG9mY2VyYzIwIH0gZnJvbSAnLi9vZmNFcmMyMENvaW5zJztcblxuLy8gLS0tIFNoYXJlZCBjb25maWcgaW50ZXJmYWNlcyAtLS1cblxuaW50ZXJmYWNlIEJhc2VFcmMyMENvbmZpZyB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZnVsbE5hbWU6IHN0cmluZztcbiAgZGVjaW1hbFBsYWNlczogbnVtYmVyO1xuICBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcbiAgYXNzZXQ6IFVuZGVybHlpbmdBc3NldDtcbiAgZmVhdHVyZXM/OiBDb2luRmVhdHVyZVtdO1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEVyYzIwV2l0aE9mY0NvbmZpZyBleHRlbmRzIEJhc2VFcmMyMENvbmZpZyB7XG4gIG9mY0lkOiBzdHJpbmc7XG4gIG9mY05hbWU6IHN0cmluZztcbiAgb2ZjQWRkcmVzc0NvaW4/OiBzdHJpbmc7XG4gIHNraXBPZmM/OiBmYWxzZTtcbn1cblxuaW50ZXJmYWNlIEVyYzIwV2l0aG91dE9mY0NvbmZpZyBleHRlbmRzIEJhc2VFcmMyMENvbmZpZyB7XG4gIHNraXBPZmM6IHRydWU7XG59XG5cbnR5cGUgRXJjMjBDb25maWcgPSBFcmMyMFdpdGhPZmNDb25maWcgfCBFcmMyMFdpdGhvdXRPZmNDb25maWc7XG5cbnR5cGUgRXJjMjBDb2luQ29uZmlnID0gRXJjMjBDb25maWcgJiB7IG5ldHdvcms/OiBFdGhlcmV1bU5ldHdvcmsgfTtcbnR5cGUgRXJjMjBUb2tlbkNvbmZpZyA9IEVyYzIwQ29uZmlnICYgeyBuZXR3b3JrOiBBY2NvdW50TmV0d29yayB9O1xuXG4vKipcbiAqIERlcml2ZSBPRkMgZmVhdHVyZXMgZnJvbSB0aGUgb25jaGFpbiBjb2luJ3MgZmVhdHVyZXMgYnkgZmlsdGVyaW5nIG91dFxuICogZGlzYWxsb3dlZCBmZWF0dXJlcyBhbmQgZW5zdXJpbmcgcmVxdWlyZWQgZmVhdHVyZXMgYXJlIHByZXNlbnQuXG4gKi9cbmZ1bmN0aW9uIGRlcml2ZU9mY0ZlYXR1cmVzKG9uY2hhaW5GZWF0dXJlczogQ29pbkZlYXR1cmVbXSk6IENvaW5GZWF0dXJlW10ge1xuICBjb25zdCBmaWx0ZXJlZCA9IG9uY2hhaW5GZWF0dXJlcy5maWx0ZXIoKGYpID0+ICFESVNBTExPV0VEX0ZFQVRVUkVTLmluY2x1ZGVzKGYpKTtcbiAgcmV0dXJuIFsuLi5maWx0ZXJlZCwgLi4uUkVRVUlSRURfRkVBVFVSRVMuZmlsdGVyKChmKSA9PiAhZmlsdGVyZWQuaW5jbHVkZXMoZikpXTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlT2ZjQ29pbihcbiAgY29uZmlnOiBFcmMyMFdpdGhPZmNDb25maWcsXG4gIG9uY2hhaW5GZWF0dXJlczogQ29pbkZlYXR1cmVbXSxcbiAgZGVmYXVsdEFkZHJlc3NDb2luOiBzdHJpbmcsXG4gIGlzVGVzdG5ldDogYm9vbGVhblxuKSB7XG4gIGNvbnN0IG9mY0ZlYXR1cmVzID0gZGVyaXZlT2ZjRmVhdHVyZXMob25jaGFpbkZlYXR1cmVzKTtcbiAgY29uc3Qgb2ZjRm4gPSBpc1Rlc3RuZXQgPyB0b2ZjZXJjMjAgOiBvZmNlcmMyMDtcblxuICByZXR1cm4gb2ZjRm4oXG4gICAgY29uZmlnLm9mY0lkLFxuICAgIGNvbmZpZy5vZmNOYW1lLFxuICAgIGNvbmZpZy5mdWxsTmFtZSxcbiAgICBjb25maWcuZGVjaW1hbFBsYWNlcyxcbiAgICBjb25maWcuYXNzZXQsXG4gICAgdW5kZWZpbmVkLCAvLyBraW5kXG4gICAgb2ZjRmVhdHVyZXMsXG4gICAgdW5kZWZpbmVkLCAvLyBwcmVmaXhcbiAgICB1bmRlZmluZWQsIC8vIHN1ZmZpeFxuICAgIHVuZGVmaW5lZCwgLy8gbmV0d29ya1xuICAgIHRydWUsIC8vIGlzVG9rZW5cbiAgICBjb25maWcub2ZjQWRkcmVzc0NvaW4gPz8gZGVmYXVsdEFkZHJlc3NDb2luXG4gICk7XG59XG5cbi8vIC0tLSBFdGhlcmV1bSBFUkMyMCBnZW5lcmF0b3JzIChlcmMyMCAvIHRlcmMyMCkgLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUVyYzIwQ29pbihjb25maWc6IEVyYzIwQ29pbkNvbmZpZykge1xuICBjb25zdCBvbkNoYWluID0gZXJjMjAoXG4gICAgY29uZmlnLmlkLFxuICAgIGNvbmZpZy5uYW1lLFxuICAgIGNvbmZpZy5mdWxsTmFtZSxcbiAgICBjb25maWcuZGVjaW1hbFBsYWNlcyxcbiAgICBjb25maWcuY29udHJhY3RBZGRyZXNzLFxuICAgIGNvbmZpZy5hc3NldCxcbiAgICBjb25maWcuZmVhdHVyZXMsXG4gICAgY29uZmlnLnByZWZpeCxcbiAgICBjb25maWcuc3VmZml4LFxuICAgIGNvbmZpZy5uZXR3b3JrXG4gICk7XG5cbiAgaWYgKGNvbmZpZy5za2lwT2ZjKSByZXR1cm4gW29uQ2hhaW5dO1xuXG4gIHJldHVybiBbb25DaGFpbiwgY3JlYXRlT2ZjQ29pbihjb25maWcsIG9uQ2hhaW4uZmVhdHVyZXMsICdldGgnLCBmYWxzZSldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVUZXN0RXJjMjBDb2luKGNvbmZpZzogRXJjMjBDb2luQ29uZmlnKSB7XG4gIGNvbnN0IG9uQ2hhaW4gPSB0ZXJjMjAoXG4gICAgY29uZmlnLmlkLFxuICAgIGNvbmZpZy5uYW1lLFxuICAgIGNvbmZpZy5mdWxsTmFtZSxcbiAgICBjb25maWcuZGVjaW1hbFBsYWNlcyxcbiAgICBjb25maWcuY29udHJhY3RBZGRyZXNzLFxuICAgIGNvbmZpZy5hc3NldCxcbiAgICBjb25maWcuZmVhdHVyZXMsXG4gICAgY29uZmlnLnByZWZpeCxcbiAgICBjb25maWcuc3VmZml4LFxuICAgIGNvbmZpZy5uZXR3b3JrXG4gICk7XG5cbiAgaWYgKGNvbmZpZy5za2lwT2ZjKSByZXR1cm4gW29uQ2hhaW5dO1xuXG4gIHJldHVybiBbb25DaGFpbiwgY3JlYXRlT2ZjQ29pbihjb25maWcsIG9uQ2hhaW4uZmVhdHVyZXMsICd0ZXRoJywgdHJ1ZSldO1xufVxuXG4vLyAtLS0gRVJDMjAgVG9rZW4gZ2VuZXJhdG9ycyAoZXJjMjBUb2tlbiBmb3Igbm9uLUV0aGVyZXVtIEVWTSBjaGFpbnMpIC0tLVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVFcmMyMFRva2VuKGNvbmZpZzogRXJjMjBUb2tlbkNvbmZpZykge1xuICBjb25zdCBvbkNoYWluID0gZXJjMjBUb2tlbihcbiAgICBjb25maWcuaWQsXG4gICAgY29uZmlnLm5hbWUsXG4gICAgY29uZmlnLmZ1bGxOYW1lLFxuICAgIGNvbmZpZy5kZWNpbWFsUGxhY2VzLFxuICAgIGNvbmZpZy5jb250cmFjdEFkZHJlc3MsXG4gICAgY29uZmlnLmFzc2V0LFxuICAgIGNvbmZpZy5uZXR3b3JrLFxuICAgIGNvbmZpZy5mZWF0dXJlcyxcbiAgICBjb25maWcucHJlZml4LFxuICAgIGNvbmZpZy5zdWZmaXhcbiAgKTtcblxuICBpZiAoY29uZmlnLnNraXBPZmMpIHJldHVybiBbb25DaGFpbl07XG5cbiAgcmV0dXJuIFtvbkNoYWluLCBjcmVhdGVPZmNDb2luKGNvbmZpZywgb25DaGFpbi5mZWF0dXJlcywgJ2V0aCcsIGZhbHNlKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVRlc3RFcmMyMFRva2VuKGNvbmZpZzogRXJjMjBUb2tlbkNvbmZpZykge1xuICBjb25zdCBvbkNoYWluID0gZXJjMjBUb2tlbihcbiAgICBjb25maWcuaWQsXG4gICAgY29uZmlnLm5hbWUsXG4gICAgY29uZmlnLmZ1bGxOYW1lLFxuICAgIGNvbmZpZy5kZWNpbWFsUGxhY2VzLFxuICAgIGNvbmZpZy5jb250cmFjdEFkZHJlc3MsXG4gICAgY29uZmlnLmFzc2V0LFxuICAgIGNvbmZpZy5uZXR3b3JrLFxuICAgIGNvbmZpZy5mZWF0dXJlcyxcbiAgICBjb25maWcucHJlZml4LFxuICAgIGNvbmZpZy5zdWZmaXhcbiAgKTtcblxuICBpZiAoY29uZmlnLnNraXBPZmMpIHJldHVybiBbb25DaGFpbl07XG5cbiAgcmV0dXJuIFtvbkNoYWluLCBjcmVhdGVPZmNDb2luKGNvbmZpZywgb25DaGFpbi5mZWF0dXJlcywgJ3RldGgnLCB0cnVlKV07XG59XG5cbi8vIC0tLSBDaGFpbi1zcGVjaWZpYyBFUkMyMCBnZW5lcmF0b3JzICh4ZGMsIG1vbiwgZXRjLikgLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVhkY0VyYzIwKGNvbmZpZzogRXJjMjBDb25maWcpIHtcbiAgY29uc3Qgb25DaGFpbiA9IHhkY0VyYzIwKFxuICAgIGNvbmZpZy5pZCxcbiAgICBjb25maWcubmFtZSxcbiAgICBjb25maWcuZnVsbE5hbWUsXG4gICAgY29uZmlnLmRlY2ltYWxQbGFjZXMsXG4gICAgY29uZmlnLmNvbnRyYWN0QWRkcmVzcyxcbiAgICBjb25maWcuYXNzZXQsXG4gICAgY29uZmlnLmZlYXR1cmVzLFxuICAgIGNvbmZpZy5wcmVmaXgsXG4gICAgY29uZmlnLnN1ZmZpeFxuICApO1xuXG4gIGlmIChjb25maWcuc2tpcE9mYykgcmV0dXJuIFtvbkNoYWluXTtcblxuICByZXR1cm4gW29uQ2hhaW4sIGNyZWF0ZU9mY0NvaW4oY29uZmlnLCBvbkNoYWluLmZlYXR1cmVzLCAneGRjJywgZmFsc2UpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlTW9uRXJjMjAoY29uZmlnOiBFcmMyMENvbmZpZykge1xuICBjb25zdCBvbkNoYWluID0gbW9uRXJjMjAoXG4gICAgY29uZmlnLmlkLFxuICAgIGNvbmZpZy5uYW1lLFxuICAgIGNvbmZpZy5mdWxsTmFtZSxcbiAgICBjb25maWcuZGVjaW1hbFBsYWNlcyxcbiAgICBjb25maWcuY29udHJhY3RBZGRyZXNzLFxuICAgIGNvbmZpZy5hc3NldCxcbiAgICBjb25maWcuZmVhdHVyZXMsXG4gICAgY29uZmlnLnByZWZpeCxcbiAgICBjb25maWcuc3VmZml4XG4gICk7XG5cbiAgaWYgKGNvbmZpZy5za2lwT2ZjKSByZXR1cm4gW29uQ2hhaW5dO1xuXG4gIHJldHVybiBbb25DaGFpbiwgY3JlYXRlT2ZjQ29pbihjb25maWcsIG9uQ2hhaW4uZmVhdHVyZXMsICdtb24nLCBmYWxzZSldO1xufVxuIl19
@@ -1,32 +0,0 @@
1
- import { BaseCoin, BaseUnit, CoinFeature, CoinKind, KeyCurve, UnderlyingAsset } from './base';
2
- import { BaseNetwork } from './networks';
3
- export interface OfcConstructorOptions {
4
- id: string;
5
- fullName: string;
6
- name: string;
7
- network: BaseNetwork;
8
- asset: UnderlyingAsset;
9
- baseUnit: BaseUnit;
10
- features: CoinFeature[];
11
- decimalPlaces: number;
12
- isToken: boolean;
13
- kind: CoinKind;
14
- prefix?: string;
15
- suffix?: string;
16
- addressCoin?: string;
17
- primaryKeyCurve: KeyCurve;
18
- }
19
- export declare const DISALLOWED_FEATURES: CoinFeature[];
20
- export declare const REQUIRED_FEATURES: CoinFeature[];
21
- /**
22
- * OFC (off chain) coins. These are virtual coins used to represent off chain assets on the BitGo platform.
23
- */
24
- export declare class OfcCoin extends BaseCoin {
25
- static readonly DEFAULT_FEATURES: CoinFeature[];
26
- readonly addressCoin?: string;
27
- readonly minimumDenomination: number;
28
- constructor(options: OfcConstructorOptions);
29
- protected requiredFeatures(): Set<CoinFeature>;
30
- protected disallowedFeatures(): Set<CoinFeature>;
31
- }
32
- //# sourceMappingURL=ofcCoin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ofcCoin.d.ts","sourceRoot":"","sources":["../../src/ofcCoin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,QAAQ,CAAC;CAC3B;AAED,eAAO,MAAM,mBAAmB,eAQ/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,eAA+D,CAAC;AAE9F;;GAEG;AACH,qBAAa,OAAQ,SAAQ,QAAQ;IACnC,gBAAuB,gBAAgB,gBAQrC;IAGF,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAgB,mBAAmB,EAAE,MAAM,CAAC;gBAChC,OAAO,EAAE,qBAAqB;IAO1C,SAAS,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;IAI9C,SAAS,CAAC,kBAAkB,IAAI,GAAG,CAAC,WAAW,CAAC;CAGjD"}
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OfcCoin = exports.REQUIRED_FEATURES = exports.DISALLOWED_FEATURES = void 0;
4
- const base_1 = require("./base");
5
- exports.DISALLOWED_FEATURES = [
6
- base_1.CoinFeature.UNSPENT_MODEL,
7
- base_1.CoinFeature.CHILD_PAYS_FOR_PARENT,
8
- base_1.CoinFeature.PAYGO,
9
- base_1.CoinFeature.SUPPORTS_TOKENS,
10
- // OFC inherits features from the base asset but the features are not always applicable to OFC
11
- base_1.CoinFeature.SHARED_EVM_SIGNING,
12
- base_1.CoinFeature.EVM_COMPATIBLE_WP,
13
- ];
14
- exports.REQUIRED_FEATURES = [base_1.CoinFeature.ACCOUNT_MODEL, base_1.CoinFeature.REQUIRES_BIG_NUMBER];
15
- /**
16
- * OFC (off chain) coins. These are virtual coins used to represent off chain assets on the BitGo platform.
17
- */
18
- class OfcCoin extends base_1.BaseCoin {
19
- constructor(options) {
20
- const { addressCoin, ...baseOptions } = options;
21
- super(baseOptions);
22
- this.addressCoin = addressCoin;
23
- this.minimumDenomination = Math.pow(10, this.decimalPlaces);
24
- }
25
- requiredFeatures() {
26
- return new Set(exports.REQUIRED_FEATURES);
27
- }
28
- disallowedFeatures() {
29
- return new Set(exports.DISALLOWED_FEATURES);
30
- }
31
- }
32
- exports.OfcCoin = OfcCoin;
33
- OfcCoin.DEFAULT_FEATURES = [
34
- base_1.CoinFeature.ACCOUNT_MODEL,
35
- base_1.CoinFeature.REQUIRES_BIG_NUMBER,
36
- base_1.CoinFeature.CUSTODY,
37
- base_1.CoinFeature.CUSTODY_BITGO_TRUST,
38
- base_1.CoinFeature.CUSTODY_BITGO_MENA_FZE,
39
- base_1.CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE,
40
- base_1.CoinFeature.CUSTODY_BITGO_INDIA,
41
- ];
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZjQ29pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vZmNDb2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUE4RjtBQW9CakYsUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxrQkFBVyxDQUFDLGFBQWE7SUFDekIsa0JBQVcsQ0FBQyxxQkFBcUI7SUFDakMsa0JBQVcsQ0FBQyxLQUFLO0lBQ2pCLGtCQUFXLENBQUMsZUFBZTtJQUMzQiw4RkFBOEY7SUFDOUYsa0JBQVcsQ0FBQyxrQkFBa0I7SUFDOUIsa0JBQVcsQ0FBQyxpQkFBaUI7Q0FDOUIsQ0FBQztBQUVXLFFBQUEsaUJBQWlCLEdBQUcsQ0FBQyxrQkFBVyxDQUFDLGFBQWEsRUFBRSxrQkFBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFFOUY7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSxlQUFRO0lBY25DLFlBQVksT0FBOEI7UUFDeEMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNoRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLE9BQU8sSUFBSSxHQUFHLENBQWMseUJBQWlCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sSUFBSSxHQUFHLENBQWMsMkJBQW1CLENBQUMsQ0FBQztJQUNuRCxDQUFDOztBQTNCSCwwQkE0QkM7QUEzQndCLHdCQUFnQixHQUFHO0lBQ3hDLGtCQUFXLENBQUMsYUFBYTtJQUN6QixrQkFBVyxDQUFDLG1CQUFtQjtJQUMvQixrQkFBVyxDQUFDLE9BQU87SUFDbkIsa0JBQVcsQ0FBQyxtQkFBbUI7SUFDL0Isa0JBQVcsQ0FBQyxzQkFBc0I7SUFDbEMsa0JBQVcsQ0FBQyw4QkFBOEI7SUFDMUMsa0JBQVcsQ0FBQyxtQkFBbUI7Q0FDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luLCBCYXNlVW5pdCwgQ29pbkZlYXR1cmUsIENvaW5LaW5kLCBLZXlDdXJ2ZSwgVW5kZXJseWluZ0Fzc2V0IH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEJhc2VOZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2ZjQ29uc3RydWN0b3JPcHRpb25zIHtcbiAgaWQ6IHN0cmluZztcbiAgZnVsbE5hbWU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBuZXR3b3JrOiBCYXNlTmV0d29yaztcbiAgYXNzZXQ6IFVuZGVybHlpbmdBc3NldDtcbiAgYmFzZVVuaXQ6IEJhc2VVbml0O1xuICBmZWF0dXJlczogQ29pbkZlYXR1cmVbXTtcbiAgZGVjaW1hbFBsYWNlczogbnVtYmVyO1xuICBpc1Rva2VuOiBib29sZWFuO1xuICBraW5kOiBDb2luS2luZDtcbiAgcHJlZml4Pzogc3RyaW5nO1xuICBzdWZmaXg/OiBzdHJpbmc7XG4gIGFkZHJlc3NDb2luPzogc3RyaW5nO1xuICBwcmltYXJ5S2V5Q3VydmU6IEtleUN1cnZlO1xufVxuXG5leHBvcnQgY29uc3QgRElTQUxMT1dFRF9GRUFUVVJFUyA9IFtcbiAgQ29pbkZlYXR1cmUuVU5TUEVOVF9NT0RFTCxcbiAgQ29pbkZlYXR1cmUuQ0hJTERfUEFZU19GT1JfUEFSRU5ULFxuICBDb2luRmVhdHVyZS5QQVlHTyxcbiAgQ29pbkZlYXR1cmUuU1VQUE9SVFNfVE9LRU5TLFxuICAvLyBPRkMgaW5oZXJpdHMgZmVhdHVyZXMgZnJvbSB0aGUgYmFzZSBhc3NldCBidXQgdGhlIGZlYXR1cmVzIGFyZSBub3QgYWx3YXlzIGFwcGxpY2FibGUgdG8gT0ZDXG4gIENvaW5GZWF0dXJlLlNIQVJFRF9FVk1fU0lHTklORyxcbiAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfV1AsXG5dO1xuXG5leHBvcnQgY29uc3QgUkVRVUlSRURfRkVBVFVSRVMgPSBbQ29pbkZlYXR1cmUuQUNDT1VOVF9NT0RFTCwgQ29pbkZlYXR1cmUuUkVRVUlSRVNfQklHX05VTUJFUl07XG5cbi8qKlxuICogT0ZDIChvZmYgY2hhaW4pIGNvaW5zLiBUaGVzZSBhcmUgdmlydHVhbCBjb2lucyB1c2VkIHRvIHJlcHJlc2VudCBvZmYgY2hhaW4gYXNzZXRzIG9uIHRoZSBCaXRHbyBwbGF0Zm9ybS5cbiAqL1xuZXhwb3J0IGNsYXNzIE9mY0NvaW4gZXh0ZW5kcyBCYXNlQ29pbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9GRUFUVVJFUyA9IFtcbiAgICBDb2luRmVhdHVyZS5BQ0NPVU5UX01PREVMLFxuICAgIENvaW5GZWF0dXJlLlJFUVVJUkVTX0JJR19OVU1CRVIsXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWSxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1RSVVNULFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTUVOQV9GWkUsXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19DVVNUT0RZX01FTkFfRlpFLFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fSU5ESUEsXG4gIF07XG5cbiAgLy8gSWYgc2V0LCB0aGlzIGNvaW4gaXMgdGhlIG5hdGl2ZSBhZGRyZXNzIGZvcm1hdCBmb3IgdGhpcyB0b2tlbi5cbiAgcHVibGljIHJlYWRvbmx5IGFkZHJlc3NDb2luPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWluaW11bURlbm9taW5hdGlvbjogbnVtYmVyO1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBPZmNDb25zdHJ1Y3Rvck9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGFkZHJlc3NDb2luLCAuLi5iYXNlT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgICBzdXBlcihiYXNlT3B0aW9ucyk7XG4gICAgdGhpcy5hZGRyZXNzQ29pbiA9IGFkZHJlc3NDb2luO1xuICAgIHRoaXMubWluaW11bURlbm9taW5hdGlvbiA9IE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlcXVpcmVkRmVhdHVyZXMoKTogU2V0PENvaW5GZWF0dXJlPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQ8Q29pbkZlYXR1cmU+KFJFUVVJUkVEX0ZFQVRVUkVTKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNhbGxvd2VkRmVhdHVyZXMoKTogU2V0PENvaW5GZWF0dXJlPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQ8Q29pbkZlYXR1cmU+KERJU0FMTE9XRURfRkVBVFVSRVMpO1xuICB9XG59XG4iXX0=