@bitgo-beta/sdk-coin-iota 1.0.1-beta.8 → 1.0.1-beta.80

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/CHANGELOG.md CHANGED
@@ -0,0 +1,28 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ # [1.2.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.1.2...@bitgo/sdk-coin-iota@1.2.0) (2025-09-03)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **sdk-coin-iota:** fix iota packages from merge conflict ([d98153b](https://github.com/BitGo/BitGoJS/commit/d98153bbcaacbfdaa3faf86c78ea2b97349f6ffa))
11
+
12
+ ### Features
13
+
14
+ - **sdk-coin-iota:** implement key creation and validation ([ad13e3c](https://github.com/BitGo/BitGoJS/commit/ad13e3c4e37546390b81aeeafb4d062d9a3ef137))
15
+
16
+ ## [1.1.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.1.1...@bitgo/sdk-coin-iota@1.1.2) (2025-08-30)
17
+
18
+ **Note:** Version bump only for package @bitgo/sdk-coin-iota
19
+
20
+ ## [1.1.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-iota@1.1.0...@bitgo/sdk-coin-iota@1.1.1) (2025-08-29)
21
+
22
+ **Note:** Version bump only for package @bitgo/sdk-coin-iota
23
+
24
+ # 1.1.0 (2025-08-27)
25
+
26
+ ### Features
27
+
28
+ - **sdk-coin-iota:** adding sdk skeleton for iota ([1e09c17](https://github.com/BitGo/BitGoJS/commit/1e09c177d19c5a9cc0f1e20fbeb5da1a6a6580de))
@@ -1,4 +1,4 @@
1
- import { AuditDecryptedKeyParams, BaseCoin, BitGoBase, KeyPair as KeyPairInterface, ParseTransactionOptions, ParsedTransaction, SignTransactionOptions, SignedTransaction, VerifyAddressOptions, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
1
+ import { AuditDecryptedKeyParams, BaseCoin, BitGoBase, KeyPair, ParseTransactionOptions, ParsedTransaction, SignTransactionOptions, SignedTransaction, VerifyTransactionOptions, MultisigType, MPCAlgorithm, TssVerifyAddressOptions } from '@bitgo-beta/sdk-core';
2
2
  import { BaseCoin as StaticsBaseCoin, CoinFamily } from '@bitgo-beta/statics';
3
3
  export declare class Iota extends BaseCoin {
4
4
  protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
@@ -8,6 +8,11 @@ export declare class Iota extends BaseCoin {
8
8
  getChain(): string;
9
9
  getFamily(): CoinFamily;
10
10
  getFullName(): string;
11
+ /** @inheritDoc */
12
+ supportsTss(): boolean;
13
+ /** inherited doc */
14
+ getDefaultMultisigType(): MultisigType;
15
+ getMPCAlgorithm(): MPCAlgorithm;
11
16
  /**
12
17
  * Check if an address is valid
13
18
  * @param address the address to be validated
@@ -23,7 +28,7 @@ export declare class Iota extends BaseCoin {
23
28
  * Check if an address belongs to a wallet
24
29
  * @param params
25
30
  */
26
- isWalletAddress(params: VerifyAddressOptions): Promise<boolean>;
31
+ isWalletAddress(params: TssVerifyAddressOptions): Promise<boolean>;
27
32
  /**
28
33
  * Parse a transaction
29
34
  * @param params
@@ -33,7 +38,7 @@ export declare class Iota extends BaseCoin {
33
38
  * Generate a key pair
34
39
  * @param seed Optional seed to generate key pair from
35
40
  */
36
- generateKeyPair(seed?: Uint8Array): KeyPairInterface;
41
+ generateKeyPair(seed?: Buffer): KeyPair;
37
42
  /**
38
43
  * Check if a public key is valid
39
44
  * @param pub Public key to check
@@ -48,6 +53,6 @@ export declare class Iota extends BaseCoin {
48
53
  * Audit a decrypted private key to ensure it's valid
49
54
  * @param params
50
55
  */
51
- auditDecryptedKey(params: AuditDecryptedKeyParams): void;
56
+ auditDecryptedKey({ multiSigType, prv, publicKey }: AuditDecryptedKeyParams): void;
52
57
  }
53
58
  //# sourceMappingURL=iota.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iota.d.ts","sourceRoot":"","sources":["../../src/iota.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,SAAS,EACT,OAAO,IAAI,gBAAgB,EAC3B,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG9E,qBAAa,IAAK,SAAQ,QAAQ;IAChC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAE3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,aAAa,IAAI,MAAM,GAAG,MAAM;IAIhC,QAAQ;IAIR,SAAS,IAAI,UAAU;IAIvB,WAAW;IAIX;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKxC;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrE;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKnF;;;OAGG;IACH,eAAe,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,gBAAgB;IASpD;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKhC;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IASjF;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;CAGzD"}
1
+ {"version":3,"file":"iota.d.ts","sourceRoot":"","sources":["../../src/iota.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EAEZ,YAAY,EAGZ,uBAAuB,EAExB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAK9E,qBAAa,IAAK,SAAQ,QAAQ;IAChC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAE3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,aAAa,IAAI,MAAM,GAAG,MAAM;IAIhC,QAAQ;IAIR,SAAS,IAAI,UAAU;IAIvB,WAAW;IAIX,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,oBAAoB;IACpB,sBAAsB,IAAI,YAAY;IAItC,eAAe,IAAI,YAAY;IAI/B;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKxC;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BxE;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKnF;;;OAGG;IACH,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAYvC;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIjF;;;OAGG;IACH,iBAAiB,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,uBAAuB,GAAG,IAAI;CAMnF"}
package/dist/src/iota.js CHANGED
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Iota = void 0;
7
7
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
8
  const utils_1 = __importDefault(require("./lib/utils"));
9
+ const lib_1 = require("./lib");
10
+ const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
9
11
  class Iota extends sdk_core_1.BaseCoin {
10
12
  constructor(bitgo, staticsCoin) {
11
13
  super(bitgo);
@@ -29,6 +31,17 @@ class Iota extends sdk_core_1.BaseCoin {
29
31
  getFullName() {
30
32
  return this._staticsCoin.fullName;
31
33
  }
34
+ /** @inheritDoc */
35
+ supportsTss() {
36
+ return true;
37
+ }
38
+ /** inherited doc */
39
+ getDefaultMultisigType() {
40
+ return sdk_core_1.multisigTypes.tss;
41
+ }
42
+ getMPCAlgorithm() {
43
+ return sdk_core_1.MPCType.EDDSA;
44
+ }
32
45
  /**
33
46
  * Check if an address is valid
34
47
  * @param address the address to be validated
@@ -51,7 +64,24 @@ class Iota extends sdk_core_1.BaseCoin {
51
64
  * @param params
52
65
  */
53
66
  async isWalletAddress(params) {
54
- return this.isValidAddress(params.address);
67
+ const { keychains, address, index } = params;
68
+ if (!this.isValidAddress(address)) {
69
+ throw new sdk_core_1.InvalidAddressError(`invalid address: ${address}`);
70
+ }
71
+ if (!keychains) {
72
+ throw new Error('missing required param keychains');
73
+ }
74
+ for (const keychain of keychains) {
75
+ const MPC = await sdk_core_1.EDDSAMethods.getInitializedMpcInstance();
76
+ const commonKeychain = keychain.commonKeychain;
77
+ const derivationPath = 'm/' + index;
78
+ const derivedPublicKey = MPC.deriveUnhardened(commonKeychain, derivationPath).slice(0, 64);
79
+ const expectedAddress = utils_1.default.getAddressFromPublicKey(derivedPublicKey);
80
+ if (address !== expectedAddress) {
81
+ return false;
82
+ }
83
+ }
84
+ return true;
55
85
  }
56
86
  /**
57
87
  * Parse a transaction
@@ -66,11 +96,14 @@ class Iota extends sdk_core_1.BaseCoin {
66
96
  * @param seed Optional seed to generate key pair from
67
97
  */
68
98
  generateKeyPair(seed) {
69
- // For now we're just returning an empty implementation as the KeyPair class needs to be implemented
70
- // In a real implementation, we would use the KeyPair class properly
99
+ const keyPair = seed ? new lib_1.KeyPair({ seed }) : new lib_1.KeyPair();
100
+ const keys = keyPair.getKeys();
101
+ if (!keys.prv) {
102
+ throw new Error('Missing prv in key generation.');
103
+ }
71
104
  return {
72
- pub: '',
73
- prv: '',
105
+ pub: keys.pub,
106
+ prv: keys.prv,
74
107
  };
75
108
  }
76
109
  /**
@@ -78,28 +111,25 @@ class Iota extends sdk_core_1.BaseCoin {
78
111
  * @param pub Public key to check
79
112
  */
80
113
  isValidPub(pub) {
81
- // TODO: Implement proper IOTA public key validation
82
- return pub.length > 0;
114
+ return utils_1.default.isValidPublicKey(pub);
83
115
  }
84
116
  /**
85
117
  * Sign a transaction
86
118
  * @param params
87
119
  */
88
120
  async signTransaction(params) {
89
- // TODO: Add IOTA-specific transaction signing logic
90
- return {
91
- halfSigned: {
92
- txHex: '',
93
- },
94
- };
121
+ throw new Error('Method not implemented.');
95
122
  }
96
123
  /**
97
124
  * Audit a decrypted private key to ensure it's valid
98
125
  * @param params
99
126
  */
100
- auditDecryptedKey(params) {
101
- // TODO: Implement IOTA-specific key validation logic
127
+ auditDecryptedKey({ multiSigType, prv, publicKey }) {
128
+ if (multiSigType !== sdk_core_1.multisigTypes.tss) {
129
+ throw new Error('Unsupported multiSigType');
130
+ }
131
+ (0, sdk_lib_mpc_1.auditEddsaPrivateKey)(prv, publicKey ?? '');
102
132
  }
103
133
  }
104
134
  exports.Iota = Iota;
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW90YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pb3RhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQVc4QjtBQUU5Qix3REFBZ0M7QUFFaEMsTUFBYSxJQUFLLFNBQVEsbUJBQVE7SUFHaEMsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQixFQUFFLFdBQXVDO1FBQzdFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDbEMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLE9BQWU7UUFDNUIsOENBQThDO1FBQzlDLE9BQU8sZUFBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQWdDO1FBQ3RELHlEQUF5RDtRQUN6RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQTRCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUErQjtRQUNwRCxvREFBb0Q7UUFDcEQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLElBQWlCO1FBQy9CLG9HQUFvRztRQUNwRyxvRUFBb0U7UUFDcEUsT0FBTztZQUNMLEdBQUcsRUFBRSxFQUFFO1lBQ1AsR0FBRyxFQUFFLEVBQUU7U0FDUixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLG9EQUFvRDtRQUNwRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQThCO1FBQ2xELG9EQUFvRDtRQUNwRCxPQUFPO1lBQ0wsVUFBVSxFQUFFO2dCQUNWLEtBQUssRUFBRSxFQUFFO2FBQ1Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLE1BQStCO1FBQy9DLHFEQUFxRDtJQUN2RCxDQUFDO0NBQ0Y7QUEvR0Qsb0JBK0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXVkaXREZWNyeXB0ZWRLZXlQYXJhbXMsXG4gIEJhc2VDb2luLFxuICBCaXRHb0Jhc2UsXG4gIEtleVBhaXIgYXMgS2V5UGFpckludGVyZmFjZSxcbiAgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFBhcnNlZFRyYW5zYWN0aW9uLFxuICBTaWduVHJhbnNhY3Rpb25PcHRpb25zLFxuICBTaWduZWRUcmFuc2FjdGlvbixcbiAgVmVyaWZ5QWRkcmVzc09wdGlvbnMsXG4gIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgU3RhdGljc0Jhc2VDb2luLCBDb2luRmFtaWx5IH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi9saWIvdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgSW90YSBleHRlbmRzIEJhc2VDb2luIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zdGF0aWNzQ29pbjogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoYml0Z28pO1xuXG4gICAgaWYgKCFzdGF0aWNzQ29pbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIGNvbnN0cnVjdG9yIHBhcmFtZXRlciBzdGF0aWNzQ29pbicpO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRpY3NDb2luID0gc3RhdGljc0NvaW47XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgSW90YShiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgZ2V0QmFzZUZhY3RvcigpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLnBvdygxMCwgdGhpcy5fc3RhdGljc0NvaW4uZGVjaW1hbFBsYWNlcyk7XG4gIH1cblxuICBnZXRDaGFpbigpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4ubmFtZTtcbiAgfVxuXG4gIGdldEZhbWlseSgpOiBDb2luRmFtaWx5IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4uZmFtaWx5O1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLmZ1bGxOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGFkZHJlc3MgaXMgdmFsaWRcbiAgICogQHBhcmFtIGFkZHJlc3MgdGhlIGFkZHJlc3MgdG8gYmUgdmFsaWRhdGVkXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGFkZHJlc3MgaXMgdmFsaWRcbiAgICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIC8vIElPVEEgYWRkcmVzc2VzIGFyZSA2NC1jaGFyYWN0ZXIgaGV4IHN0cmluZ3NcbiAgICByZXR1cm4gdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcyk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgdGhhdCBhIHRyYW5zYWN0aW9uIHByZWJ1aWxkIGNvbXBsaWVzIHdpdGggdGhlIG9yaWdpbmFsIGludGVudGlvblxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBhc3luYyB2ZXJpZnlUcmFuc2FjdGlvbihwYXJhbXM6IFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIFRPRE86IEFkZCBJT1RBLXNwZWNpZmljIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBsb2dpY1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGFkZHJlc3MgYmVsb25ncyB0byBhIHdhbGxldFxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBhc3luYyBpc1dhbGxldEFkZHJlc3MocGFyYW1zOiBWZXJpZnlBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRBZGRyZXNzKHBhcmFtcy5hZGRyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIHBhcnNlVHJhbnNhY3Rpb24ocGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb24+IHtcbiAgICAvLyBUT0RPOiBBZGQgSU9UQS1zcGVjaWZpYyB0cmFuc2FjdGlvbiBwYXJzaW5nIGxvZ2ljXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEga2V5IHBhaXJcbiAgICogQHBhcmFtIHNlZWQgT3B0aW9uYWwgc2VlZCB0byBnZW5lcmF0ZSBrZXkgcGFpciBmcm9tXG4gICAqL1xuICBnZW5lcmF0ZUtleVBhaXIoc2VlZD86IFVpbnQ4QXJyYXkpOiBLZXlQYWlySW50ZXJmYWNlIHtcbiAgICAvLyBGb3Igbm93IHdlJ3JlIGp1c3QgcmV0dXJuaW5nIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uIGFzIHRoZSBLZXlQYWlyIGNsYXNzIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkXG4gICAgLy8gSW4gYSByZWFsIGltcGxlbWVudGF0aW9uLCB3ZSB3b3VsZCB1c2UgdGhlIEtleVBhaXIgY2xhc3MgcHJvcGVybHlcbiAgICByZXR1cm4ge1xuICAgICAgcHViOiAnJyxcbiAgICAgIHBydjogJycsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHB1YmxpYyBrZXkgaXMgdmFsaWRcbiAgICogQHBhcmFtIHB1YiBQdWJsaWMga2V5IHRvIGNoZWNrXG4gICAqL1xuICBpc1ZhbGlkUHViKHB1Yjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IHByb3BlciBJT1RBIHB1YmxpYyBrZXkgdmFsaWRhdGlvblxuICAgIHJldHVybiBwdWIubGVuZ3RoID4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGEgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgYXN5bmMgc2lnblRyYW5zYWN0aW9uKHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8U2lnbmVkVHJhbnNhY3Rpb24+IHtcbiAgICAvLyBUT0RPOiBBZGQgSU9UQS1zcGVjaWZpYyB0cmFuc2FjdGlvbiBzaWduaW5nIGxvZ2ljXG4gICAgcmV0dXJuIHtcbiAgICAgIGhhbGZTaWduZWQ6IHtcbiAgICAgICAgdHhIZXg6ICcnLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEF1ZGl0IGEgZGVjcnlwdGVkIHByaXZhdGUga2V5IHRvIGVuc3VyZSBpdCdzIHZhbGlkXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGF1ZGl0RGVjcnlwdGVkS2V5KHBhcmFtczogQXVkaXREZWNyeXB0ZWRLZXlQYXJhbXMpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgSU9UQS1zcGVjaWZpYyBrZXkgdmFsaWRhdGlvbiBsb2dpY1xuICB9XG59XG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW90YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pb3RhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQWlCOEI7QUFFOUIsd0RBQWdDO0FBQ2hDLCtCQUErQztBQUMvQyx5REFBK0Q7QUFFL0QsTUFBYSxJQUFLLFNBQVEsbUJBQVE7SUFHaEMsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQixFQUFFLFdBQXVDO1FBQzdFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDbEMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixzQkFBc0I7UUFDcEIsT0FBTyx3QkFBYSxDQUFDLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8s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QUNELElBQUEsa0NBQW9CLEVBQUMsR0FBRyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0Y7QUFuSkQsb0JBbUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXVkaXREZWNyeXB0ZWRLZXlQYXJhbXMsXG4gIEJhc2VDb2luLFxuICBCaXRHb0Jhc2UsXG4gIEtleVBhaXIsXG4gIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zLFxuICBQYXJzZWRUcmFuc2FjdGlvbixcbiAgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG4gIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgTXVsdGlzaWdUeXBlLFxuICBtdWx0aXNpZ1R5cGVzLFxuICBNUENBbGdvcml0aG0sXG4gIEludmFsaWRBZGRyZXNzRXJyb3IsXG4gIEVERFNBTWV0aG9kcyxcbiAgVHNzVmVyaWZ5QWRkcmVzc09wdGlvbnMsXG4gIE1QQ1R5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiwgQ29pbkZhbWlseSB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vbGliL3V0aWxzJztcbmltcG9ydCB7IEtleVBhaXIgYXMgSW90YUtleVBhaXIgfSBmcm9tICcuL2xpYic7XG5pbXBvcnQgeyBhdWRpdEVkZHNhUHJpdmF0ZUtleSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcblxuZXhwb3J0IGNsYXNzIElvdGEgZXh0ZW5kcyBCYXNlQ29pbiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfc3RhdGljc0NvaW46IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj47XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvKTtcblxuICAgIGlmICghc3RhdGljc0NvaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgc3RhdGljc0NvaW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0aWNzQ29pbiA9IHN0YXRpY3NDb2luO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IElvdGEoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIGdldEJhc2VGYWN0b3IoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5wb3coMTAsIHRoaXMuX3N0YXRpY3NDb2luLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgZ2V0Q2hhaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLm5hbWU7XG4gIH1cblxuICBnZXRGYW1pbHkoKTogQ29pbkZhbWlseSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLmZhbWlseTtcbiAgfVxuXG4gIGdldEZ1bGxOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbi5mdWxsTmFtZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBzdXBwb3J0c1RzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBpbmhlcml0ZWQgZG9jICovXG4gIGdldERlZmF1bHRNdWx0aXNpZ1R5cGUoKTogTXVsdGlzaWdUeXBlIHtcbiAgICByZXR1cm4gbXVsdGlzaWdUeXBlcy50c3M7XG4gIH1cblxuICBnZXRNUENBbGdvcml0aG0oKTogTVBDQWxnb3JpdGhtIHtcbiAgICByZXR1cm4gTVBDVHlwZS5FRERTQTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhZGRyZXNzIGlzIHZhbGlkXG4gICAqIEBwYXJhbSBhZGRyZXNzIHRoZSBhZGRyZXNzIHRvIGJlIHZhbGlkYXRlZFxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBhZGRyZXNzIGlzIHZhbGlkXG4gICAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvLyBJT1RBIGFkZHJlc3NlcyBhcmUgNjQtY2hhcmFjdGVyIGhleCBzdHJpbmdzXG4gICAgcmV0dXJuIHV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoYXQgYSB0cmFuc2FjdGlvbiBwcmVidWlsZCBjb21wbGllcyB3aXRoIHRoZSBvcmlnaW5hbCBpbnRlbnRpb25cbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBUT0RPOiBBZGQgSU9UQS1zcGVjaWZpYyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gbG9naWNcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhZGRyZXNzIGJlbG9uZ3MgdG8gYSB3YWxsZXRcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgYXN5bmMgaXNXYWxsZXRBZGRyZXNzKHBhcmFtczogVHNzVmVyaWZ5QWRkcmVzc09wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGtleWNoYWlucywgYWRkcmVzcywgaW5kZXggfSA9IHBhcmFtcztcblxuICAgIGlmICghdGhpcy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgIH1cblxuICAgIGlmICgha2V5Y2hhaW5zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgcGFyYW0ga2V5Y2hhaW5zJyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBrZXljaGFpbiBvZiBrZXljaGFpbnMpIHtcbiAgICAgIGNvbnN0IE1QQyA9IGF3YWl0IEVERFNBTWV0aG9kcy5nZXRJbml0aWFsaXplZE1wY0luc3RhbmNlKCk7XG4gICAgICBjb25zdCBjb21tb25LZXljaGFpbiA9IGtleWNoYWluLmNvbW1vbktleWNoYWluIGFzIHN0cmluZztcblxuICAgICAgY29uc3QgZGVyaXZhdGlvblBhdGggPSAnbS8nICsgaW5kZXg7XG4gICAgICBjb25zdCBkZXJpdmVkUHVibGljS2V5ID0gTVBDLmRlcml2ZVVuaGFyZGVuZWQoY29tbW9uS2V5Y2hhaW4sIGRlcml2YXRpb25QYXRoKS5zbGljZSgwLCA2NCk7XG4gICAgICBjb25zdCBleHBlY3RlZEFkZHJlc3MgPSB1dGlscy5nZXRBZGRyZXNzRnJvbVB1YmxpY0tleShkZXJpdmVkUHVibGljS2V5KTtcblxuICAgICAgaWYgKGFkZHJlc3MgIT09IGV4cGVjdGVkQWRkcmVzcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGEgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgYXN5bmMgcGFyc2VUcmFuc2FjdGlvbihwYXJhbXM6IFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbj4ge1xuICAgIC8vIFRPRE86IEFkZCBJT1RBLXNwZWNpZmljIHRyYW5zYWN0aW9uIHBhcnNpbmcgbG9naWNcbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYSBrZXkgcGFpclxuICAgKiBAcGFyYW0gc2VlZCBPcHRpb25hbCBzZWVkIHRvIGdlbmVyYXRlIGtleSBwYWlyIGZyb21cbiAgICovXG4gIGdlbmVyYXRlS2V5UGFpcihzZWVkPzogQnVmZmVyKTogS2V5UGFpciB7XG4gICAgY29uc3Qga2V5UGFpciA9IHNlZWQgPyBuZXcgSW90YUtleVBhaXIoeyBzZWVkIH0pIDogbmV3IElvdGFLZXlQYWlyKCk7XG4gICAgY29uc3Qga2V5cyA9IGtleVBhaXIuZ2V0S2V5cygpO1xuICAgIGlmICgha2V5cy5wcnYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBwcnYgaW4ga2V5IGdlbmVyYXRpb24uJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBwdWI6IGtleXMucHViLFxuICAgICAgcHJ2OiBrZXlzLnBydixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgcHVibGljIGtleSBpcyB2YWxpZFxuICAgKiBAcGFyYW0gcHViIFB1YmxpYyBrZXkgdG8gY2hlY2tcbiAgICovXG4gIGlzVmFsaWRQdWIocHViOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdXRpbHMuaXNWYWxpZFB1YmxpY0tleShwdWIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBhc3luYyBzaWduVHJhbnNhY3Rpb24ocGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdWRpdCBhIGRlY3J5cHRlZCBwcml2YXRlIGtleSB0byBlbnN1cmUgaXQncyB2YWxpZFxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBhdWRpdERlY3J5cHRlZEtleSh7IG11bHRpU2lnVHlwZSwgcHJ2LCBwdWJsaWNLZXkgfTogQXVkaXREZWNyeXB0ZWRLZXlQYXJhbXMpOiB2b2lkIHtcbiAgICBpZiAobXVsdGlTaWdUeXBlICE9PSBtdWx0aXNpZ1R5cGVzLnRzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBtdWx0aVNpZ1R5cGUnKTtcbiAgICB9XG4gICAgYXVkaXRFZGRzYVByaXZhdGVLZXkocHJ2LCBwdWJsaWNLZXkgPz8gJycpO1xuICB9XG59XG4iXX0=
@@ -5,6 +5,4 @@ export declare const IOTA_SIGNATURE_LENGTH = 128;
5
5
  export declare const ADDRESS_BYTES_LENGTH = 32;
6
6
  export declare const AMOUNT_BYTES_LENGTH = 8;
7
7
  export declare const SECONDS_PER_WEEK: number;
8
- export declare const IOTA_TRANSFER_FUNCTION = "0x0::coin::transfer";
9
- export declare const IOTA_BATCH_TRANSFER_FUNCTION = "0x1::coin_batch::transfer";
10
8
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AAGjD,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,eAAO,MAAM,4BAA4B,8BAA8B,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,gBAAgB,QAAmB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IOTA_BATCH_TRANSFER_FUNCTION = exports.IOTA_TRANSFER_FUNCTION = exports.SECONDS_PER_WEEK = exports.AMOUNT_BYTES_LENGTH = exports.ADDRESS_BYTES_LENGTH = exports.IOTA_SIGNATURE_LENGTH = exports.IOTA_BLOCK_ID_LENGTH = exports.IOTA_TRANSACTION_ID_LENGTH = exports.IOTA_ADDRESS_LENGTH = void 0;
3
+ exports.SECONDS_PER_WEEK = exports.AMOUNT_BYTES_LENGTH = exports.ADDRESS_BYTES_LENGTH = exports.IOTA_SIGNATURE_LENGTH = exports.IOTA_BLOCK_ID_LENGTH = exports.IOTA_TRANSACTION_ID_LENGTH = exports.IOTA_ADDRESS_LENGTH = void 0;
4
4
  exports.IOTA_ADDRESS_LENGTH = 64;
5
5
  exports.IOTA_TRANSACTION_ID_LENGTH = 64;
6
6
  exports.IOTA_BLOCK_ID_LENGTH = 64;
@@ -8,7 +8,4 @@ exports.IOTA_SIGNATURE_LENGTH = 128;
8
8
  exports.ADDRESS_BYTES_LENGTH = 32;
9
9
  exports.AMOUNT_BYTES_LENGTH = 8;
10
10
  exports.SECONDS_PER_WEEK = 7 * 24 * 60 * 60; // 1 week in seconds
11
- // Define IOTA specific function paths
12
- exports.IOTA_TRANSFER_FUNCTION = '0x0::coin::transfer';
13
- exports.IOTA_BATCH_TRANSFER_FUNCTION = '0x1::coin_batch::transfer';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFDekIsUUFBQSwwQkFBMEIsR0FBRyxFQUFFLENBQUM7QUFDaEMsUUFBQSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDMUIsUUFBQSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFDNUIsUUFBQSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDMUIsUUFBQSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFDeEIsUUFBQSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxvQkFBb0I7QUFFdEUsc0NBQXNDO0FBQ3pCLFFBQUEsc0JBQXNCLEdBQUcscUJBQXFCLENBQUM7QUFDL0MsUUFBQSw0QkFBNEIsR0FBRywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBJT1RBX0FERFJFU1NfTEVOR1RIID0gNjQ7XG5leHBvcnQgY29uc3QgSU9UQV9UUkFOU0FDVElPTl9JRF9MRU5HVEggPSA2NDtcbmV4cG9ydCBjb25zdCBJT1RBX0JMT0NLX0lEX0xFTkdUSCA9IDY0O1xuZXhwb3J0IGNvbnN0IElPVEFfU0lHTkFUVVJFX0xFTkdUSCA9IDEyODtcbmV4cG9ydCBjb25zdCBBRERSRVNTX0JZVEVTX0xFTkdUSCA9IDMyO1xuZXhwb3J0IGNvbnN0IEFNT1VOVF9CWVRFU19MRU5HVEggPSA4O1xuZXhwb3J0IGNvbnN0IFNFQ09ORFNfUEVSX1dFRUsgPSA3ICogMjQgKiA2MCAqIDYwOyAvLyAxIHdlZWsgaW4gc2Vjb25kc1xuXG4vLyBEZWZpbmUgSU9UQSBzcGVjaWZpYyBmdW5jdGlvbiBwYXRoc1xuZXhwb3J0IGNvbnN0IElPVEFfVFJBTlNGRVJfRlVOQ1RJT04gPSAnMHgwOjpjb2luOjp0cmFuc2Zlcic7XG5leHBvcnQgY29uc3QgSU9UQV9CQVRDSF9UUkFOU0ZFUl9GVU5DVElPTiA9ICcweDE6OmNvaW5fYmF0Y2g6OnRyYW5zZmVyJztcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFDekIsUUFBQSwwQkFBMEIsR0FBRyxFQUFFLENBQUM7QUFDaEMsUUFBQSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDMUIsUUFBQSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFDNUIsUUFBQSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDMUIsUUFBQSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFDeEIsUUFBQSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSU9UQV9BRERSRVNTX0xFTkdUSCA9IDY0O1xuZXhwb3J0IGNvbnN0IElPVEFfVFJBTlNBQ1RJT05fSURfTEVOR1RIID0gNjQ7XG5leHBvcnQgY29uc3QgSU9UQV9CTE9DS19JRF9MRU5HVEggPSA2NDtcbmV4cG9ydCBjb25zdCBJT1RBX1NJR05BVFVSRV9MRU5HVEggPSAxMjg7XG5leHBvcnQgY29uc3QgQUREUkVTU19CWVRFU19MRU5HVEggPSAzMjtcbmV4cG9ydCBjb25zdCBBTU9VTlRfQllURVNfTEVOR1RIID0gODtcbmV4cG9ydCBjb25zdCBTRUNPTkRTX1BFUl9XRUVLID0gNyAqIDI0ICogNjAgKiA2MDsgLy8gMSB3ZWVrIGluIHNlY29uZHNcbiJdfQ==
@@ -1,5 +1,11 @@
1
- import { DefaultKeys, Ed25519KeyPair } from '@bitgo-beta/sdk-core';
1
+ import { DefaultKeys, Ed25519KeyPair, KeyPairOptions } from '@bitgo-beta/sdk-core';
2
2
  export declare class KeyPair extends Ed25519KeyPair {
3
+ /**
4
+ * Public constructor. By default, creates a key pair with a random master seed.
5
+ *
6
+ * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
7
+ */
8
+ constructor(source?: KeyPairOptions);
3
9
  /** @inheritdoc */
4
10
  getKeys(): DefaultKeys;
5
11
  /** @inheritdoc */
@@ -1 +1 @@
1
- {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnE,qBAAa,OAAQ,SAAQ,cAAc;IACzC,kBAAkB;IAClB,OAAO,IAAI,WAAW;IAItB,kBAAkB;IAClB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAIlE,kBAAkB;IAClB,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAIjE,kBAAkB;IAClB,UAAU,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGnF,qBAAa,OAAQ,SAAQ,cAAc;IACzC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAInC,kBAAkB;IAClB,OAAO,IAAI,WAAW;IAQtB,kBAAkB;IAClB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAKlE,kBAAkB;IAClB,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAOjE,kBAAkB;IAClB,UAAU,IAAI,MAAM;CAGrB"}
@@ -1,24 +1,44 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.KeyPair = void 0;
4
7
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const utils_1 = __importDefault(require("./utils"));
5
9
  class KeyPair extends sdk_core_1.Ed25519KeyPair {
10
+ /**
11
+ * Public constructor. By default, creates a key pair with a random master seed.
12
+ *
13
+ * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
14
+ */
15
+ constructor(source) {
16
+ super(source);
17
+ }
6
18
  /** @inheritdoc */
7
19
  getKeys() {
8
- throw new Error('Method not implemented.');
20
+ const result = { pub: this.keyPair.pub };
21
+ if (this.keyPair.prv) {
22
+ result.prv = this.keyPair.prv;
23
+ }
24
+ return result;
9
25
  }
10
26
  /** @inheritdoc */
11
27
  recordKeysFromPrivateKeyInProtocolFormat(prv) {
28
+ // We don't use private keys for IOTA since it's implemented for TSS.
12
29
  throw new Error('Method not implemented.');
13
30
  }
14
31
  /** @inheritdoc */
15
32
  recordKeysFromPublicKeyInProtocolFormat(pub) {
16
- throw new Error('Method not implemented.');
33
+ if (!utils_1.default.isValidPublicKey(pub)) {
34
+ throw new Error(`Invalid Public Key ${pub}`);
35
+ }
36
+ return { pub };
17
37
  }
18
38
  /** @inheritdoc */
19
39
  getAddress() {
20
- throw new Error('Method not implemented.');
40
+ return utils_1.default.getAddressFromPublicKey(this.keyPair.pub);
21
41
  }
22
42
  }
23
43
  exports.KeyPair = KeyPair;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBbUU7QUFFbkUsTUFBYSxPQUFRLFNBQVEseUJBQWM7SUFDekMsa0JBQWtCO0lBQ2xCLE9BQU87UUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix3Q0FBd0MsQ0FBQyxHQUFXO1FBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHVDQUF1QyxDQUFDLEdBQVc7UUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsVUFBVTtRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0Y7QUFwQkQsMEJBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVmYXVsdEtleXMsIEVkMjU1MTlLZXlQYWlyIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIEVkMjU1MTlLZXlQYWlyIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEtleXMoKTogRGVmYXVsdEtleXMge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICByZWNvcmRLZXlzRnJvbVByaXZhdGVLZXlJblByb3RvY29sRm9ybWF0KHBydjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICByZWNvcmRLZXlzRnJvbVB1YmxpY0tleUluUHJvdG9jb2xGb3JtYXQocHViOiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbn1cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBbUY7QUFDbkYsb0RBQTRCO0FBRTVCLE1BQWEsT0FBUSxTQUFRLHlCQUFjO0lBQ3pDOzs7O09BSUc7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU87UUFDTCxNQUFNLE1BQU0sR0FBZ0IsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckIsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix3Q0FBd0MsQ0FBQyxHQUFXO1FBQ2xELHFFQUFxRTtRQUNyRSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1Q0FBdUMsQ0FBQyxHQUFXO1FBQ2pELElBQUksQ0FBQyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixVQUFVO1FBQ1IsT0FBTyxlQUFLLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUFyQ0QsMEJBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVmYXVsdEtleXMsIEVkMjU1MTlLZXlQYWlyLCBLZXlQYWlyT3B0aW9ucyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBFZDI1NTE5S2V5UGFpciB7XG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIG1hc3RlciBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0geyBLZXlQYWlyT3B0aW9ucyB9IHNvdXJjZSBFaXRoZXIgYSBtYXN0ZXIgc2VlZCwgYSBwcml2YXRlIGtleSwgb3IgYSBwdWJsaWMga2V5XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIHN1cGVyKHNvdXJjZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0S2V5cygpOiBEZWZhdWx0S2V5cyB7XG4gICAgY29uc3QgcmVzdWx0OiBEZWZhdWx0S2V5cyA9IHsgcHViOiB0aGlzLmtleVBhaXIucHViIH07XG4gICAgaWYgKHRoaXMua2V5UGFpci5wcnYpIHtcbiAgICAgIHJlc3VsdC5wcnYgPSB0aGlzLmtleVBhaXIucHJ2O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHJlY29yZEtleXNGcm9tUHJpdmF0ZUtleUluUHJvdG9jb2xGb3JtYXQocHJ2OiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgLy8gV2UgZG9uJ3QgdXNlIHByaXZhdGUga2V5cyBmb3IgSU9UQSBzaW5jZSBpdCdzIGltcGxlbWVudGVkIGZvciBUU1MuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHJlY29yZEtleXNGcm9tUHVibGljS2V5SW5Qcm90b2NvbEZvcm1hdChwdWI6IHN0cmluZyk6IERlZmF1bHRLZXlzIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRQdWJsaWNLZXkocHViKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFB1YmxpYyBLZXkgJHtwdWJ9YCk7XG4gICAgfVxuICAgIHJldHVybiB7IHB1YiB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkodGhpcy5rZXlQYWlyLnB1Yik7XG4gIH1cbn1cbiJdfQ==
@@ -12,6 +12,8 @@ export declare class Utils implements BaseUtils {
12
12
  isValidSignature(signature: string): boolean;
13
13
  /** @inheritdoc */
14
14
  isValidTransactionId(txId: string): boolean;
15
+ isValidHex(value: string, length: number): boolean;
16
+ getAddressFromPublicKey(publicKey: string): string;
15
17
  }
16
18
  declare const utils: Utils;
17
19
  export default utils;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG5C;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoD,MAAM,sBAAsB,CAAC;AASnG,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAKlD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAInD;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
@@ -1,33 +1,44 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Utils = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const constants_1 = require("./constants");
6
+ const ed25519_1 = require("@iota/iota-sdk/keypairs/ed25519");
4
7
  class Utils {
5
8
  /** @inheritdoc */
6
9
  isValidAddress(address) {
7
- throw new Error('Method not implemented.');
10
+ return this.isValidHex(address, constants_1.IOTA_ADDRESS_LENGTH);
8
11
  }
9
12
  /** @inheritdoc */
10
13
  isValidBlockId(hash) {
11
- throw new Error('Method not implemented.');
14
+ return this.isValidHex(hash, constants_1.IOTA_BLOCK_ID_LENGTH);
12
15
  }
13
16
  /** @inheritdoc */
14
17
  isValidPrivateKey(key) {
15
- throw new Error('Method not implemented.');
18
+ return (0, sdk_core_1.isValidEd25519SecretKey)(key);
16
19
  }
17
20
  /** @inheritdoc */
18
21
  isValidPublicKey(key) {
19
- throw new Error('Method not implemented.');
22
+ return (0, sdk_core_1.isValidEd25519PublicKey)(key);
20
23
  }
21
24
  /** @inheritdoc */
22
25
  isValidSignature(signature) {
23
- throw new Error('Method not implemented.');
26
+ return this.isValidHex(signature, constants_1.IOTA_SIGNATURE_LENGTH);
24
27
  }
25
28
  /** @inheritdoc */
26
29
  isValidTransactionId(txId) {
27
- throw new Error('Method not implemented.');
30
+ return this.isValidHex(txId, constants_1.IOTA_TRANSACTION_ID_LENGTH);
31
+ }
32
+ isValidHex(value, length) {
33
+ const regex = new RegExp(`^(0x|0X)[a-fA-F0-9]{${length}}$`);
34
+ return regex.test(value);
35
+ }
36
+ getAddressFromPublicKey(publicKey) {
37
+ const iotaPublicKey = new ed25519_1.Ed25519PublicKey(Buffer.from(publicKey, 'hex'));
38
+ return iotaPublicKey.toIotaAddress();
28
39
  }
29
40
  }
30
41
  exports.Utils = Utils;
31
42
  const utils = new Utils();
32
43
  exports.default = utils;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQWEsS0FBSztJQUNoQixrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLE9BQWU7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLElBQVk7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCLENBQUMsR0FBVztRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxHQUFXO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG9CQUFvQixDQUFDLElBQVk7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQTlCRCxzQkE4QkM7QUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBRTFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VVdGlscyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFtRztBQUNuRywyQ0FLcUI7QUFDckIsNkRBQW1FO0FBRW5FLE1BQWEsS0FBSztJQUNoQixrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLE9BQWU7UUFDNUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSwrQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLElBQVk7UUFDekIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxnQ0FBb0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCLENBQUMsR0FBVztRQUMzQixPQUFPLElBQUEsa0NBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxHQUFXO1FBQzFCLE9BQU8sSUFBQSxrQ0FBdUIsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsaUNBQXFCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG9CQUFvQixDQUFDLElBQVk7UUFDL0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxzQ0FBMEIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYSxFQUFFLE1BQWM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsdUJBQXVCLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDNUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxTQUFpQjtRQUN2QyxNQUFNLGFBQWEsR0FBRyxJQUFJLDBCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBeENELHNCQXdDQztBQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFFMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVV0aWxzLCBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleSwgaXNWYWxpZEVkMjU1MTlTZWNyZXRLZXkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQge1xuICBJT1RBX0FERFJFU1NfTEVOR1RILFxuICBJT1RBX0JMT0NLX0lEX0xFTkdUSCxcbiAgSU9UQV9TSUdOQVRVUkVfTEVOR1RILFxuICBJT1RBX1RSQU5TQUNUSU9OX0lEX0xFTkdUSCxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRWQyNTUxOVB1YmxpY0tleSB9IGZyb20gJ0Bpb3RhL2lvdGEtc2RrL2tleXBhaXJzL2VkMjU1MTknO1xuXG5leHBvcnQgY2xhc3MgVXRpbHMgaW1wbGVtZW50cyBCYXNlVXRpbHMge1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEhleChhZGRyZXNzLCBJT1RBX0FERFJFU1NfTEVOR1RIKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkSGV4KGhhc2gsIElPVEFfQkxPQ0tfSURfTEVOR1RIKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRWQyNTUxOVNlY3JldEtleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEhleChzaWduYXR1cmUsIElPVEFfU0lHTkFUVVJFX0xFTkdUSCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEhleCh0eElkLCBJT1RBX1RSQU5TQUNUSU9OX0lEX0xFTkdUSCk7XG4gIH1cblxuICBpc1ZhbGlkSGV4KHZhbHVlOiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeKDB4fDBYKVthLWZBLUYwLTldeyR7bGVuZ3RofX0kYCk7XG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QodmFsdWUpO1xuICB9XG5cbiAgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHVibGljS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlvdGFQdWJsaWNLZXkgPSBuZXcgRWQyNTUxOVB1YmxpY0tleShCdWZmZXIuZnJvbShwdWJsaWNLZXksICdoZXgnKSk7XG4gICAgcmV0dXJuIGlvdGFQdWJsaWNLZXkudG9Jb3RhQWRkcmVzcygpO1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/sdk-coin-iota",
3
- "version": "1.0.1-beta.8",
3
+ "version": "1.0.1-beta.80",
4
4
  "description": "BitGo SDK coin library for IOTA coin",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "author": "BitGo SDK Team <sdkteam@bitgo.com>",
19
19
  "license": "MIT",
20
20
  "engines": {
21
- "node": ">=18 <23"
21
+ "node": ">=20 <23"
22
22
  },
23
23
  "repository": {
24
24
  "type": "git",
@@ -40,13 +40,15 @@
40
40
  ]
41
41
  },
42
42
  "dependencies": {
43
- "@bitgo-beta/sdk-core": "8.2.1-beta.1130",
44
- "@bitgo-beta/statics": "15.1.1-beta.1133",
43
+ "@bitgo-beta/sdk-core": "8.2.1-beta.1202",
44
+ "@bitgo-beta/statics": "15.1.1-beta.1205",
45
+ "@iota/iota-sdk": "^1.6.0",
45
46
  "bignumber.js": "^9.1.2"
46
47
  },
47
48
  "devDependencies": {
48
- "@bitgo-beta/sdk-api": "1.10.1-beta.1129",
49
- "@bitgo-beta/sdk-test": "^9.0.5"
49
+ "@bitgo-beta/sdk-api": "1.10.1-beta.1201",
50
+ "@bitgo-beta/sdk-lib-mpc": "8.2.0-beta.1194",
51
+ "@bitgo-beta/sdk-test": "^9.0.9"
50
52
  },
51
- "gitHead": "b7230cc8d6a978cfdd2940e52b9664e990d0526b"
53
+ "gitHead": "08cd7e788eb31a0332898687a9ee42a09acc391b"
52
54
  }