@bitgo/account-lib 2.19.0-rc.14 → 2.19.0-rc.17

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 (57) hide show
  1. package/dist/browser/bitgo-account-lib.js +1 -1
  2. package/dist/package.json +3 -3
  3. package/dist/src/coin/hbar/ifaces.d.ts +4 -0
  4. package/dist/src/coin/hbar/ifaces.d.ts.map +1 -1
  5. package/dist/src/coin/hbar/ifaces.js +1 -1
  6. package/dist/src/coin/hbar/utils.d.ts +36 -0
  7. package/dist/src/coin/hbar/utils.d.ts.map +1 -1
  8. package/dist/src/coin/hbar/utils.js +90 -6
  9. package/dist/src/coin/near/constants.d.ts +9 -0
  10. package/dist/src/coin/near/constants.d.ts.map +1 -0
  11. package/dist/src/coin/near/constants.js +12 -0
  12. package/dist/src/coin/near/contractCallWrapper.d.ts +33 -0
  13. package/dist/src/coin/near/contractCallWrapper.d.ts.map +1 -0
  14. package/dist/src/coin/near/contractCallWrapper.js +87 -0
  15. package/dist/src/coin/near/iface.d.ts +13 -1
  16. package/dist/src/coin/near/iface.d.ts.map +1 -1
  17. package/dist/src/coin/near/iface.js +1 -1
  18. package/dist/src/coin/near/stakingActivateBuilder.d.ts +32 -0
  19. package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +1 -0
  20. package/dist/src/coin/near/stakingActivateBuilder.js +159 -0
  21. package/dist/src/coin/near/transaction.d.ts +18 -0
  22. package/dist/src/coin/near/transaction.d.ts.map +1 -1
  23. package/dist/src/coin/near/transaction.js +87 -12
  24. package/dist/src/coin/near/transactionBuilder.d.ts +1 -1
  25. package/dist/src/coin/near/transactionBuilder.d.ts.map +1 -1
  26. package/dist/src/coin/near/transactionBuilder.js +1 -1
  27. package/dist/src/coin/near/transactionBuilderFactory.d.ts +2 -0
  28. package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +1 -1
  29. package/dist/src/coin/near/transactionBuilderFactory.js +7 -1
  30. package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
  31. package/dist/src/coin/sol/ataInitializationBuilder.js +6 -9
  32. package/dist/src/coin/sol/tokenTransferBuilder.d.ts +1 -1
  33. package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +1 -1
  34. package/dist/src/coin/sol/tokenTransferBuilder.js +6 -9
  35. package/dist/src/coin/sol/utils.d.ts +12 -1
  36. package/dist/src/coin/sol/utils.d.ts.map +1 -1
  37. package/dist/src/coin/sol/utils.js +77 -2
  38. package/dist/src/coin/stx/utils.js +3 -3
  39. package/dist/src/mpc/curves.d.ts +28 -13
  40. package/dist/src/mpc/curves.d.ts.map +1 -1
  41. package/dist/src/mpc/curves.js +56 -59
  42. package/dist/src/mpc/hdTree.d.ts +24 -0
  43. package/dist/src/mpc/hdTree.d.ts.map +1 -0
  44. package/dist/src/mpc/hdTree.js +143 -0
  45. package/dist/src/mpc/shamir.d.ts +25 -6
  46. package/dist/src/mpc/shamir.d.ts.map +1 -1
  47. package/dist/src/mpc/shamir.js +41 -45
  48. package/dist/src/mpc/tss.d.ts +48 -27
  49. package/dist/src/mpc/tss.d.ts.map +1 -1
  50. package/dist/src/mpc/tss.js +242 -175
  51. package/dist/src/mpc/util.d.ts +7 -0
  52. package/dist/src/mpc/util.d.ts.map +1 -0
  53. package/dist/src/mpc/util.js +38 -0
  54. package/package.json +3 -3
  55. package/dist/src/coin/dot/walletInitializationBuilder.d.ts +0 -60
  56. package/dist/src/coin/dot/walletInitializationBuilder.d.ts.map +0 -1
  57. package/dist/src/coin/dot/walletInitializationBuilder.js +0 -144
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo/account-lib",
3
- "version": "2.19.0-rc.14",
3
+ "version": "2.19.0-rc.17",
4
4
  "description": "BitGo's account library functions",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -39,7 +39,7 @@
39
39
  "@bitgo/blake2b": "^3.0.2",
40
40
  "@bitgo/bls": "^0.1.0",
41
41
  "@bitgo/bls-dkg": "^1.0.2-rc.0",
42
- "@bitgo/statics": "^6.17.0-rc.9",
42
+ "@bitgo/statics": "^6.17.0-rc.12",
43
43
  "@celo/contractkit": "^1.2.4",
44
44
  "@ethereumjs/common": "^2.4.0",
45
45
  "@ethereumjs/tx": "^3.3.0",
@@ -126,5 +126,5 @@
126
126
  "publishConfig": {
127
127
  "access": "public"
128
128
  },
129
- "gitHead": "f186b0b845d7d18d0afcf9b6a2b13908fc7e904e"
129
+ "gitHead": "6b683f66390c1805f4733a5a7667a8c822d798e0"
130
130
  }
@@ -19,4 +19,8 @@ export interface SignatureData {
19
19
  signature: string;
20
20
  keyPair: KeyPair;
21
21
  }
22
+ export interface AddressDetails {
23
+ address: string;
24
+ memoId?: string;
25
+ }
22
26
  //# sourceMappingURL=ifaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ifaces.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/ifaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAE5B,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB"}
1
+ {"version":3,"file":"ifaces.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/ifaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAE5B,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vaGJhci9pZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuJztcblxuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZDogc3RyaW5nO1xuICBoYXNoPzogc3RyaW5nO1xuICBmcm9tOiBzdHJpbmc7XG4gIGRhdGE6IHN0cmluZztcbiAgZmVlOiBudW1iZXI7XG4gIHN0YXJ0VGltZTogc3RyaW5nO1xuICB2YWxpZER1cmF0aW9uOiBzdHJpbmc7XG4gIG5vZGU6IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgdG8/OiBzdHJpbmc7XG4gIGFtb3VudD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWRlcmFOb2RlIHtcbiAgbm9kZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlRGF0YSB7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xuICBrZXlQYWlyOiBLZXlQYWlyO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vaGJhci9pZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuJztcblxuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZDogc3RyaW5nO1xuICBoYXNoPzogc3RyaW5nO1xuICBmcm9tOiBzdHJpbmc7XG4gIGRhdGE6IHN0cmluZztcbiAgZmVlOiBudW1iZXI7XG4gIHN0YXJ0VGltZTogc3RyaW5nO1xuICB2YWxpZER1cmF0aW9uOiBzdHJpbmc7XG4gIG5vZGU6IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgdG8/OiBzdHJpbmc7XG4gIGFtb3VudD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZWRlcmFOb2RlIHtcbiAgbm9kZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlRGF0YSB7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xuICBrZXlQYWlyOiBLZXlQYWlyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NEZXRhaWxzIHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBtZW1vSWQ/OiBzdHJpbmc7XG59XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { PrivateKey } from '@hashgraph/sdk';
3
3
  import { proto } from '../../../resources/hbar/protobuf/hedera';
4
+ import { AddressDetails } from './ifaces';
4
5
  /**
5
6
  * Returns whether or not the string is a valid Hedera account.
6
7
  *
@@ -113,4 +114,39 @@ export declare function createRawKey(prv: string): PrivateKey;
113
114
  * @param prv
114
115
  */
115
116
  export declare function convertFromStellarPub(stellarPub: string): string;
117
+ /**
118
+ * Compares an address to the base address to check if matchs.
119
+ *
120
+ * @param {String} address - an address
121
+ * @param {String} baseAddress - a base address
122
+ * @returns {boolean}
123
+ */
124
+ export declare function isSameBaseAddress(address: string, baseAddress: string): boolean;
125
+ /**
126
+ * Returns the base address portion of an address
127
+ *
128
+ * @param {String} address - an address
129
+ * @returns {String} - the base address
130
+ */
131
+ export declare function getBaseAddress(address: string): string;
132
+ /**
133
+ * Process address into address and memo id
134
+ *
135
+ * @param rawAddress the address
136
+ * @returns object containing address and memo id
137
+ */
138
+ export declare function getAddressDetails(rawAddress: string): AddressDetails;
139
+ /**
140
+ * Validate and return address with appended memo id
141
+ *
142
+ * @param {AddressDetails} addressDetails
143
+ */
144
+ export declare function normalizeAddress({ address, memoId }: AddressDetails): string;
145
+ /**
146
+ * Return boolean indicating whether input is a valid address with memo id
147
+ *
148
+ * @param {string} address address in the form <address>?memoId=<memoId>
149
+ * @returns {boolean} true is input is a valid address
150
+ */
151
+ export declare function isValidAddressWithPaymentId(address: string): boolean;
116
152
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/utils.ts"],"names":[],"mappings":";AACA,OAAO,EAAuC,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjF,OAAO,EAAE,KAAK,EAAE,MAAM,yCAAyC,CAAC;AAIhE;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUvD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAa1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUrD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,WAE7C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOrD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,GAAG,GAAG,OAAO,CAQxE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAE/F;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,UAAU,UAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKjD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAOhE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/hbar/utils.ts"],"names":[],"mappings":";AACA,OAAO,EAAuC,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjF,OAAO,EAAE,KAAK,EAAE,MAAM,yCAAyC,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM1C;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUvD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAa1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUrD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,WAE7C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOrD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,GAAG,GAAG,OAAO,CAQxE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAE/F;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,UAAU,UAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAK/E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAwBpE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,GAAG,MAAM,CAK5E;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOpE"}
@@ -22,12 +22,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.convertFromStellarPub = exports.createRawKey = exports.isValidMemo = exports.removePrefix = exports.stringifyTxTime = exports.stringifyAccountId = exports.isValidRawTransactionFormat = exports.isValidAmount = exports.isValidTimeString = exports.getCurrentTime = exports.isNodeEnvironment = exports.toUint8Array = exports.toHex = exports.isValidPublicKey = exports.isValidTransactionId = exports.isValidAddress = void 0;
25
+ exports.isValidAddressWithPaymentId = exports.normalizeAddress = exports.getAddressDetails = exports.getBaseAddress = exports.isSameBaseAddress = exports.convertFromStellarPub = exports.createRawKey = exports.isValidMemo = exports.removePrefix = exports.stringifyTxTime = exports.stringifyAccountId = exports.isValidRawTransactionFormat = exports.isValidAmount = exports.isValidTimeString = exports.getCurrentTime = exports.isNodeEnvironment = exports.toUint8Array = exports.toHex = exports.isValidPublicKey = exports.isValidTransactionId = exports.isValidAddress = void 0;
26
26
  var _ = __importStar(require("lodash"));
27
27
  var sdk_1 = require("@hashgraph/sdk");
28
28
  var hex = __importStar(require("@stablelib/hex"));
29
29
  var bignumber_js_1 = __importDefault(require("bignumber.js"));
30
30
  var stellar = __importStar(require("stellar-sdk"));
31
+ var errors_1 = require("../baseCoin/errors");
32
+ var url_1 = __importDefault(require("url"));
33
+ var querystring_1 = __importDefault(require("querystring"));
31
34
  var MAX_TINYBARS_AMOUNT = new bignumber_js_1.default(2).pow(63).minus(1);
32
35
  /**
33
36
  * Returns whether or not the string is a valid Hedera account.
@@ -216,10 +219,7 @@ exports.removePrefix = removePrefix;
216
219
  * @param memo
217
220
  */
218
221
  function isValidMemo(memo) {
219
- if (Buffer.from(memo).length > 100) {
220
- return false;
221
- }
222
- return true;
222
+ return !(_.isEmpty(memo) || Buffer.from(memo).length > 100);
223
223
  }
224
224
  exports.isValidMemo = isValidMemo;
225
225
  /**
@@ -245,4 +245,88 @@ function convertFromStellarPub(stellarPub) {
245
245
  return rawKey.toString('hex');
246
246
  }
247
247
  exports.convertFromStellarPub = convertFromStellarPub;
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9oYmFyL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBNEI7QUFDNUIsc0NBQWlGO0FBQ2pGLGtEQUFzQztBQUN0Qyw4REFBcUM7QUFDckMsbURBQXVDO0FBR3ZDLElBQU0sbUJBQW1CLEdBQUcsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFOUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUMsRUFBRTtRQUNsRixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSTtRQUNGLElBQU0sR0FBRyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzFCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQVZELHdDQVVDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxJQUFZO0lBQy9DLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNuQixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSTtRQUNGLElBQU0sRUFBRSxHQUFHLG1CQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVB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QUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUN2RCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7S0FDN0M7SUFFRCxJQUFNLE1BQU0sR0FBVyxPQUFPLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBUEQsc0RBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbklkLCBBY2NvdW50SWQsIFB1YmxpY0tleSwgUHJpdmF0ZUtleSB9IGZyb20gJ0BoYXNoZ3JhcGgvc2RrJztcbmltcG9ydCAqIGFzIGhleCBmcm9tICdAc3RhYmxlbGliL2hleCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgKiBhcyBzdGVsbGFyIGZyb20gJ3N0ZWxsYXItc2RrJztcbmltcG9ydCB7IHByb3RvIH0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2hiYXIvcHJvdG9idWYvaGVkZXJhJztcblxuY29uc3QgTUFYX1RJTllCQVJTX0FNT1VOVCA9IG5ldyBCaWdOdW1iZXIoMikucG93KDYzKS5taW51cygxKTtcblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBIZWRlcmEgYWNjb3VudC5cbiAqXG4gKiBJbiBhbnkgZm9ybSwgYHNoYXJkYCBhbmQgYHJlYWxtYCBhcmUgYXNzdW1lZCB0byBiZSAwIGlmIG5vdCBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIHRoZSBhZGRyZXNzIHRvIGJlIHZhbGlkYXRlZFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eShhZGRyZXNzKSB8fCAhYWRkcmVzcy5tYXRjaCgvXlswLTldKyg/Oig/PVxcLikoXFwuWzAtOV0rKXsyfXwoPyFcXC4pKSQvKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IGFjYyA9IEFjY291bnRJZC5mcm9tU3RyaW5nKGFkZHJlc3MpO1xuICAgIHJldHVybiAhXy5pc05hTihhY2MubnVtKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSB0cmFuc2FjdGlvbiBpZCBvciBub3QuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHR4SWQgLSB0aGUgdHJhbnNhY3Rpb24gaWQgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoXy5pc0VtcHR5KHR4SWQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgdHggPSBUcmFuc2FjdGlvbklkLmZyb21TdHJpbmcodHhJZCk7XG4gICAgaWYgKF8uaXNOaWwodHguYWNjb3VudElkKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIV8uaXNOYU4odHguYWNjb3VudElkLm51bSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBIZWRlcmEgcHVibGljIGtleVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSB0aGUgIHB1YmxpYyBrZXkgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKF8uaXNFbXB0eShrZXkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcHViS2V5ID0gUHVibGljS2V5LmZyb21TdHJpbmcoa2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgIHJldHVybiAhXy5pc05hTihwdWJLZXkudG9TdHJpbmcoKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGhleCBzdHJpbmcgb2YgdGhlIGdpdmVuIGJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7QnVmZmVyIHwgVWludDhBcnJheX0gYnVmZmVyIC0gdGhlIGJ1ZmZlciB0byBiZSBjb252ZXJ0ZWQgdG8gaGV4XG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBoZXggdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSGV4KGJ1ZmZlcjogQnVmZmVyIHwgVWludDhBcnJheSk6IHN0cmluZyB7XG4gIHJldHVybiBoZXguZW5jb2RlKGJ1ZmZlciwgdHJ1ZSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIFVpbnQ4QXJyYXkgb2YgdGhlIGdpdmVuIGhleCBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gdGhlIGhleCBzdHJpbmcgdG8gYmUgY29udmVydGVkXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBVaW50OEFycmF5IHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1VpbnQ4QXJyYXkoc3RyOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIGhleC5kZWNvZGUoc3RyKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBub2RlSlMucHJvY2VzcyBleGlzdCBhbmQgaWYgYSBub2RlIHZlcnNpb24gaXMgZGVmaW5lZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBpcyBhbiBub2RlSlMgZW52aXJvbm1lbnRcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTm9kZUVudmlyb25tZW50KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBwcm9jZXNzLnZlcnNpb25zLm5vZGUgIT09ICd1bmRlZmluZWQnO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgY3VycmVudCB0aW1lIHdpdGggbmFub3NlY29uZHMgcHJlY2lzaW9uXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gdGhlIGN1cnJlbnQgdGltZSBpbiBzZWNvbmRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW50VGltZSgpOiBzdHJpbmcge1xuICBpZiAoaXNOb2RlRW52aXJvbm1lbnQoKSkge1xuICAgIGNvbnN0IG5hbm9zID0gcHJvY2Vzcy5ocnRpbWUoKVsxXTtcbiAgICBjb25zdCBzZWNvbmRzID0gKERhdGUubm93KCkgKiAxMDAwMDAwICsgbmFub3MpIC8gMTAwMDAwMDAwMDtcbiAgICByZXR1cm4gc2Vjb25kcy50b0ZpeGVkKDkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAocGVyZm9ybWFuY2UudGltZU9yaWdpbiArIHBlcmZvcm1hbmNlLm5vdygpKS50b0ZpeGVkKDkpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgdGltZXN0YW1wLiBOYW5vc2Vjb25kcyBhcmUgb3B0aW9uYWwgYW5kIGNhbiBiZSBwYXNzZWQgYWZ0ZXIgYSBkb3QsIGZvclxuICogZXhhbXBsZTogMTU5NTM3NDcyMy4zNTY5ODE2ODlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGltZSAtIHRoZSB0aW1lc3RhbXAgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVGltZVN0cmluZyh0aW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIC9eWzAtOV0rKFxcLlswLTldKyk/JC8udGVzdCh0aW1lKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBhbW91bnQgbnVtYmVyXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCAtIHRoZSBzdHJpbmcgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFtb3VudChhbW91bnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBiaWdOdW1iZXJBbW91bnQgPSBuZXcgQmlnTnVtYmVyKGFtb3VudCk7XG4gIHJldHVybiAoXG4gICAgYmlnTnVtYmVyQW1vdW50LmlzSW50ZWdlcigpICYmXG4gICAgYmlnTnVtYmVyQW1vdW50LmlzR3JlYXRlclRoYW5PckVxdWFsVG8oMCkgJiZcbiAgICBiaWdOdW1iZXJBbW91bnQuaXNMZXNzVGhhbk9yRXF1YWxUbyhNQVhfVElOWUJBUlNfQU1PVU5UKVxuICApO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGUgcHJvdmlkZWQgcmF3IHRyYW5zYWN0aW9uIGFjY29tbW9kYXRlcyB0byBiaXRnbydzIHByZWZlcnJlZCBmb3JtYXRcbiAqXG4gKiBAcGFyYW0ge2FueX0gcmF3VHJhbnNhY3Rpb24gLSBUaGUgcmF3IHRyYW5zYWN0aW9uIHRvIGJlIGNoZWNrZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRSYXdUcmFuc2FjdGlvbkZvcm1hdChyYXdUcmFuc2FjdGlvbjogYW55KTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICAodHlwZW9mIHJhd1RyYW5zYWN0aW9uID09PSAnc3RyaW5nJyAmJiAvXlswLTlhLWZBLUZdKyQvLnRlc3QocmF3VHJhbnNhY3Rpb24pKSB8fFxuICAgIChCdWZmZXIuaXNCdWZmZXIocmF3VHJhbnNhY3Rpb24pICYmIFVpbnQ4QXJyYXkuZnJvbShyYXdUcmFuc2FjdGlvbikpXG4gICkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JQWNjb3VudElEfSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3Byb3RvLklBY2NvdW50SUR9IC0gYWNjb3VudCBpZCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSUFjY291bnRJRH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUFjY291bnRJZCh7IHNoYXJkTnVtLCByZWFsbU51bSwgYWNjb3VudE51bSB9OiBwcm90by5JQWNjb3VudElEKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3NoYXJkTnVtIHx8IDB9LiR7cmVhbG1OdW0gfHwgMH0uJHthY2NvdW50TnVtfWA7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiB7cHJvdG8uSVRpbWVzdGFtcH0gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtwcm90by5JVGltZXN0YW1wfSAtIHRpbWVzdGFtcCB0byBiZSBjYXN0IHRvIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB7cHJvdG8uSVRpbWVzdGFtcH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVR4VGltZSh7IHNlY29uZHMsIG5hbm9zIH06IHByb3RvLklUaW1lc3RhbXApIHtcbiAgcmV0dXJuIGAke3NlY29uZHN9LiR7bmFub3N9YDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIHNwZWNpZmllZCBwcmVmaXggZnJvbSBhIHN0cmluZyBvbmx5IGlmIGl0IHN0YXJ0cyB3aXRoIHRoYXQgcHJlZml4XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHByZWZpeCBUaGUgcHJlZml4IHRvIGJlIHJlbW92ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIG9yaWdpbmFsIHN0cmluZywgdXN1YWxseSBhIHByaXZhdGUgb3IgcHVibGljIGtleVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIHN0cmluZyB3aXRob3V0IHByZWZpeFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUHJlZml4KHByZWZpeDogc3RyaW5nLCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChrZXkuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgcmV0dXJuIGtleS5zbGljZShwcmVmaXgubGVuZ3RoKTtcbiAgfVxuICByZXR1cm4ga2V5O1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoaXMgaXMgYSB2YWxpZCBtZW1vIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0gbWVtb1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZE1lbW8obWVtbzogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChCdWZmZXIuZnJvbShtZW1vKS5sZW5ndGggPiAxMDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogVXNlcyB0aGUgbmF0aXZlIGhhc2hncmFwaCBTREsgZnVuY3Rpb24gdG8gZ2V0IGEgcmF3IGtleS5cbiAqXG4gKiBAcGFyYW0gcHJ2XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSYXdLZXkocHJ2OiBzdHJpbmcpOiBQcml2YXRlS2V5IHtcbiAgcmV0dXJuIFByaXZhdGVLZXkuZnJvbVN0cmluZyhwcnYpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIHN0ZWxsYXIgcHVibGljIGtleSB0byBhIGVkMjU1MTkgaGV4IGZvcm1hdC5cbiAqXG4gKiBAcGFyYW0gc3RlbGxhclB1YlxuICogQHBhcmFtIHBydlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEZyb21TdGVsbGFyUHViKHN0ZWxsYXJQdWI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghc3RlbGxhci5TdHJLZXkuaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkoc3RlbGxhclB1YikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIHZhbGlkIHN0ZWxsYXIgcHViLicpO1xuICB9XG5cbiAgY29uc3QgcmF3S2V5OiBCdWZmZXIgPSBzdGVsbGFyLlN0cktleS5kZWNvZGVFZDI1NTE5UHVibGljS2V5KHN0ZWxsYXJQdWIpO1xuICByZXR1cm4gcmF3S2V5LnRvU3RyaW5nKCdoZXgnKTtcbn1cbiJdfQ==
248
+ /**
249
+ * Compares an address to the base address to check if matchs.
250
+ *
251
+ * @param {String} address - an address
252
+ * @param {String} baseAddress - a base address
253
+ * @returns {boolean}
254
+ */
255
+ function isSameBaseAddress(address, baseAddress) {
256
+ if (!isValidAddressWithPaymentId(address)) {
257
+ throw new errors_1.UtilsError("invalid address: " + address);
258
+ }
259
+ return getBaseAddress(address) === getBaseAddress(baseAddress);
260
+ }
261
+ exports.isSameBaseAddress = isSameBaseAddress;
262
+ /**
263
+ * Returns the base address portion of an address
264
+ *
265
+ * @param {String} address - an address
266
+ * @returns {String} - the base address
267
+ */
268
+ function getBaseAddress(address) {
269
+ var addressDetails = getAddressDetails(address);
270
+ return addressDetails.address;
271
+ }
272
+ exports.getBaseAddress = getBaseAddress;
273
+ /**
274
+ * Process address into address and memo id
275
+ *
276
+ * @param rawAddress the address
277
+ * @returns object containing address and memo id
278
+ */
279
+ function getAddressDetails(rawAddress) {
280
+ var addressDetails = url_1.default.parse(rawAddress);
281
+ var queryDetails = addressDetails.query ? querystring_1.default.parse(addressDetails.query) : {};
282
+ var baseAddress = addressDetails.pathname;
283
+ if (!isValidAddress(baseAddress)) {
284
+ throw new errors_1.UtilsError("invalid address: " + rawAddress);
285
+ }
286
+ // address doesn't have a memo id or memoId is empty
287
+ if (baseAddress === rawAddress) {
288
+ return {
289
+ address: rawAddress,
290
+ memoId: undefined,
291
+ };
292
+ }
293
+ var memoId = queryDetails.memoId;
294
+ if (!isValidMemo(memoId)) {
295
+ throw new errors_1.UtilsError("invalid address: '" + rawAddress + "', memoId is not valid");
296
+ }
297
+ return {
298
+ address: baseAddress,
299
+ memoId: memoId,
300
+ };
301
+ }
302
+ exports.getAddressDetails = getAddressDetails;
303
+ /**
304
+ * Validate and return address with appended memo id
305
+ *
306
+ * @param {AddressDetails} addressDetails
307
+ */
308
+ function normalizeAddress(_a) {
309
+ var address = _a.address, memoId = _a.memoId;
310
+ if (memoId && isValidMemo(memoId)) {
311
+ return address + "?memoId=" + memoId;
312
+ }
313
+ return address;
314
+ }
315
+ exports.normalizeAddress = normalizeAddress;
316
+ /**
317
+ * Return boolean indicating whether input is a valid address with memo id
318
+ *
319
+ * @param {string} address address in the form <address>?memoId=<memoId>
320
+ * @returns {boolean} true is input is a valid address
321
+ */
322
+ function isValidAddressWithPaymentId(address) {
323
+ try {
324
+ var addressDetails = getAddressDetails(address);
325
+ return address === normalizeAddress(addressDetails);
326
+ }
327
+ catch (e) {
328
+ return false;
329
+ }
330
+ }
331
+ exports.isValidAddressWithPaymentId = isValidAddressWithPaymentId;
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9oYmFyL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBNEI7QUFDNUIsc0NBQWlGO0FBQ2pGLGtEQUFzQztBQUN0Qyw4REFBcUM7QUFDckMsbURBQXVDO0FBRXZDLDZDQUFnRDtBQUVoRCw0Q0FBc0I7QUFDdEIsNERBQXNDO0FBRXRDLElBQU0sbUJBQW1CLEdBQUcsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFOUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUMsRUFBRTtRQUNsRixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSTtRQUNGLElBQU0sR0FBRyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzFCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQVZELHdDQVVDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxJQUFZO0lBQy9DLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNuQixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSTtRQUNGLElBQU0sRUFBRSxHQUFHLG1CQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FB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b20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbklkLCBBY2NvdW50SWQsIFB1YmxpY0tleSwgUHJpdmF0ZUtleSB9IGZyb20gJ0BoYXNoZ3JhcGgvc2RrJztcbmltcG9ydCAqIGFzIGhleCBmcm9tICdAc3RhYmxlbGliL2hleCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgKiBhcyBzdGVsbGFyIGZyb20gJ3N0ZWxsYXItc2RrJztcbmltcG9ydCB7IHByb3RvIH0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2hiYXIvcHJvdG9idWYvaGVkZXJhJztcbmltcG9ydCB7IFV0aWxzRXJyb3IgfSBmcm9tICcuLi9iYXNlQ29pbi9lcnJvcnMnO1xuaW1wb3J0IHsgQWRkcmVzc0RldGFpbHMgfSBmcm9tICcuL2lmYWNlcyc7XG5pbXBvcnQgdXJsIGZyb20gJ3VybCc7XG5pbXBvcnQgcXVlcnlzdHJpbmcgZnJvbSAncXVlcnlzdHJpbmcnO1xuXG5jb25zdCBNQVhfVElOWUJBUlNfQU1PVU5UID0gbmV3IEJpZ051bWJlcigyKS5wb3coNjMpLm1pbnVzKDEpO1xuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSBhY2NvdW50LlxuICpcbiAqIEluIGFueSBmb3JtLCBgc2hhcmRgIGFuZCBgcmVhbG1gIGFyZSBhc3N1bWVkIHRvIGJlIDAgaWYgbm90IHByb3ZpZGVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gdGhlIGFkZHJlc3MgdG8gYmUgdmFsaWRhdGVkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoXy5pc0VtcHR5KGFkZHJlc3MpIHx8ICFhZGRyZXNzLm1hdGNoKC9eWzAtOV0rKD86KD89XFwuKShcXC5bMC05XSspezJ9fCg/IVxcLikpJC8pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgYWNjID0gQWNjb3VudElkLmZyb21TdHJpbmcoYWRkcmVzcyk7XG4gICAgcmV0dXJuICFfLmlzTmFOKGFjYy5udW0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgSGVkZXJhIHRyYW5zYWN0aW9uIGlkIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdHhJZCAtIHRoZSB0cmFuc2FjdGlvbiBpZCB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChfLmlzRW1wdHkodHhJZCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCB0eCA9IFRyYW5zYWN0aW9uSWQuZnJvbVN0cmluZyh0eElkKTtcbiAgICBpZiAoXy5pc05pbCh0eC5hY2NvdW50SWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhXy5pc05hTih0eC5hY2NvdW50SWQubnVtKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEhlZGVyYSBwdWJsaWMga2V5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIHRoZSAgcHVibGljIGtleSB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoXy5pc0VtcHR5KGtleSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCBwdWJLZXkgPSBQdWJsaWNLZXkuZnJvbVN0cmluZyhrZXkudG9Mb3dlckNhc2UoKSk7XG4gICAgcmV0dXJuICFfLmlzTmFOKHB1YktleS50b1N0cmluZygpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgYW4gaGV4IHN0cmluZyBvZiB0aGUgZ2l2ZW4gYnVmZmVyXG4gKlxuICogQHBhcmFtIHtCdWZmZXIgfCBVaW50OEFycmF5fSBidWZmZXIgLSB0aGUgYnVmZmVyIHRvIGJlIGNvbnZlcnRlZCB0byBoZXhcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdGhlIGhleCB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9IZXgoYnVmZmVyOiBCdWZmZXIgfCBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgcmV0dXJuIGhleC5lbmNvZGUoYnVmZmVyLCB0cnVlKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgVWludDhBcnJheSBvZiB0aGUgZ2l2ZW4gaGV4IHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSB0aGUgaGV4IHN0cmluZyB0byBiZSBjb252ZXJ0ZWRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdGhlIFVpbnQ4QXJyYXkgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVWludDhBcnJheShzdHI6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICByZXR1cm4gaGV4LmRlY29kZShzdHIpO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIG5vZGVKUy5wcm9jZXNzIGV4aXN0IGFuZCBpZiBhIG5vZGUgdmVyc2lvbiBpcyBkZWZpbmVkIHRvIGRldGVybWluZSBpZiB0aGlzIGlzIGFuIG5vZGVKUyBlbnZpcm9ubWVudFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOb2RlRW52aXJvbm1lbnQoKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHByb2Nlc3MudmVyc2lvbnMubm9kZSAhPT0gJ3VuZGVmaW5lZCc7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHRoZSBjdXJyZW50IHRpbWUgd2l0aCBuYW5vc2Vjb25kcyBwcmVjaXNpb25cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgY3VycmVudCB0aW1lIGluIHNlY29uZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRUaW1lKCk6IHN0cmluZyB7XG4gIGlmIChpc05vZGVFbnZpcm9ubWVudCgpKSB7XG4gICAgY29uc3QgbmFub3MgPSBwcm9jZXNzLmhydGltZSgpWzFdO1xuICAgIGNvbnN0IHNlY29uZHMgPSAoRGF0ZS5ub3coKSAqIDEwMDAwMDAgKyBuYW5vcykgLyAxMDAwMDAwMDAwO1xuICAgIHJldHVybiBzZWNvbmRzLnRvRml4ZWQoOSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChwZXJmb3JtYW5jZS50aW1lT3JpZ2luICsgcGVyZm9ybWFuY2Uubm93KCkpLnRvRml4ZWQoOSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCB0aW1lc3RhbXAuIE5hbm9zZWNvbmRzIGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIHBhc3NlZCBhZnRlciBhIGRvdCwgZm9yXG4gKiBleGFtcGxlOiAxNTk1Mzc0NzIzLjM1Njk4MTY4OVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0aW1lIC0gdGhlIHRpbWVzdGFtcCB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRUaW1lU3RyaW5nKHRpbWU6IHN0cmluZykge1xuICByZXR1cm4gL15bMC05XSsoXFwuWzAtOV0rKT8kLy50ZXN0KHRpbWUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIGFtb3VudCBudW1iZXJcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50IC0gdGhlIHN0cmluZyB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQW1vdW50KGFtb3VudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGJpZ051bWJlckFtb3VudCA9IG5ldyBCaWdOdW1iZXIoYW1vdW50KTtcbiAgcmV0dXJuIChcbiAgICBiaWdOdW1iZXJBbW91bnQuaXNJbnRlZ2VyKCkgJiZcbiAgICBiaWdOdW1iZXJBbW91bnQuaXNHcmVhdGVyVGhhbk9yRXF1YWxUbygwKSAmJlxuICAgIGJpZ051bWJlckFtb3VudC5pc0xlc3NUaGFuT3JFcXVhbFRvKE1BWF9USU5ZQkFSU19BTU9VTlQpXG4gICk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoZSBwcm92aWRlZCByYXcgdHJhbnNhY3Rpb24gYWNjb21tb2RhdGVzIHRvIGJpdGdvJ3MgcHJlZmVycmVkIGZvcm1hdFxuICpcbiAqIEBwYXJhbSB7YW55fSByYXdUcmFuc2FjdGlvbiAtIFRoZSByYXcgdHJhbnNhY3Rpb24gdG8gYmUgY2hlY2tlZFxuICogQHJldHVybnMge2Jvb2xlYW59IHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFJhd1RyYW5zYWN0aW9uRm9ybWF0KHJhd1RyYW5zYWN0aW9uOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKFxuICAgICh0eXBlb2YgcmF3VHJhbnNhY3Rpb24gPT09ICdzdHJpbmcnICYmIC9eWzAtOWEtZkEtRl0rJC8udGVzdChyYXdUcmFuc2FjdGlvbikpIHx8XG4gICAgKEJ1ZmZlci5pc0J1ZmZlcihyYXdUcmFuc2FjdGlvbikgJiYgVWludDhBcnJheS5mcm9tKHJhd1RyYW5zYWN0aW9uKSlcbiAgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4ge3Byb3RvLklBY2NvdW50SUR9IG9iamVjdFxuICpcbiAqIEBwYXJhbSB7cHJvdG8uSUFjY291bnRJRH0gLSBhY2NvdW50IGlkIHRvIGJlIGNhc3QgdG8gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHtwcm90by5JQWNjb3VudElEfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5QWNjb3VudElkKHsgc2hhcmROdW0sIHJlYWxtTnVtLCBhY2NvdW50TnVtIH06IHByb3RvLklBY2NvdW50SUQpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2hhcmROdW0gfHwgMH0uJHtyZWFsbU51bSB8fCAwfS4ke2FjY291bnROdW19YDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIHtwcm90by5JVGltZXN0YW1wfSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3Byb3RvLklUaW1lc3RhbXB9IC0gdGltZXN0YW1wIHRvIGJlIGNhc3QgdG8gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHtwcm90by5JVGltZXN0YW1wfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5VHhUaW1lKHsgc2Vjb25kcywgbmFub3MgfTogcHJvdG8uSVRpbWVzdGFtcCkge1xuICByZXR1cm4gYCR7c2Vjb25kc30uJHtuYW5vc31gO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgc3BlY2lmaWVkIHByZWZpeCBmcm9tIGEgc3RyaW5nIG9ubHkgaWYgaXQgc3RhcnRzIHdpdGggdGhhdCBwcmVmaXhcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4IFRoZSBwcmVmaXggdG8gYmUgcmVtb3ZlZFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUgb3JpZ2luYWwgc3RyaW5nLCB1c3VhbGx5IGEgcHJpdmF0ZSBvciBwdWJsaWMga2V5XG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgc3RyaW5nIHdpdGhvdXQgcHJlZml4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcmVmaXgocHJlZml4OiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICByZXR1cm4ga2V5LnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICB9XG4gIHJldHVybiBrZXk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhpcyBpcyBhIHZhbGlkIG1lbW8gb3Igbm90LlxuICpcbiAqIEBwYXJhbSBtZW1vXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkTWVtbyhtZW1vOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuICEoXy5pc0VtcHR5KG1lbW8pIHx8IEJ1ZmZlci5mcm9tKG1lbW8pLmxlbmd0aCA+IDEwMCk7XG59XG5cbi8qKlxuICogVXNlcyB0aGUgbmF0aXZlIGhhc2hncmFwaCBTREsgZnVuY3Rpb24gdG8gZ2V0IGEgcmF3IGtleS5cbiAqXG4gKiBAcGFyYW0gcHJ2XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSYXdLZXkocHJ2OiBzdHJpbmcpOiBQcml2YXRlS2V5IHtcbiAgcmV0dXJuIFByaXZhdGVLZXkuZnJvbVN0cmluZyhwcnYpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIHN0ZWxsYXIgcHVibGljIGtleSB0byBhIGVkMjU1MTkgaGV4IGZvcm1hdC5cbiAqXG4gKiBAcGFyYW0gc3RlbGxhclB1YlxuICogQHBhcmFtIHBydlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEZyb21TdGVsbGFyUHViKHN0ZWxsYXJQdWI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghc3RlbGxhci5TdHJLZXkuaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkoc3RlbGxhclB1YikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIHZhbGlkIHN0ZWxsYXIgcHViLicpO1xuICB9XG5cbiAgY29uc3QgcmF3S2V5OiBCdWZmZXIgPSBzdGVsbGFyLlN0cktleS5kZWNvZGVFZDI1NTE5UHVibGljS2V5KHN0ZWxsYXJQdWIpO1xuICByZXR1cm4gcmF3S2V5LnRvU3RyaW5nKCdoZXgnKTtcbn1cblxuLyoqXG4gKiBDb21wYXJlcyBhbiBhZGRyZXNzIHRvIHRoZSBiYXNlIGFkZHJlc3MgdG8gY2hlY2sgaWYgbWF0Y2hzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBhZGRyZXNzIC0gYW4gYWRkcmVzc1xuICogQHBhcmFtIHtTdHJpbmd9IGJhc2VBZGRyZXNzIC0gYSBiYXNlIGFkZHJlc3NcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTYW1lQmFzZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCBiYXNlQWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICghaXNWYWxpZEFkZHJlc3NXaXRoUGF5bWVudElkKGFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICB9XG4gIHJldHVybiBnZXRCYXNlQWRkcmVzcyhhZGRyZXNzKSA9PT0gZ2V0QmFzZUFkZHJlc3MoYmFzZUFkZHJlc3MpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGJhc2UgYWRkcmVzcyBwb3J0aW9uIG9mIGFuIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYWRkcmVzcyAtIGFuIGFkZHJlc3NcbiAqIEByZXR1cm5zIHtTdHJpbmd9IC0gdGhlIGJhc2UgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZUFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzKTtcbiAgcmV0dXJuIGFkZHJlc3NEZXRhaWxzLmFkZHJlc3M7XG59XG5cbi8qKlxuICogUHJvY2VzcyBhZGRyZXNzIGludG8gYWRkcmVzcyBhbmQgbWVtbyBpZFxuICpcbiAqIEBwYXJhbSByYXdBZGRyZXNzIHRoZSBhZGRyZXNzXG4gKiBAcmV0dXJucyBvYmplY3QgY29udGFpbmluZyBhZGRyZXNzIGFuZCBtZW1vIGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzRGV0YWlscyhyYXdBZGRyZXNzOiBzdHJpbmcpOiBBZGRyZXNzRGV0YWlscyB7XG4gIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gdXJsLnBhcnNlKHJhd0FkZHJlc3MpO1xuICBjb25zdCBxdWVyeURldGFpbHMgPSBhZGRyZXNzRGV0YWlscy5xdWVyeSA/IHF1ZXJ5c3RyaW5nLnBhcnNlKGFkZHJlc3NEZXRhaWxzLnF1ZXJ5KSA6IHt9O1xuICBjb25zdCBiYXNlQWRkcmVzcyA9IDxzdHJpbmc+YWRkcmVzc0RldGFpbHMucGF0aG5hbWU7XG4gIGlmICghaXNWYWxpZEFkZHJlc3MoYmFzZUFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHtyYXdBZGRyZXNzfWApO1xuICB9XG5cbiAgLy8gYWRkcmVzcyBkb2Vzbid0IGhhdmUgYSBtZW1vIGlkIG9yIG1lbW9JZCBpcyBlbXB0eVxuICBpZiAoYmFzZUFkZHJlc3MgPT09IHJhd0FkZHJlc3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcmVzczogcmF3QWRkcmVzcyxcbiAgICAgIG1lbW9JZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbiAgY29uc3QgbWVtb0lkID0gPHN0cmluZz5xdWVyeURldGFpbHMubWVtb0lkO1xuICBpZiAoIWlzVmFsaWRNZW1vKG1lbW9JZCkpIHtcbiAgICB0aHJvdyBuZXcgVXRpbHNFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAnJHtyYXdBZGRyZXNzfScsIG1lbW9JZCBpcyBub3QgdmFsaWRgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogYmFzZUFkZHJlc3MsXG4gICAgbWVtb0lkLFxuICB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGFuZCByZXR1cm4gYWRkcmVzcyB3aXRoIGFwcGVuZGVkIG1lbW8gaWRcbiAqXG4gKiBAcGFyYW0ge0FkZHJlc3NEZXRhaWxzfSBhZGRyZXNzRGV0YWlsc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQWRkcmVzcyh7IGFkZHJlc3MsIG1lbW9JZCB9OiBBZGRyZXNzRGV0YWlscyk6IHN0cmluZyB7XG4gIGlmIChtZW1vSWQgJiYgaXNWYWxpZE1lbW8obWVtb0lkKSkge1xuICAgIHJldHVybiBgJHthZGRyZXNzfT9tZW1vSWQ9JHttZW1vSWR9YDtcbiAgfVxuICByZXR1cm4gYWRkcmVzcztcbn1cblxuLyoqXG4gKiBSZXR1cm4gYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgaW5wdXQgaXMgYSB2YWxpZCBhZGRyZXNzIHdpdGggbWVtbyBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIGFkZHJlc3MgaW4gdGhlIGZvcm0gPGFkZHJlc3M+P21lbW9JZD08bWVtb0lkPlxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaXMgaW5wdXQgaXMgYSB2YWxpZCBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQWRkcmVzc1dpdGhQYXltZW50SWQoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzKTtcbiAgICByZXR1cm4gYWRkcmVzcyA9PT0gbm9ybWFsaXplQWRkcmVzcyhhZGRyZXNzRGV0YWlscyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Staking smart contract method names selected to use on the builders.
3
+ * You can see all methods here
4
+ * @see https://github.com/near/core-contracts/blob/master/staking-pool/README.md
5
+ */
6
+ export declare const StakingContractMethodNames: {
7
+ readonly DepositAndStake: "deposit_and_stake";
8
+ };
9
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/coin/near/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,0BAA0B;;CAE7B,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StakingContractMethodNames = void 0;
4
+ /**
5
+ * Staking smart contract method names selected to use on the builders.
6
+ * You can see all methods here
7
+ * @see https://github.com/near/core-contracts/blob/master/staking-pool/README.md
8
+ */
9
+ exports.StakingContractMethodNames = {
10
+ DepositAndStake: 'deposit_and_stake',
11
+ };
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vbmVhci9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7R0FJRztBQUNVLFFBQUEsMEJBQTBCLEdBQUc7SUFDeEMsZUFBZSxFQUFFLG1CQUFtQjtDQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGFraW5nIHNtYXJ0IGNvbnRyYWN0IG1ldGhvZCBuYW1lcyBzZWxlY3RlZCB0byB1c2Ugb24gdGhlIGJ1aWxkZXJzLlxuICogWW91IGNhbiBzZWUgYWxsIG1ldGhvZHMgaGVyZVxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmVhci9jb3JlLWNvbnRyYWN0cy9ibG9iL21hc3Rlci9zdGFraW5nLXBvb2wvUkVBRE1FLm1kXG4gKi9cbmV4cG9ydCBjb25zdCBTdGFraW5nQ29udHJhY3RNZXRob2ROYW1lcyA9IHtcbiAgRGVwb3NpdEFuZFN0YWtlOiAnZGVwb3NpdF9hbmRfc3Rha2UnLFxufSBhcyBjb25zdDtcbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { FunctionCall } from './iface';
2
+ /**
3
+ * Contains parameters to call a Near Function Call action
4
+ */
5
+ export declare class ContractCallWrapper {
6
+ private _methodName;
7
+ private _args;
8
+ private _gas;
9
+ private _deposit;
10
+ /** Set method contract name */
11
+ set methodName(methodName: string);
12
+ /** Get method contract name */
13
+ get methodName(): string;
14
+ /** Set gas, expresed on yocto */
15
+ set gas(gas: string);
16
+ /** Get gas, expresed on yocto*/
17
+ get gas(): string;
18
+ /** Set deposit, expresed on yocto */
19
+ set deposit(deposit: string);
20
+ /** Get deposit, expresed on yocto */
21
+ get deposit(): string;
22
+ /** Get args, which are the parameters of a method */
23
+ set args(args: Record<string, unknown>);
24
+ /** Set args, which are the parameters of a method */
25
+ get args(): Record<string, unknown>;
26
+ /**
27
+ * Get all parameters of the contractCallWrapper
28
+ * @returns {FunctionCall}
29
+ */
30
+ getParams(): FunctionCall;
31
+ private isValidAmount;
32
+ }
33
+ //# sourceMappingURL=contractCallWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractCallWrapper.d.ts","sourceRoot":"","sources":["../../../../src/coin/near/contractCallWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAS;IAEzB,+BAA+B;IAC/B,IAAW,UAAU,CAAC,UAAU,EAAE,MAAM,EAEvC;IAED,+BAA+B;IAC/B,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,iCAAiC;IACjC,IAAW,GAAG,CAAC,GAAG,EAAE,MAAM,EAKzB;IAED,gCAAgC;IAChC,IAAW,GAAG,IAAI,MAAM,CAEvB;IAED,qCAAqC;IACrC,IAAW,OAAO,CAAC,OAAO,EAAE,MAAM,EAKjC;IAED,qCAAqC;IACrC,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,qDAAqD;IACrD,IAAW,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE5C;IAED,qDAAqD;IACrD,IAAW,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzC;IAED;;;OAGG;IACH,SAAS,IAAI,YAAY;IASzB,OAAO,CAAC,aAAa;CAGtB"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ContractCallWrapper = void 0;
7
+ var bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ var errors_1 = require("../baseCoin/errors");
9
+ /**
10
+ * Contains parameters to call a Near Function Call action
11
+ */
12
+ var ContractCallWrapper = /** @class */ (function () {
13
+ function ContractCallWrapper() {
14
+ }
15
+ Object.defineProperty(ContractCallWrapper.prototype, "methodName", {
16
+ /** Get method contract name */
17
+ get: function () {
18
+ return this._methodName;
19
+ },
20
+ /** Set method contract name */
21
+ set: function (methodName) {
22
+ this._methodName = methodName;
23
+ },
24
+ enumerable: false,
25
+ configurable: true
26
+ });
27
+ Object.defineProperty(ContractCallWrapper.prototype, "gas", {
28
+ /** Get gas, expresed on yocto*/
29
+ get: function () {
30
+ return this._gas;
31
+ },
32
+ /** Set gas, expresed on yocto */
33
+ set: function (gas) {
34
+ if (!this.isValidAmount(new bignumber_js_1.default(gas))) {
35
+ throw new errors_1.InvalidParameterValueError('Invalid gas value');
36
+ }
37
+ this._gas = gas;
38
+ },
39
+ enumerable: false,
40
+ configurable: true
41
+ });
42
+ Object.defineProperty(ContractCallWrapper.prototype, "deposit", {
43
+ /** Get deposit, expresed on yocto */
44
+ get: function () {
45
+ return this._deposit;
46
+ },
47
+ /** Set deposit, expresed on yocto */
48
+ set: function (deposit) {
49
+ if (!this.isValidAmount(new bignumber_js_1.default(deposit))) {
50
+ throw new errors_1.InvalidParameterValueError('Invalid deposit value');
51
+ }
52
+ this._deposit = deposit;
53
+ },
54
+ enumerable: false,
55
+ configurable: true
56
+ });
57
+ Object.defineProperty(ContractCallWrapper.prototype, "args", {
58
+ /** Set args, which are the parameters of a method */
59
+ get: function () {
60
+ return this._args;
61
+ },
62
+ /** Get args, which are the parameters of a method */
63
+ set: function (args) {
64
+ this._args = args;
65
+ },
66
+ enumerable: false,
67
+ configurable: true
68
+ });
69
+ /**
70
+ * Get all parameters of the contractCallWrapper
71
+ * @returns {FunctionCall}
72
+ */
73
+ ContractCallWrapper.prototype.getParams = function () {
74
+ return {
75
+ methodName: this._methodName,
76
+ args: this._args,
77
+ gas: this._gas,
78
+ deposit: this._deposit,
79
+ };
80
+ };
81
+ ContractCallWrapper.prototype.isValidAmount = function (value) {
82
+ return !value.isLessThan(0);
83
+ };
84
+ return ContractCallWrapper;
85
+ }());
86
+ exports.ContractCallWrapper = ContractCallWrapper;
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RDYWxsV3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL25lYXIvY29udHJhY3RDYWxsV3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4REFBcUM7QUFDckMsNkNBQWdFO0FBR2hFOztHQUVHO0FBQ0g7SUFBQTtJQW9FQSxDQUFDO0lBN0RDLHNCQUFXLDJDQUFVO1FBSXJCLCtCQUErQjthQUMvQjtZQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBUkQsK0JBQStCO2FBQy9CLFVBQXNCLFVBQWtCO1lBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQ2hDLENBQUM7OztPQUFBO0lBUUQsc0JBQVcsb0NBQUc7UUFPZCxnQ0FBZ0M7YUFDaEM7WUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsQ0FBQztRQVhELGlDQUFpQzthQUNqQyxVQUFlLEdBQVc7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxzQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sSUFBSSxtQ0FBMEIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQzNEO1lBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDbEIsQ0FBQzs7O09BQUE7SUFRRCxzQkFBVyx3Q0FBTztRQU9sQixxQ0FBcUM7YUFDckM7WUFDRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQztRQVhELHFDQUFxQzthQUNyQyxVQUFtQixPQUFlO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO2dCQUMvQyxNQUFNLElBQUksbUNBQTBCLENBQUMsdUJBQXVCLENBQUMsQ0FBQzthQUMvRDtZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQzFCLENBQUM7OztPQUFBO0lBUUQsc0JBQVcscUNBQUk7UUFJZixxREFBcUQ7YUFDckQ7WUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEIsQ0FBQztRQVJELHFEQUFxRDthQUNyRCxVQUFnQixJQUE2QjtZQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDOzs7T0FBQTtJQU9EOzs7T0FHRztJQUNILHVDQUFTLEdBQVQ7UUFDRSxPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzVCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTywyQ0FBYSxHQUFyQixVQUFzQixLQUFnQjtRQUNwQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0gsMEJBQUM7QUFBRCxDQUFDLEFBcEVELElBb0VDO0FBcEVZLGtEQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7IEZ1bmN0aW9uQ2FsbCB9IGZyb20gJy4vaWZhY2UnO1xuXG4vKipcbiAqIENvbnRhaW5zIHBhcmFtZXRlcnMgdG8gY2FsbCBhIE5lYXIgRnVuY3Rpb24gQ2FsbCBhY3Rpb25cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRyYWN0Q2FsbFdyYXBwZXIge1xuICBwcml2YXRlIF9tZXRob2ROYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX2FyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBwcml2YXRlIF9nYXM6IHN0cmluZztcbiAgcHJpdmF0ZSBfZGVwb3NpdDogc3RyaW5nO1xuXG4gIC8qKiBTZXQgbWV0aG9kIGNvbnRyYWN0IG5hbWUgKi9cbiAgcHVibGljIHNldCBtZXRob2ROYW1lKG1ldGhvZE5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuX21ldGhvZE5hbWUgPSBtZXRob2ROYW1lO1xuICB9XG5cbiAgLyoqIEdldCBtZXRob2QgY29udHJhY3QgbmFtZSAqL1xuICBwdWJsaWMgZ2V0IG1ldGhvZE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbWV0aG9kTmFtZTtcbiAgfVxuXG4gIC8qKiBTZXQgZ2FzLCBleHByZXNlZCBvbiB5b2N0byAqL1xuICBwdWJsaWMgc2V0IGdhcyhnYXM6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkQW1vdW50KG5ldyBCaWdOdW1iZXIoZ2FzKSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBnYXMgdmFsdWUnKTtcbiAgICB9XG4gICAgdGhpcy5fZ2FzID0gZ2FzO1xuICB9XG5cbiAgLyoqIEdldCBnYXMsIGV4cHJlc2VkIG9uIHlvY3RvKi9cbiAgcHVibGljIGdldCBnYXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZ2FzO1xuICB9XG5cbiAgLyoqIFNldCBkZXBvc2l0LCBleHByZXNlZCBvbiB5b2N0byAqL1xuICBwdWJsaWMgc2V0IGRlcG9zaXQoZGVwb3NpdDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRBbW91bnQobmV3IEJpZ051bWJlcihkZXBvc2l0KSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBkZXBvc2l0IHZhbHVlJyk7XG4gICAgfVxuICAgIHRoaXMuX2RlcG9zaXQgPSBkZXBvc2l0O1xuICB9XG5cbiAgLyoqIEdldCBkZXBvc2l0LCBleHByZXNlZCBvbiB5b2N0byAqL1xuICBwdWJsaWMgZ2V0IGRlcG9zaXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZGVwb3NpdDtcbiAgfVxuXG4gIC8qKiBHZXQgYXJncywgd2hpY2ggYXJlIHRoZSBwYXJhbWV0ZXJzIG9mIGEgbWV0aG9kICovXG4gIHB1YmxpYyBzZXQgYXJncyhhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgIHRoaXMuX2FyZ3MgPSBhcmdzO1xuICB9XG5cbiAgLyoqIFNldCBhcmdzLCB3aGljaCBhcmUgdGhlIHBhcmFtZXRlcnMgb2YgYSBtZXRob2QgKi9cbiAgcHVibGljIGdldCBhcmdzKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5fYXJncztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHBhcmFtZXRlcnMgb2YgdGhlIGNvbnRyYWN0Q2FsbFdyYXBwZXJcbiAgICogQHJldHVybnMge0Z1bmN0aW9uQ2FsbH1cbiAgICovXG4gIGdldFBhcmFtcygpOiBGdW5jdGlvbkNhbGwge1xuICAgIHJldHVybiB7XG4gICAgICBtZXRob2ROYW1lOiB0aGlzLl9tZXRob2ROYW1lLFxuICAgICAgYXJnczogdGhpcy5fYXJncyxcbiAgICAgIGdhczogdGhpcy5fZ2FzLFxuICAgICAgZGVwb3NpdDogdGhpcy5fZGVwb3NpdCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkQW1vdW50KHZhbHVlOiBCaWdOdW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXZhbHVlLmlzTGVzc1RoYW4oMCk7XG4gIH1cbn1cbiJdfQ==
@@ -14,8 +14,20 @@ export interface Signature {
14
14
  export interface Transfer {
15
15
  deposit: BN;
16
16
  }
17
+ /** Interface with parameters needed to perform FunctionCall to a contract */
18
+ export interface FunctionCall {
19
+ methodName: string;
20
+ args: Record<string, unknown>;
21
+ gas: string;
22
+ deposit: string;
23
+ }
24
+ /**
25
+ * Actions implemented on Near account-lib
26
+ * add here as more are implemented.
27
+ */
17
28
  export interface Action {
18
- transfer: Transfer;
29
+ transfer?: Transfer;
30
+ functionCall?: FunctionCall;
19
31
  }
20
32
  export interface TxData {
21
33
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../src/coin/near/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAEzF,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,oBAAY,OAAO;IACjB,OAAO,IAAI;CACZ;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,EAAE,CAAC;CACb;AAED,MAAM,WAAW,MAAM;IAErB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB"}
1
+ {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../src/coin/near/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAEzF,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,oBAAY,OAAO;IACjB,OAAO,IAAI;CACZ;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,EAAE,CAAC;CACb;AAED,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB"}
@@ -5,4 +5,4 @@ var KeyType;
5
5
  (function (KeyType) {
6
6
  KeyType[KeyType["ED25519"] = 0] = "ED25519";
7
7
  })(KeyType = exports.KeyType || (exports.KeyType = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9uZWFyL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLElBQVksT0FFWDtBQUZELFdBQVksT0FBTztJQUNqQiwyQ0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUZXLE9BQU8sR0FBUCxlQUFPLEtBQVAsZUFBTyxRQUVsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCTiBmcm9tICdibi5qcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIH0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbn1cblxuZXhwb3J0IGVudW0gS2V5VHlwZSB7XG4gIEVEMjU1MTkgPSAwLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIGtleVR5cGU6IEtleVR5cGU7XG4gIGRhdGE6IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmZXIge1xuICBkZXBvc2l0OiBCTjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xuICAvLyBUT0RPOiBhZGQgYWN0aW9ucyB3aGVuIHRoZXkgYXJlIGltcGxlbWVudGVkXG4gIHRyYW5zZmVyOiBUcmFuc2Zlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZD86IHN0cmluZztcbiAgc2lnbmVySWQ6IHN0cmluZztcbiAgcHVibGljS2V5OiBzdHJpbmc7XG4gIG5vbmNlOiBudW1iZXI7XG4gIHJlY2VpdmVySWQ6IHN0cmluZztcbiAgYWN0aW9uczogQWN0aW9uW107XG4gIHNpZ25hdHVyZT86IFNpZ25hdHVyZTtcbn1cbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9uZWFyL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLElBQVksT0FFWDtBQUZELFdBQVksT0FBTztJQUNqQiwyQ0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUZXLE9BQU8sR0FBUCxlQUFPLEtBQVAsZUFBTyxRQUVsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCTiBmcm9tICdibi5qcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIH0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbn1cblxuZXhwb3J0IGVudW0gS2V5VHlwZSB7XG4gIEVEMjU1MTkgPSAwLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZSB7XG4gIGtleVR5cGU6IEtleVR5cGU7XG4gIGRhdGE6IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmZXIge1xuICBkZXBvc2l0OiBCTjtcbn1cblxuLyoqIEludGVyZmFjZSB3aXRoIHBhcmFtZXRlcnMgbmVlZGVkIHRvIHBlcmZvcm0gIEZ1bmN0aW9uQ2FsbCB0byBhIGNvbnRyYWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uQ2FsbCB7XG4gIG1ldGhvZE5hbWU6IHN0cmluZztcbiAgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGdhczogc3RyaW5nO1xuICBkZXBvc2l0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQWN0aW9ucyBpbXBsZW1lbnRlZCBvbiBOZWFyIGFjY291bnQtbGliXG4gKiBhZGQgaGVyZSBhcyBtb3JlIGFyZSBpbXBsZW1lbnRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xuICB0cmFuc2Zlcj86IFRyYW5zZmVyO1xuICBmdW5jdGlvbkNhbGw/OiBGdW5jdGlvbkNhbGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHhEYXRhIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHNpZ25lcklkOiBzdHJpbmc7XG4gIHB1YmxpY0tleTogc3RyaW5nO1xuICBub25jZTogbnVtYmVyO1xuICByZWNlaXZlcklkOiBzdHJpbmc7XG4gIGFjdGlvbnM6IEFjdGlvbltdO1xuICBzaWduYXR1cmU/OiBTaWduYXR1cmU7XG59XG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ import { TransactionType } from '../baseCoin';
3
+ import { Transaction } from './transaction';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ export declare class StakingActivateBuilder extends TransactionBuilder {
6
+ private contractCallWrapper;
7
+ constructor(_coinConfig: Readonly<CoinConfig>);
8
+ protected get transactionType(): TransactionType;
9
+ /**
10
+ * Initialize the transaction builder fields using the decoded transaction data
11
+ *
12
+ * @param {Transaction} tx the transaction data
13
+ */
14
+ initBuilder(tx: Transaction): void;
15
+ /**
16
+ * Sets the gas of this transaction.
17
+ *
18
+ * @param {string} value the gas of this transaction
19
+ * @returns {TransactionBuilder} This transaction builder
20
+ */
21
+ gas(gas: string): this;
22
+ /**
23
+ * Sets the amount of this transaction.
24
+ *
25
+ * @param {string} value the amount in the minimum unit (yocto) of this transaction
26
+ * @returns {TransactionBuilder} This transaction builder
27
+ */
28
+ amount(amount: string): this;
29
+ /** @inheritdoc */
30
+ protected buildImplementation(): Promise<Transaction>;
31
+ }
32
+ //# sourceMappingURL=stakingActivateBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingActivateBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/near/stakingActivateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,OAAO,CAAC,mBAAmB,CAAC;gBAEhB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAO7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAOlC;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM7B;;;;;OAKG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOnC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAU5D"}