@bitgo/sdk-core 1.2.0-dev.1 → 1.2.0-rc.0

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 (166) hide show
  1. package/CHANGELOG.md +251 -0
  2. package/dist/src/account-lib/baseCoin/baseTransactionBuilderFactory.d.ts +1 -1
  3. package/dist/src/account-lib/baseCoin/baseTransactionBuilderFactory.js +1 -1
  4. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts +2 -2
  5. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts.map +1 -1
  6. package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +1 -1
  7. package/dist/src/account-lib/baseCoin/enum.d.ts +7 -2
  8. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  9. package/dist/src/account-lib/baseCoin/enum.js +13 -6
  10. package/dist/src/account-lib/baseCoin/errors.d.ts +1 -1
  11. package/dist/src/account-lib/baseCoin/errors.js +2 -2
  12. package/dist/src/account-lib/baseCoin/index.d.ts +1 -1
  13. package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -1
  14. package/dist/src/account-lib/baseCoin/index.js +3 -2
  15. package/dist/src/account-lib/index.d.ts +3 -0
  16. package/dist/src/account-lib/index.d.ts.map +1 -1
  17. package/dist/src/account-lib/index.js +19 -1
  18. package/dist/src/account-lib/mpc/curves/secp256k1.js +7 -7
  19. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +47 -1
  20. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
  21. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +226 -15
  22. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +110 -0
  23. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
  24. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +1 -1
  25. package/dist/src/account-lib/mpc/util.d.ts +7 -0
  26. package/dist/src/account-lib/mpc/util.d.ts.map +1 -1
  27. package/dist/src/account-lib/mpc/util.js +12 -2
  28. package/dist/src/account-lib/staking/index.d.ts +2 -0
  29. package/dist/src/account-lib/staking/index.d.ts.map +1 -0
  30. package/dist/src/account-lib/staking/index.js +14 -0
  31. package/dist/src/account-lib/staking/utils.d.ts +19 -0
  32. package/dist/src/account-lib/staking/utils.d.ts.map +1 -0
  33. package/dist/src/account-lib/staking/utils.js +98 -0
  34. package/dist/src/account-lib/util/crypto.d.ts +7 -0
  35. package/dist/src/account-lib/util/crypto.d.ts.map +1 -1
  36. package/dist/src/account-lib/util/crypto.js +20 -2
  37. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +6 -1
  38. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  39. package/dist/src/bitgo/baseCoin/baseCoin.js +9 -1
  40. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +62 -0
  41. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  42. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  43. package/dist/src/bitgo/coinFactory.d.ts +4 -0
  44. package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
  45. package/dist/src/bitgo/coinFactory.js +1 -1
  46. package/dist/src/bitgo/config.d.ts +85 -0
  47. package/dist/src/bitgo/config.d.ts.map +1 -1
  48. package/dist/src/bitgo/config.js +49 -2
  49. package/dist/src/bitgo/index.d.ts +1 -0
  50. package/dist/src/bitgo/index.d.ts.map +1 -1
  51. package/dist/src/bitgo/index.js +2 -1
  52. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +2 -1
  53. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
  54. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +2 -1
  55. package/dist/src/bitgo/staking/iStakingWallet.d.ts +69 -0
  56. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -0
  57. package/dist/src/bitgo/staking/iStakingWallet.js +3 -0
  58. package/dist/src/bitgo/staking/index.d.ts +3 -0
  59. package/dist/src/bitgo/staking/index.d.ts.map +1 -0
  60. package/dist/src/bitgo/staking/index.js +15 -0
  61. package/dist/src/bitgo/staking/stakingWallet.d.ts +67 -0
  62. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -0
  63. package/dist/src/bitgo/staking/stakingWallet.js +153 -0
  64. package/dist/src/bitgo/tss/common.d.ts +23 -0
  65. package/dist/src/bitgo/tss/common.d.ts.map +1 -0
  66. package/dist/src/bitgo/tss/common.js +42 -0
  67. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +155 -24
  68. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  69. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +380 -28
  70. package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -1
  71. package/dist/src/bitgo/tss/ecdsa/index.js +1 -1
  72. package/dist/src/bitgo/tss/ecdsa/types.d.ts +22 -2
  73. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  74. package/dist/src/bitgo/tss/ecdsa/types.js +8 -1
  75. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +3 -20
  76. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  77. package/dist/src/bitgo/tss/eddsa/eddsa.js +9 -44
  78. package/dist/src/bitgo/tss/index.d.ts +2 -0
  79. package/dist/src/bitgo/tss/index.d.ts.map +1 -1
  80. package/dist/src/bitgo/tss/index.js +4 -2
  81. package/dist/src/bitgo/utils/mpcUtils.d.ts +10 -0
  82. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  83. package/dist/src/bitgo/utils/mpcUtils.js +39 -1
  84. package/dist/src/bitgo/utils/opengpgUtils.d.ts +8 -0
  85. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  86. package/dist/src/bitgo/utils/opengpgUtils.js +78 -2
  87. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +71 -0
  88. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -0
  89. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +129 -0
  90. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +116 -0
  91. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -0
  92. package/dist/src/bitgo/utils/tss/baseTypes.js +10 -0
  93. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +36 -0
  94. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -0
  95. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +206 -0
  96. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +3 -0
  97. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -0
  98. package/dist/src/bitgo/utils/tss/ecdsa/index.js +15 -0
  99. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +5 -0
  100. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -0
  101. package/dist/src/bitgo/utils/tss/ecdsa/types.js +3 -0
  102. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +9 -50
  103. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  104. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +16 -99
  105. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +6 -3
  106. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -1
  107. package/dist/src/bitgo/utils/tss/eddsa/index.js +7 -6
  108. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +11 -71
  109. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
  110. package/dist/src/bitgo/utils/tss/eddsa/types.js +4 -7
  111. package/dist/src/bitgo/utils/tss/index.d.ts +12 -3
  112. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
  113. package/dist/src/bitgo/utils/tss/index.js +10 -5
  114. package/dist/src/bitgo/wallet/iWallet.d.ts +9 -1
  115. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  116. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  117. package/dist/src/bitgo/wallet/iWallets.d.ts +24 -6
  118. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  119. package/dist/src/bitgo/wallet/iWallets.js +1 -1
  120. package/dist/src/bitgo/wallet/wallet.d.ts +7 -1
  121. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  122. package/dist/src/bitgo/wallet/wallet.js +33 -16
  123. package/dist/src/bitgo/wallet/wallets.d.ts +1 -1
  124. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  125. package/dist/src/bitgo/wallet/wallets.js +8 -38
  126. package/dist/src/coins/fiateur.d.ts +31 -0
  127. package/dist/src/coins/fiateur.d.ts.map +1 -0
  128. package/dist/src/coins/fiateur.js +57 -0
  129. package/dist/src/coins/fiatgbp.d.ts +31 -0
  130. package/dist/src/coins/fiatgbp.d.ts.map +1 -0
  131. package/dist/src/coins/fiatgbp.js +57 -0
  132. package/dist/src/coins/fiatusd.d.ts +31 -0
  133. package/dist/src/coins/fiatusd.d.ts.map +1 -0
  134. package/dist/src/coins/fiatusd.js +57 -0
  135. package/dist/src/coins/index.d.ts +11 -0
  136. package/dist/src/coins/index.d.ts.map +1 -0
  137. package/dist/src/coins/index.js +23 -0
  138. package/dist/src/coins/ofc.d.ts +36 -0
  139. package/dist/src/coins/ofc.d.ts.map +1 -0
  140. package/dist/src/coins/ofc.js +102 -0
  141. package/dist/src/coins/ofcToken.d.ts +47 -0
  142. package/dist/src/coins/ofcToken.d.ts.map +1 -0
  143. package/dist/src/coins/ofcToken.js +84 -0
  144. package/dist/src/coins/susd.d.ts +31 -0
  145. package/dist/src/coins/susd.d.ts.map +1 -0
  146. package/dist/src/coins/susd.js +57 -0
  147. package/dist/src/coins/tfiateur.d.ts +11 -0
  148. package/dist/src/coins/tfiateur.d.ts.map +1 -0
  149. package/dist/src/coins/tfiateur.js +17 -0
  150. package/dist/src/coins/tfiatgbp.d.ts +11 -0
  151. package/dist/src/coins/tfiatgbp.d.ts.map +1 -0
  152. package/dist/src/coins/tfiatgbp.js +17 -0
  153. package/dist/src/coins/tfiatusd.d.ts +11 -0
  154. package/dist/src/coins/tfiatusd.d.ts.map +1 -0
  155. package/dist/src/coins/tfiatusd.js +17 -0
  156. package/dist/src/coins/tsusd.d.ts +11 -0
  157. package/dist/src/coins/tsusd.d.ts.map +1 -0
  158. package/dist/src/coins/tsusd.js +17 -0
  159. package/dist/src/index.d.ts +2 -0
  160. package/dist/src/index.d.ts.map +1 -1
  161. package/dist/src/index.js +4 -2
  162. package/dist/tsconfig.tsbuildinfo +955 -2021
  163. package/package.json +8 -13
  164. package/dist/web/main.js +0 -2
  165. package/dist/web/main.js.LICENSE.txt +0 -47
  166. package/webpack.config.js +0 -24
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FiatUsd = void 0;
4
+ /**
5
+ * @prettier
6
+ */
7
+ const __1 = require("../");
8
+ class FiatUsd extends __1.BaseCoin {
9
+ static createInstance(bitgo) {
10
+ return new FiatUsd(bitgo);
11
+ }
12
+ /**
13
+ * Returns the factor between the base unit and its smallest subdivison
14
+ * @return {number}
15
+ */
16
+ getBaseFactor() {
17
+ return 1e2;
18
+ }
19
+ getChain() {
20
+ return 'fiatusd';
21
+ }
22
+ getFamily() {
23
+ return 'fiat';
24
+ }
25
+ getFullName() {
26
+ return 'USD Dollar';
27
+ }
28
+ /**
29
+ * Return whether the given m of n wallet signers/ key amounts are valid for the coin
30
+ */
31
+ isValidMofNSetup({ m, n }) {
32
+ return m === 0 && n === 0;
33
+ }
34
+ isValidAddress(address) {
35
+ throw new __1.MethodNotImplementedError();
36
+ }
37
+ generateKeyPair(seed) {
38
+ throw new __1.MethodNotImplementedError();
39
+ }
40
+ isValidPub(pub) {
41
+ throw new __1.MethodNotImplementedError();
42
+ }
43
+ async parseTransaction(params) {
44
+ return {};
45
+ }
46
+ isWalletAddress(params) {
47
+ throw new __1.MethodNotImplementedError();
48
+ }
49
+ async verifyTransaction(params) {
50
+ return true;
51
+ }
52
+ async signTransaction(params = {}) {
53
+ throw new __1.MethodNotImplementedError();
54
+ }
55
+ }
56
+ exports.FiatUsd = FiatUsd;
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlhdHVzZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2lucy9maWF0dXNkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsMkJBV2E7QUFFYixNQUFhLE9BQVEsU0FBUSxZQUFRO0lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUE0QjtRQUNqRCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQWU7UUFDNUIsTUFBTSxJQUFJLDZCQUF5QixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFhO1FBQzNCLE1BQU0sSUFBSSw2QkFBeUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixNQUFNLElBQUksNkJBQXlCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQStCO1FBQ3BELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUE0QjtRQUMxQyxNQUFNLElBQUksNkJBQXlCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQWdDO1FBQ3RELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBaUMsRUFBRTtRQUN2RCxNQUFNLElBQUksNkJBQXlCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUEzREQsMEJBMkRDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHtcbiAgQmFzZUNvaW4sXG4gIEJpdEdvQmFzZSxcbiAgS2V5UGFpcixcbiAgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcixcbiAgUGFyc2VkVHJhbnNhY3Rpb24sXG4gIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zLFxuICBTaWduZWRUcmFuc2FjdGlvbixcbiAgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgVmVyaWZ5QWRkcmVzc09wdGlvbnMsXG4gIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyxcbn0gZnJvbSAnLi4vJztcblxuZXhwb3J0IGNsYXNzIEZpYXRVc2QgZXh0ZW5kcyBCYXNlQ29pbiB7XG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlKTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgRmlhdFVzZChiaXRnbyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmFjdG9yIGJldHdlZW4gdGhlIGJhc2UgdW5pdCBhbmQgaXRzIHNtYWxsZXN0IHN1YmRpdmlzb25cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0QmFzZUZhY3RvcigpIHtcbiAgICByZXR1cm4gMWUyO1xuICB9XG5cbiAgZ2V0Q2hhaW4oKSB7XG4gICAgcmV0dXJuICdmaWF0dXNkJztcbiAgfVxuXG4gIGdldEZhbWlseSgpIHtcbiAgICByZXR1cm4gJ2ZpYXQnO1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKSB7XG4gICAgcmV0dXJuICdVU0QgRG9sbGFyJztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gbSBvZiBuIHdhbGxldCBzaWduZXJzLyBrZXkgYW1vdW50cyBhcmUgdmFsaWQgZm9yIHRoZSBjb2luXG4gICAqL1xuICBpc1ZhbGlkTW9mTlNldHVwKHsgbSwgbiB9OiB7IG06IG51bWJlcjsgbjogbnVtYmVyIH0pIHtcbiAgICByZXR1cm4gbSA9PT0gMCAmJiBuID09PSAwO1xuICB9XG5cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxuXG4gIGdlbmVyYXRlS2V5UGFpcihzZWVkPzogQnVmZmVyKTogS2V5UGFpciB7XG4gICAgdGhyb3cgbmV3IE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxuXG4gIGlzVmFsaWRQdWIocHViOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG5cbiAgYXN5bmMgcGFyc2VUcmFuc2FjdGlvbihwYXJhbXM6IFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbj4ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGlzV2FsbGV0QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeVRyYW5zYWN0aW9uKHBhcmFtczogVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBzaWduVHJhbnNhY3Rpb24ocGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zID0ge30pOiBQcm9taXNlPFNpZ25lZFRyYW5zYWN0aW9uPiB7XG4gICAgdGhyb3cgbmV3IE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,11 @@
1
+ export * from './fiateur';
2
+ export * from './tfiateur';
3
+ export * from './fiatgbp';
4
+ export * from './tfiatgbp';
5
+ export * from './fiatusd';
6
+ export * from './tfiatusd';
7
+ export * from './ofc';
8
+ export * from './ofcToken';
9
+ export * from './susd';
10
+ export * from './tsusd';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/coins/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./fiateur"), exports);
14
+ __exportStar(require("./tfiateur"), exports);
15
+ __exportStar(require("./fiatgbp"), exports);
16
+ __exportStar(require("./tfiatgbp"), exports);
17
+ __exportStar(require("./fiatusd"), exports);
18
+ __exportStar(require("./tfiatusd"), exports);
19
+ __exportStar(require("./ofc"), exports);
20
+ __exportStar(require("./ofcToken"), exports);
21
+ __exportStar(require("./susd"), exports);
22
+ __exportStar(require("./tsusd"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29pbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCO0FBQzFCLDZDQUEyQjtBQUMzQiw0Q0FBMEI7QUFDMUIsNkNBQTJCO0FBQzNCLDRDQUEwQjtBQUMxQiw2Q0FBMkI7QUFDM0Isd0NBQXNCO0FBQ3RCLDZDQUEyQjtBQUMzQix5Q0FBdUI7QUFDdkIsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maWF0ZXVyJztcbmV4cG9ydCAqIGZyb20gJy4vdGZpYXRldXInO1xuZXhwb3J0ICogZnJvbSAnLi9maWF0Z2JwJztcbmV4cG9ydCAqIGZyb20gJy4vdGZpYXRnYnAnO1xuZXhwb3J0ICogZnJvbSAnLi9maWF0dXNkJztcbmV4cG9ydCAqIGZyb20gJy4vdGZpYXR1c2QnO1xuZXhwb3J0ICogZnJvbSAnLi9vZmMnO1xuZXhwb3J0ICogZnJvbSAnLi9vZmNUb2tlbic7XG5leHBvcnQgKiBmcm9tICcuL3N1c2QnO1xuZXhwb3J0ICogZnJvbSAnLi90c3VzZCc7XG4iXX0=
@@ -0,0 +1,36 @@
1
+ /// <reference types="node" />
2
+ import { BaseCoin, BitGoBase, KeyPair, ParsedTransaction, ParseTransactionOptions, SignedTransaction, SignTransactionOptions, VerifyAddressOptions, VerifyTransactionOptions } from '../';
3
+ export declare class Ofc extends BaseCoin {
4
+ static createInstance(bitgo: BitGoBase): BaseCoin;
5
+ getChain(): string;
6
+ /**
7
+ * Generate secp256k1 key pair
8
+ *
9
+ * @param seed
10
+ * @returns {Object} object with generated pub and prv
11
+ */
12
+ generateKeyPair(seed?: Buffer): KeyPair;
13
+ getFamily(): string;
14
+ getFullName(): string;
15
+ /**
16
+ * Return whether the given m of n wallet signers/ key amounts are valid for the coin
17
+ */
18
+ isValidMofNSetup({ m, n }: {
19
+ m: number;
20
+ n: number;
21
+ }): boolean;
22
+ /**
23
+ * Return boolean indicating whether input is valid public key for the coin.
24
+ *
25
+ * @param {String} pub the pub to be checked
26
+ * @returns {Boolean} is it valid?
27
+ */
28
+ isValidPub(pub: string): boolean;
29
+ isValidAddress(address: string): boolean;
30
+ getBaseFactor(): number | string;
31
+ parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
32
+ isWalletAddress(params: VerifyAddressOptions): boolean;
33
+ verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
34
+ signTransaction(params: SignTransactionOptions): Promise<SignedTransaction>;
35
+ }
36
+ //# sourceMappingURL=ofc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ofc.d.ts","sourceRoot":"","sources":["../../../src/coins/ofc.ts"],"names":[],"mappings":";AAKA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EAEP,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,KAAK,CAAC;AAEb,qBAAa,GAAI,SAAQ,QAAQ;IAC/B,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;IAIjD,QAAQ;IAIR;;;;;OAKG;IACH,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAevC,SAAS;IAIT,WAAW;IAIX;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IAInD;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQhC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,aAAa,IAAI,MAAM,GAAG,MAAM;IAI1B,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInF,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO;IAIhD,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrE,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAGlF"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.Ofc = void 0;
23
+ /**
24
+ * @prettier
25
+ */
26
+ const crypto_1 = require("crypto");
27
+ const bip32 = __importStar(require("bip32"));
28
+ const __1 = require("../");
29
+ class Ofc extends __1.BaseCoin {
30
+ static createInstance(bitgo) {
31
+ return new Ofc(bitgo);
32
+ }
33
+ getChain() {
34
+ return 'ofc';
35
+ }
36
+ /**
37
+ * Generate secp256k1 key pair
38
+ *
39
+ * @param seed
40
+ * @returns {Object} object with generated pub and prv
41
+ */
42
+ generateKeyPair(seed) {
43
+ if (!seed) {
44
+ // An extended private key has both a normal 256 bit private key and a 256
45
+ // bit chain code, both of which must be random. 512 bits is therefore the
46
+ // maximum entropy and gives us maximum security against cracking.
47
+ seed = crypto_1.randomBytes(512 / 8);
48
+ }
49
+ const extendedKey = bip32.fromSeed(seed);
50
+ const xpub = extendedKey.neutered().toBase58();
51
+ return {
52
+ pub: xpub,
53
+ prv: extendedKey.toBase58(),
54
+ };
55
+ }
56
+ getFamily() {
57
+ return 'ofc';
58
+ }
59
+ getFullName() {
60
+ return 'Offchain';
61
+ }
62
+ /**
63
+ * Return whether the given m of n wallet signers/ key amounts are valid for the coin
64
+ */
65
+ isValidMofNSetup({ m, n }) {
66
+ return m === 1 && n === 1;
67
+ }
68
+ /**
69
+ * Return boolean indicating whether input is valid public key for the coin.
70
+ *
71
+ * @param {String} pub the pub to be checked
72
+ * @returns {Boolean} is it valid?
73
+ */
74
+ isValidPub(pub) {
75
+ try {
76
+ return bip32.fromBase58(pub).isNeutered();
77
+ }
78
+ catch (e) {
79
+ return false;
80
+ }
81
+ }
82
+ isValidAddress(address) {
83
+ throw new __1.MethodNotImplementedError();
84
+ }
85
+ getBaseFactor() {
86
+ return 0;
87
+ }
88
+ async parseTransaction(params) {
89
+ return {};
90
+ }
91
+ isWalletAddress(params) {
92
+ throw new __1.MethodNotImplementedError();
93
+ }
94
+ async verifyTransaction(params) {
95
+ return true;
96
+ }
97
+ async signTransaction(params) {
98
+ throw new __1.MethodNotImplementedError();
99
+ }
100
+ }
101
+ exports.Ofc = Ofc;
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvaW5zL29mYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxtQ0FBcUM7QUFDckMsNkNBQStCO0FBQy9CLDJCQVdhO0FBRWIsTUFBYSxHQUFJLFNBQVEsWUFBUTtJQUMvQixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCO1FBQ3BDLE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxJQUFhO1FBQzNCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCwwRUFBMEU7WUFDMUUsMEVBQTBFO1lBQzFFLGtFQUFrRTtZQUNsRSxJQUFJLEdBQUcsb0JBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDN0I7UUFDRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQyxPQUFPO1lBQ0wsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRTtTQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUE0QjtRQUNqRCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJO1lBQ0YsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzNDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFlO1FBQzVCLE1BQU0sSUFBSSw2QkFBeUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQStCO1FBQ3BELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUE0QjtRQUMxQyxNQUFNLElBQUksNkJBQXlCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQWdDO1FBQ3RELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBOEI7UUFDbEQsTUFBTSxJQUFJLDZCQUF5QixFQUFFLENBQUM7SUFDeEMsQ0FBQztDQUNGO0FBbEZELGtCQWtGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCAqIGFzIGJpcDMyIGZyb20gJ2JpcDMyJztcbmltcG9ydCB7XG4gIEJhc2VDb2luLFxuICBCaXRHb0Jhc2UsXG4gIEtleVBhaXIsXG4gIE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IsXG4gIFBhcnNlZFRyYW5zYWN0aW9uLFxuICBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG4gIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFZlcmlmeUFkZHJlc3NPcHRpb25zLFxuICBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMsXG59IGZyb20gJy4uLyc7XG5cbmV4cG9ydCBjbGFzcyBPZmMgZXh0ZW5kcyBCYXNlQ29pbiB7XG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlKTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgT2ZjKGJpdGdvKTtcbiAgfVxuXG4gIGdldENoYWluKCkge1xuICAgIHJldHVybiAnb2ZjJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBzZWNwMjU2azEga2V5IHBhaXJcbiAgICpcbiAgICogQHBhcmFtIHNlZWRcbiAgICogQHJldHVybnMge09iamVjdH0gb2JqZWN0IHdpdGggZ2VuZXJhdGVkIHB1YiBhbmQgcHJ2XG4gICAqL1xuICBnZW5lcmF0ZUtleVBhaXIoc2VlZD86IEJ1ZmZlcik6IEtleVBhaXIge1xuICAgIGlmICghc2VlZCkge1xuICAgICAgLy8gQW4gZXh0ZW5kZWQgcHJpdmF0ZSBrZXkgaGFzIGJvdGggYSBub3JtYWwgMjU2IGJpdCBwcml2YXRlIGtleSBhbmQgYSAyNTZcbiAgICAgIC8vIGJpdCBjaGFpbiBjb2RlLCBib3RoIG9mIHdoaWNoIG11c3QgYmUgcmFuZG9tLiA1MTIgYml0cyBpcyB0aGVyZWZvcmUgdGhlXG4gICAgICAvLyBtYXhpbXVtIGVudHJvcHkgYW5kIGdpdmVzIHVzIG1heGltdW0gc2VjdXJpdHkgYWdhaW5zdCBjcmFja2luZy5cbiAgICAgIHNlZWQgPSByYW5kb21CeXRlcyg1MTIgLyA4KTtcbiAgICB9XG4gICAgY29uc3QgZXh0ZW5kZWRLZXkgPSBiaXAzMi5mcm9tU2VlZChzZWVkKTtcbiAgICBjb25zdCB4cHViID0gZXh0ZW5kZWRLZXkubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xuICAgIHJldHVybiB7XG4gICAgICBwdWI6IHhwdWIsXG4gICAgICBwcnY6IGV4dGVuZGVkS2V5LnRvQmFzZTU4KCksXG4gICAgfTtcbiAgfVxuXG4gIGdldEZhbWlseSgpIHtcbiAgICByZXR1cm4gJ29mYyc7XG4gIH1cblxuICBnZXRGdWxsTmFtZSgpIHtcbiAgICByZXR1cm4gJ09mZmNoYWluJztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gbSBvZiBuIHdhbGxldCBzaWduZXJzLyBrZXkgYW1vdW50cyBhcmUgdmFsaWQgZm9yIHRoZSBjb2luXG4gICAqL1xuICBpc1ZhbGlkTW9mTlNldHVwKHsgbSwgbiB9OiB7IG06IG51bWJlcjsgbjogbnVtYmVyIH0pIHtcbiAgICByZXR1cm4gbSA9PT0gMSAmJiBuID09PSAxO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBpbnB1dCBpcyB2YWxpZCBwdWJsaWMga2V5IGZvciB0aGUgY29pbi5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHB1YiB0aGUgcHViIHRvIGJlIGNoZWNrZWRcbiAgICogQHJldHVybnMge0Jvb2xlYW59IGlzIGl0IHZhbGlkP1xuICAgKi9cbiAgaXNWYWxpZFB1YihwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYmlwMzIuZnJvbUJhc2U1OChwdWIpLmlzTmV1dGVyZWQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxuXG4gIGdldEJhc2VGYWN0b3IoKTogbnVtYmVyIHwgc3RyaW5nIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGFzeW5jIHBhcnNlVHJhbnNhY3Rpb24ocGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBpc1dhbGxldEFkZHJlc3MocGFyYW1zOiBWZXJpZnlBZGRyZXNzT3B0aW9ucyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICBhc3luYyB2ZXJpZnlUcmFuc2FjdGlvbihwYXJhbXM6IFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgc2lnblRyYW5zYWN0aW9uKHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8U2lnbmVkVHJhbnNhY3Rpb24+IHtcbiAgICB0aHJvdyBuZXcgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { OfcTokenConfig } from '@bitgo/statics';
5
+ import { BitGoBase, CoinConstructor, SignTransactionOptions as BaseSignTransactionOptions, SignedTransaction } from '../';
6
+ import { Ofc } from './ofc';
7
+ export interface SignTransactionOptions extends BaseSignTransactionOptions {
8
+ txPrebuild: {
9
+ payload: string;
10
+ };
11
+ prv: string;
12
+ }
13
+ export { OfcTokenConfig };
14
+ export declare class OfcToken extends Ofc {
15
+ readonly tokenConfig: OfcTokenConfig;
16
+ constructor(bitgo: BitGoBase, tokenConfig: OfcTokenConfig);
17
+ get coin(): string;
18
+ get decimalPlaces(): number;
19
+ get name(): string;
20
+ get backingCoin(): string;
21
+ get isFiat(): boolean;
22
+ getChain(): string;
23
+ getFullName(): string;
24
+ getBaseFactor(): string;
25
+ get type(): string;
26
+ /**
27
+ * Flag for sending value of 0
28
+ * @returns {boolean} True if okay to send 0 value, false otherwise
29
+ */
30
+ valuelessTransferAllowed(): boolean;
31
+ static createTokenConstructor(config: OfcTokenConfig): CoinConstructor;
32
+ /**
33
+ * Assemble keychain and half-sign prebuilt transaction
34
+ * @param params
35
+ * @returns {Promise<SignedTransaction>}
36
+ */
37
+ signTransaction(params: SignTransactionOptions): Promise<SignedTransaction>;
38
+ /**
39
+ * Check if an address is valid for this ofc token.
40
+ *
41
+ * These addresses are either bg-<publicid>, where public id is the internal address to send to,
42
+ * or are an address which is valid on the backing coin of this ofc token.
43
+ * @param address address to check for validity
44
+ */
45
+ isValidAddress(address?: string): boolean;
46
+ }
47
+ //# sourceMappingURL=ofcToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ofcToken.d.ts","sourceRoot":"","sources":["../../../src/coins/ofcToken.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,SAAS,EACT,eAAe,EACf,sBAAsB,IAAI,0BAA0B,EACpD,iBAAiB,EAClB,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAG1B,qBAAa,QAAS,SAAQ,GAAG;IAC/B,SAAgB,WAAW,EAAE,cAAc,CAAC;gBAEhC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc;IAKzD,IAAI,IAAI,WAEP;IAED,IAAI,aAAa,WAEhB;IAED,IAAI,IAAI,WAEP;IAED,IAAI,WAAW,WAEd;IAED,IAAI,MAAM,YAET;IAED,QAAQ;IAIR,WAAW;IAIX,aAAa;IAIb,IAAW,IAAI,WAEd;IAED;;;OAGG;IACH,wBAAwB;IAIxB,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe;IAItE;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQjF;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;CAa1C"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OfcToken = void 0;
4
+ const lodash_1 = require("lodash");
5
+ const ofc_1 = require("./ofc");
6
+ const publicIdRegex = /^[a-f\d]{32}$/i;
7
+ class OfcToken extends ofc_1.Ofc {
8
+ constructor(bitgo, tokenConfig) {
9
+ super(bitgo);
10
+ this.tokenConfig = tokenConfig;
11
+ }
12
+ get coin() {
13
+ return this.tokenConfig.coin;
14
+ }
15
+ get decimalPlaces() {
16
+ return this.tokenConfig.decimalPlaces;
17
+ }
18
+ get name() {
19
+ return this.tokenConfig.name;
20
+ }
21
+ get backingCoin() {
22
+ return this.tokenConfig.backingCoin;
23
+ }
24
+ get isFiat() {
25
+ return this.tokenConfig.isFiat;
26
+ }
27
+ getChain() {
28
+ return this.type;
29
+ }
30
+ getFullName() {
31
+ return this.name;
32
+ }
33
+ getBaseFactor() {
34
+ return String(Math.pow(10, this.decimalPlaces));
35
+ }
36
+ get type() {
37
+ return this.tokenConfig.type;
38
+ }
39
+ /**
40
+ * Flag for sending value of 0
41
+ * @returns {boolean} True if okay to send 0 value, false otherwise
42
+ */
43
+ valuelessTransferAllowed() {
44
+ return false;
45
+ }
46
+ static createTokenConstructor(config) {
47
+ return (bitgo) => new OfcToken(bitgo, config);
48
+ }
49
+ /**
50
+ * Assemble keychain and half-sign prebuilt transaction
51
+ * @param params
52
+ * @returns {Promise<SignedTransaction>}
53
+ */
54
+ async signTransaction(params) {
55
+ const txPrebuild = params.txPrebuild;
56
+ const payload = txPrebuild.payload;
57
+ const signatureBuffer = (await this.signMessage(params, payload));
58
+ const signature = signatureBuffer.toString('hex');
59
+ return { halfSigned: { payload, signature } };
60
+ }
61
+ /**
62
+ * Check if an address is valid for this ofc token.
63
+ *
64
+ * These addresses are either bg-<publicid>, where public id is the internal address to send to,
65
+ * or are an address which is valid on the backing coin of this ofc token.
66
+ * @param address address to check for validity
67
+ */
68
+ isValidAddress(address) {
69
+ if (!lodash_1.isString(address)) {
70
+ return false;
71
+ }
72
+ if (address.startsWith('bg-')) {
73
+ const parts = address.split('-');
74
+ const accountId = parts[1];
75
+ return parts.length === 2 && publicIdRegex.test(accountId);
76
+ }
77
+ else {
78
+ const backingCoin = this.bitgo.coin(this.backingCoin);
79
+ return backingCoin.isValidAddress(address);
80
+ }
81
+ }
82
+ }
83
+ exports.OfcToken = OfcToken;
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZjVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29pbnMvb2ZjVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsbUNBQWtDO0FBT2xDLCtCQUE0QjtBQVc1QixNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQztBQUN2QyxNQUFhLFFBQVMsU0FBUSxTQUFHO0lBRy9CLFlBQVksS0FBZ0IsRUFBRSxXQUEyQjtRQUN2RCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0I7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQXNCO1FBQ2xELE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQThCO1FBQ2xELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDckMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUNuQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQVEsQ0FBQztRQUN6RSxNQUFNLFNBQVMsR0FBVyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQVMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsY0FBYyxDQUFDLE9BQWdCO1FBQzdCLElBQUksQ0FBQyxpQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsT0FBTyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDTCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdEQsT0FBTyxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztDQUNGO0FBekZELDRCQXlGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IE9mY1Rva2VuQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtcbiAgQml0R29CYXNlLFxuICBDb2luQ29uc3RydWN0b3IsXG4gIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMgYXMgQmFzZVNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFNpZ25lZFRyYW5zYWN0aW9uLFxufSBmcm9tICcuLi8nO1xuaW1wb3J0IHsgT2ZjIH0gZnJvbSAnLi9vZmMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMgZXh0ZW5kcyBCYXNlU2lnblRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIHR4UHJlYnVpbGQ6IHtcbiAgICBwYXlsb2FkOiBzdHJpbmc7XG4gIH07XG4gIHBydjogc3RyaW5nO1xufVxuXG5leHBvcnQgeyBPZmNUb2tlbkNvbmZpZyB9O1xuXG5jb25zdCBwdWJsaWNJZFJlZ2V4ID0gL15bYS1mXFxkXXszMn0kL2k7XG5leHBvcnQgY2xhc3MgT2ZjVG9rZW4gZXh0ZW5kcyBPZmMge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IE9mY1Rva2VuQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHRva2VuQ29uZmlnOiBPZmNUb2tlbkNvbmZpZykge1xuICAgIHN1cGVyKGJpdGdvKTtcbiAgICB0aGlzLnRva2VuQ29uZmlnID0gdG9rZW5Db25maWc7XG4gIH1cblxuICBnZXQgY29pbigpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5jb2luO1xuICB9XG5cbiAgZ2V0IGRlY2ltYWxQbGFjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuZGVjaW1hbFBsYWNlcztcbiAgfVxuXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5hbWU7XG4gIH1cblxuICBnZXQgYmFja2luZ0NvaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuYmFja2luZ0NvaW47XG4gIH1cblxuICBnZXQgaXNGaWF0KCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmlzRmlhdDtcbiAgfVxuXG4gIGdldENoYWluKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRGdWxsTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0QmFzZUZhY3RvcigpIHtcbiAgICByZXR1cm4gU3RyaW5nKE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxQbGFjZXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgZm9yIHNlbmRpbmcgdmFsdWUgb2YgMFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBva2F5IHRvIHNlbmQgMCB2YWx1ZSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICB2YWx1ZWxlc3NUcmFuc2ZlckFsbG93ZWQoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVRva2VuQ29uc3RydWN0b3IoY29uZmlnOiBPZmNUb2tlbkNvbmZpZyk6IENvaW5Db25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIChiaXRnbzogQml0R29CYXNlKSA9PiBuZXcgT2ZjVG9rZW4oYml0Z28sIGNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogQXNzZW1ibGUga2V5Y2hhaW4gYW5kIGhhbGYtc2lnbiBwcmVidWlsdCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFNpZ25lZFRyYW5zYWN0aW9uPn1cbiAgICovXG4gIGFzeW5jIHNpZ25UcmFuc2FjdGlvbihwYXJhbXM6IFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFNpZ25lZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgdHhQcmVidWlsZCA9IHBhcmFtcy50eFByZWJ1aWxkO1xuICAgIGNvbnN0IHBheWxvYWQgPSB0eFByZWJ1aWxkLnBheWxvYWQ7XG4gICAgY29uc3Qgc2lnbmF0dXJlQnVmZmVyID0gKGF3YWl0IHRoaXMuc2lnbk1lc3NhZ2UocGFyYW1zLCBwYXlsb2FkKSkgYXMgYW55O1xuICAgIGNvbnN0IHNpZ25hdHVyZTogc3RyaW5nID0gc2lnbmF0dXJlQnVmZmVyLnRvU3RyaW5nKCdoZXgnKTtcbiAgICByZXR1cm4geyBoYWxmU2lnbmVkOiB7IHBheWxvYWQsIHNpZ25hdHVyZSB9IH0gYXMgYW55O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGFkZHJlc3MgaXMgdmFsaWQgZm9yIHRoaXMgb2ZjIHRva2VuLlxuICAgKlxuICAgKiBUaGVzZSBhZGRyZXNzZXMgYXJlIGVpdGhlciBiZy08cHVibGljaWQ+LCB3aGVyZSBwdWJsaWMgaWQgaXMgdGhlIGludGVybmFsIGFkZHJlc3MgdG8gc2VuZCB0byxcbiAgICogb3IgYXJlIGFuIGFkZHJlc3Mgd2hpY2ggaXMgdmFsaWQgb24gdGhlIGJhY2tpbmcgY29pbiBvZiB0aGlzIG9mYyB0b2tlbi5cbiAgICogQHBhcmFtIGFkZHJlc3MgYWRkcmVzcyB0byBjaGVjayBmb3IgdmFsaWRpdHlcbiAgICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIWlzU3RyaW5nKGFkZHJlc3MpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhZGRyZXNzLnN0YXJ0c1dpdGgoJ2JnLScpKSB7XG4gICAgICBjb25zdCBwYXJ0cyA9IGFkZHJlc3Muc3BsaXQoJy0nKTtcbiAgICAgIGNvbnN0IGFjY291bnRJZCA9IHBhcnRzWzFdO1xuICAgICAgcmV0dXJuIHBhcnRzLmxlbmd0aCA9PT0gMiAmJiBwdWJsaWNJZFJlZ2V4LnRlc3QoYWNjb3VudElkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYmFja2luZ0NvaW4gPSB0aGlzLmJpdGdvLmNvaW4odGhpcy5iYWNraW5nQ29pbik7XG4gICAgICByZXR1cm4gYmFja2luZ0NvaW4uaXNWYWxpZEFkZHJlc3MoYWRkcmVzcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,31 @@
1
+ /// <reference types="node" />
2
+ /**
3
+ * @prettier
4
+ */
5
+ import { BaseCoin, BitGoBase, KeyPair, ParsedTransaction, ParseTransactionOptions, SignedTransaction, SignTransactionOptions, VerifyAddressOptions, VerifyTransactionOptions } from '../';
6
+ export declare class Susd extends BaseCoin {
7
+ static createInstance(bitgo: BitGoBase): BaseCoin;
8
+ /**
9
+ * Returns the factor between the base unit and its smallest subdivison
10
+ * @return {number}
11
+ */
12
+ getBaseFactor(): number;
13
+ getChain(): string;
14
+ getFamily(): string;
15
+ getFullName(): string;
16
+ /**
17
+ * Return whether the given m of n wallet signers/ key amounts are valid for the coin
18
+ */
19
+ isValidMofNSetup({ m, n }: {
20
+ m: number;
21
+ n: number;
22
+ }): boolean;
23
+ isValidAddress(address: string): boolean;
24
+ generateKeyPair(seed?: Buffer): KeyPair;
25
+ isValidPub(pub: string): boolean;
26
+ parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
27
+ isWalletAddress(params: VerifyAddressOptions): boolean;
28
+ verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
29
+ signTransaction(params?: SignTransactionOptions): Promise<SignedTransaction>;
30
+ }
31
+ //# sourceMappingURL=susd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"susd.d.ts","sourceRoot":"","sources":["../../../src/coins/susd.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EAEP,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,KAAK,CAAC;AAEb,qBAAa,IAAK,SAAQ,QAAQ;IAChC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;IAIjD;;;OAGG;IACH,aAAa,IAAI,MAAM;IAIvB,QAAQ,IAAI,MAAM;IAIlB,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAI7D,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAIvC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI1B,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInF,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO;IAIhD,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrE,eAAe,CAAC,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAGvF"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Susd = void 0;
4
+ /**
5
+ * @prettier
6
+ */
7
+ const __1 = require("../");
8
+ class Susd extends __1.BaseCoin {
9
+ static createInstance(bitgo) {
10
+ return new Susd(bitgo);
11
+ }
12
+ /**
13
+ * Returns the factor between the base unit and its smallest subdivison
14
+ * @return {number}
15
+ */
16
+ getBaseFactor() {
17
+ return 1e2;
18
+ }
19
+ getChain() {
20
+ return 'susd';
21
+ }
22
+ getFamily() {
23
+ return 'susd';
24
+ }
25
+ getFullName() {
26
+ return 'Silvergate USD';
27
+ }
28
+ /**
29
+ * Return whether the given m of n wallet signers/ key amounts are valid for the coin
30
+ */
31
+ isValidMofNSetup({ m, n }) {
32
+ return m === 0 && n === 0;
33
+ }
34
+ isValidAddress(address) {
35
+ throw new __1.MethodNotImplementedError();
36
+ }
37
+ generateKeyPair(seed) {
38
+ throw new __1.MethodNotImplementedError();
39
+ }
40
+ isValidPub(pub) {
41
+ throw new __1.MethodNotImplementedError();
42
+ }
43
+ async parseTransaction(params) {
44
+ return {};
45
+ }
46
+ isWalletAddress(params) {
47
+ throw new __1.MethodNotImplementedError();
48
+ }
49
+ async verifyTransaction(params) {
50
+ return true;
51
+ }
52
+ async signTransaction(params = {}) {
53
+ throw new __1.MethodNotImplementedError();
54
+ }
55
+ }
56
+ exports.Susd = Susd;
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VzZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2lucy9zdXNkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsMkJBV2E7QUFFYixNQUFhLElBQUssU0FBUSxZQUFRO0lBQ2hDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQTRCO1FBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBZTtRQUM1QixNQUFNLElBQUksNkJBQXlCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQWE7UUFDM0IsTUFBTSxJQUFJLDZCQUF5QixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE1BQU0sSUFBSSw2QkFBeUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBK0I7UUFDcEQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQTRCO1FBQzFDLE1BQU0sSUFBSSw2QkFBeUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBZ0M7UUFDdEQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFpQyxFQUFFO1FBQ3ZELE1BQU0sSUFBSSw2QkFBeUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQTNERCxvQkEyREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQge1xuICBCYXNlQ29pbixcbiAgQml0R29CYXNlLFxuICBLZXlQYWlyLFxuICBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yLFxuICBQYXJzZWRUcmFuc2FjdGlvbixcbiAgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFNpZ25lZFRyYW5zYWN0aW9uLFxuICBTaWduVHJhbnNhY3Rpb25PcHRpb25zLFxuICBWZXJpZnlBZGRyZXNzT3B0aW9ucyxcbiAgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zLFxufSBmcm9tICcuLi8nO1xuXG5leHBvcnQgY2xhc3MgU3VzZCBleHRlbmRzIEJhc2VDb2luIHtcbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UpOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBTdXNkKGJpdGdvKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBmYWN0b3IgYmV0d2VlbiB0aGUgYmFzZSB1bml0IGFuZCBpdHMgc21hbGxlc3Qgc3ViZGl2aXNvblxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDFlMjtcbiAgfVxuXG4gIGdldENoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdzdXNkJztcbiAgfVxuXG4gIGdldEZhbWlseSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnc3VzZCc7XG4gIH1cblxuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnU2lsdmVyZ2F0ZSBVU0QnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBtIG9mIG4gd2FsbGV0IHNpZ25lcnMvIGtleSBhbW91bnRzIGFyZSB2YWxpZCBmb3IgdGhlIGNvaW5cbiAgICovXG4gIGlzVmFsaWRNb2ZOU2V0dXAoeyBtLCBuIH06IHsgbTogbnVtYmVyOyBuOiBudW1iZXIgfSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBtID09PSAwICYmIG4gPT09IDA7XG4gIH1cblxuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG5cbiAgZ2VuZXJhdGVLZXlQYWlyKHNlZWQ/OiBCdWZmZXIpOiBLZXlQYWlyIHtcbiAgICB0aHJvdyBuZXcgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG5cbiAgaXNWYWxpZFB1YihwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICBhc3luYyBwYXJzZVRyYW5zYWN0aW9uKHBhcmFtczogUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFBhcnNlZFRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgaXNXYWxsZXRBZGRyZXNzKHBhcmFtczogVmVyaWZ5QWRkcmVzc09wdGlvbnMpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIHNpZ25UcmFuc2FjdGlvbihwYXJhbXM6IFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMgPSB7fSk6IFByb21pc2U8U2lnbmVkVHJhbnNhY3Rpb24+IHtcbiAgICB0aHJvdyBuZXcgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { BaseCoin, BitGoBase } from '../';
5
+ import { FiatEur } from './fiateur';
6
+ export declare class TfiatEur extends FiatEur {
7
+ static createInstance(bitgo: BitGoBase): BaseCoin;
8
+ getChain(): string;
9
+ getFullName(): string;
10
+ }
11
+ //# sourceMappingURL=tfiateur.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tfiateur.d.ts","sourceRoot":"","sources":["../../../src/coins/tfiateur.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,QAAS,SAAQ,OAAO;IACnC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;IAIjD,QAAQ;IAIR,WAAW;CAGZ"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TfiatEur = void 0;
4
+ const fiateur_1 = require("./fiateur");
5
+ class TfiatEur extends fiateur_1.FiatEur {
6
+ static createInstance(bitgo) {
7
+ return new TfiatEur(bitgo);
8
+ }
9
+ getChain() {
10
+ return 'tfiateur';
11
+ }
12
+ getFullName() {
13
+ return 'Testnet European Union Euro';
14
+ }
15
+ }
16
+ exports.TfiatEur = TfiatEur;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZpYXRldXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29pbnMvdGZpYXRldXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsdUNBQW9DO0FBRXBDLE1BQWEsUUFBUyxTQUFRLGlCQUFPO0lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyw2QkFBNkIsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFaRCw0QkFZQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IEJhc2VDb2luLCBCaXRHb0Jhc2UgfSBmcm9tICcuLi8nO1xuaW1wb3J0IHsgRmlhdEV1ciB9IGZyb20gJy4vZmlhdGV1cic7XG5cbmV4cG9ydCBjbGFzcyBUZmlhdEV1ciBleHRlbmRzIEZpYXRFdXIge1xuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSk6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFRmaWF0RXVyKGJpdGdvKTtcbiAgfVxuXG4gIGdldENoYWluKCkge1xuICAgIHJldHVybiAndGZpYXRldXInO1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKSB7XG4gICAgcmV0dXJuICdUZXN0bmV0IEV1cm9wZWFuIFVuaW9uIEV1cm8nO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { BaseCoin, BitGoBase } from '../';
5
+ import { FiatGBP } from './fiatgbp';
6
+ export declare class TfiatGBP extends FiatGBP {
7
+ static createInstance(bitgo: BitGoBase): BaseCoin;
8
+ getChain(): string;
9
+ getFullName(): string;
10
+ }
11
+ //# sourceMappingURL=tfiatgbp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tfiatgbp.d.ts","sourceRoot":"","sources":["../../../src/coins/tfiatgbp.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,QAAS,SAAQ,OAAO;IACnC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;IAIjD,QAAQ;IAIR,WAAW;CAGZ"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TfiatGBP = void 0;
4
+ const fiatgbp_1 = require("./fiatgbp");
5
+ class TfiatGBP extends fiatgbp_1.FiatGBP {
6
+ static createInstance(bitgo) {
7
+ return new TfiatGBP(bitgo);
8
+ }
9
+ getChain() {
10
+ return 'tfiatgbp';
11
+ }
12
+ getFullName() {
13
+ return 'Testnet British Pound Sterling';
14
+ }
15
+ }
16
+ exports.TfiatGBP = TfiatGBP;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZpYXRnYnAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29pbnMvdGZpYXRnYnAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsdUNBQW9DO0FBRXBDLE1BQWEsUUFBUyxTQUFRLGlCQUFPO0lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxnQ0FBZ0MsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFaRCw0QkFZQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IEJhc2VDb2luLCBCaXRHb0Jhc2UgfSBmcm9tICcuLi8nO1xuaW1wb3J0IHsgRmlhdEdCUCB9IGZyb20gJy4vZmlhdGdicCc7XG5cbmV4cG9ydCBjbGFzcyBUZmlhdEdCUCBleHRlbmRzIEZpYXRHQlAge1xuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSk6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFRmaWF0R0JQKGJpdGdvKTtcbiAgfVxuXG4gIGdldENoYWluKCkge1xuICAgIHJldHVybiAndGZpYXRnYnAnO1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKSB7XG4gICAgcmV0dXJuICdUZXN0bmV0IEJyaXRpc2ggUG91bmQgU3RlcmxpbmcnO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { BaseCoin, BitGoBase } from '../';
5
+ import { FiatUsd } from './fiatusd';
6
+ export declare class TfiatUsd extends FiatUsd {
7
+ static createInstance(bitgo: BitGoBase): BaseCoin;
8
+ getChain(): string;
9
+ getFullName(): string;
10
+ }
11
+ //# sourceMappingURL=tfiatusd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tfiatusd.d.ts","sourceRoot":"","sources":["../../../src/coins/tfiatusd.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,QAAS,SAAQ,OAAO;IACnC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;IAIjD,QAAQ;IAIR,WAAW;CAGZ"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TfiatUsd = void 0;
4
+ const fiatusd_1 = require("./fiatusd");
5
+ class TfiatUsd extends fiatusd_1.FiatUsd {
6
+ static createInstance(bitgo) {
7
+ return new TfiatUsd(bitgo);
8
+ }
9
+ getChain() {
10
+ return 'tfiatusd';
11
+ }
12
+ getFullName() {
13
+ return 'Testnet US Dollar';
14
+ }
15
+ }
16
+ exports.TfiatUsd = TfiatUsd;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZpYXR1c2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29pbnMvdGZpYXR1c2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsdUNBQW9DO0FBRXBDLE1BQWEsUUFBUyxTQUFRLGlCQUFPO0lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFaRCw0QkFZQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IEJhc2VDb2luLCBCaXRHb0Jhc2UgfSBmcm9tICcuLi8nO1xuaW1wb3J0IHsgRmlhdFVzZCB9IGZyb20gJy4vZmlhdHVzZCc7XG5cbmV4cG9ydCBjbGFzcyBUZmlhdFVzZCBleHRlbmRzIEZpYXRVc2Qge1xuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSk6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFRmaWF0VXNkKGJpdGdvKTtcbiAgfVxuXG4gIGdldENoYWluKCkge1xuICAgIHJldHVybiAndGZpYXR1c2QnO1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKSB7XG4gICAgcmV0dXJuICdUZXN0bmV0IFVTIERvbGxhcic7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { BaseCoin, BitGoBase } from '../';
5
+ import { Susd } from './susd';
6
+ export declare class Tsusd extends Susd {
7
+ static createInstance(bitgo: BitGoBase): BaseCoin;
8
+ getChain(): string;
9
+ getFullName(): string;
10
+ }
11
+ //# sourceMappingURL=tsusd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsusd.d.ts","sourceRoot":"","sources":["../../../src/coins/tsusd.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,KAAM,SAAQ,IAAI;IAC7B,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;IAIjD,QAAQ;IAIR,WAAW;CAGZ"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tsusd = void 0;
4
+ const susd_1 = require("./susd");
5
+ class Tsusd extends susd_1.Susd {
6
+ static createInstance(bitgo) {
7
+ return new Tsusd(bitgo);
8
+ }
9
+ getChain() {
10
+ return 'tsusd';
11
+ }
12
+ getFullName() {
13
+ return 'Test Silvergate USD';
14
+ }
15
+ }
16
+ exports.Tsusd = Tsusd;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHN1c2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29pbnMvdHN1c2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsaUNBQThCO0FBRTlCLE1BQWEsS0FBTSxTQUFRLFdBQUk7SUFDN0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQjtRQUNwQyxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQVpELHNCQVlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgQmFzZUNvaW4sIEJpdEdvQmFzZSB9IGZyb20gJy4uLyc7XG5pbXBvcnQgeyBTdXNkIH0gZnJvbSAnLi9zdXNkJztcblxuZXhwb3J0IGNsYXNzIFRzdXNkIGV4dGVuZHMgU3VzZCB7XG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlKTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgVHN1c2QoYml0Z28pO1xuICB9XG5cbiAgZ2V0Q2hhaW4oKSB7XG4gICAgcmV0dXJuICd0c3VzZCc7XG4gIH1cblxuICBnZXRGdWxsTmFtZSgpIHtcbiAgICByZXR1cm4gJ1Rlc3QgU2lsdmVyZ2F0ZSBVU0QnO1xuICB9XG59XG4iXX0=