@coinflowlabs/angular 0.0.5-sandbox2 → 0.0.5

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.
@@ -1,5 +1,6 @@
1
1
  import { CoinflowUtils } from './CoinflowUtils';
2
- import { web3, base58 } from './SolanaPeerDeps';
2
+ import * as web3 from '@solana/web3.js';
3
+ import base58 from 'bs58';
3
4
  var IFrameMessageMethods;
4
5
  (function (IFrameMessageMethods) {
5
6
  IFrameMessageMethods["SignMessage"] = "signMessage";
@@ -70,8 +71,6 @@ function getSolanaWalletHandlers({ wallet, }) {
70
71
  throw new Error('signMessage is not supported by this wallet');
71
72
  }
72
73
  const signedMessage = await signMessage(new TextEncoder().encode(message));
73
- if (!base58)
74
- throw new Error('bs58 dependency is required');
75
74
  return base58.encode(signedMessage);
76
75
  },
77
76
  handleSignTransaction: async (transaction) => {
@@ -81,8 +80,6 @@ function getSolanaWalletHandlers({ wallet, }) {
81
80
  }
82
81
  const tx = getSolanaTransaction(transaction);
83
82
  const signedTransaction = await signTransaction(tx);
84
- if (!base58)
85
- throw new Error('bs58 dependency is required');
86
83
  return base58.encode(signedTransaction.serialize({
87
84
  requireAllSignatures: false,
88
85
  verifySignatures: false,
@@ -127,4 +124,4 @@ function getEvmWalletHandlers({ wallet, }) {
127
124
  },
128
125
  };
129
126
  }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jb21tb24vQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE9BQU8sRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFXOUMsSUFBSyxvQkFLSjtBQUxELFdBQUssb0JBQW9CO0lBQ3ZCLG1EQUEyQixDQUFBO0lBQzNCLDJEQUFtQyxDQUFBO0lBQ25DLDJEQUFtQyxDQUFBO0lBQ25DLHFEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFMSSxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBS3hCO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxFQUM5QixNQUFNLEdBQ2dDO0lBQ3RDLElBQUksV0FBVyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzFCLE9BQU8sTUFBTSxDQUFDLFNBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxTQUFTLElBQUksTUFBTSxFQUFFLENBQUM7UUFDeEIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFdBQVcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMxQixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsVUFBa0IsRUFDbEIsUUFBK0I7SUFFL0IsSUFBSSxVQUFzQixDQUFDO0lBQzNCLElBQUksQ0FBQztRQUNILFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxD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TyxDQUFDLENBQUM7UUFDeEMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29pbmZsb3dQdXJjaGFzZVByb3BzLFxuICBFdGhXYWxsZXQsXG4gIE5lYXJXYWxsZXQsXG4gIFNvbGFuYVdhbGxldCxcbn0gZnJvbSAnLi9Db2luZmxvd1R5cGVzJztcbmltcG9ydCB7Q29pbmZsb3dVdGlsc30gZnJvbSAnLi9Db2luZmxvd1V0aWxzJztcbmltcG9ydCB0eXBlIHtUcmFuc2FjdGlvbiwgVmVyc2lvbmVkVHJhbnNhY3Rpb259IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQge3dlYjMsIGJhc2U1OH0gZnJvbSAnLi9Tb2xhbmFQZWVyRGVwcyc7XG5cbmV4cG9ydCB0eXBlIFdhbGxldENhbGwgPSB7bWV0aG9kOiBJRnJhbWVNZXNzYWdlTWV0aG9kczsgZGF0YTogc3RyaW5nfTtcblxuZXhwb3J0IGludGVyZmFjZSBJRnJhbWVNZXNzYWdlSGFuZGxlcnMge1xuICBoYW5kbGVTZW5kVHJhbnNhY3Rpb246ICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XG4gIGhhbmRsZVNpZ25NZXNzYWdlPzogKG1lc3NhZ2U6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBoYW5kbGVTaWduVHJhbnNhY3Rpb24/OiAodHJhbnNhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBoYW5kbGVIZWlnaHRDaGFuZ2U/OiAoaGVpZ2h0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmVudW0gSUZyYW1lTWVzc2FnZU1ldGhvZHMge1xuICBTaWduTWVzc2FnZSA9ICdzaWduTWVzc2FnZScsXG4gIFNpZ25UcmFuc2FjdGlvbiA9ICdzaWduVHJhbnNhY3Rpb24nLFxuICBTZW5kVHJhbnNhY3Rpb24gPSAnc2VuZFRyYW5zYWN0aW9uJyxcbiAgSGVpZ2h0Q2hhbmdlID0gJ2hlaWdodENoYW5nZScsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXYWxsZXRQdWJrZXkoe1xuICB3YWxsZXQsXG59OiBQaWNrPENvaW5mbG93UHVyY2hhc2VQcm9wcywgJ3dhbGxldCc+KTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gIGlmICgncHVibGljS2V5JyBpbiB3YWxsZXQpIHtcbiAgICByZXR1cm4gd2FsbGV0LnB1YmxpY0tleSEudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGlmICgnYWRkcmVzcycgaW4gd2FsbGV0KSB7XG4gICAgcmV0dXJuIHdhbGxldC5hZGRyZXNzO1xuICB9XG5cbiAgaWYgKCdhY2NvdW50SWQnIGluIHdhbGxldCkge1xuICAgIHJldHVybiB3YWxsZXQuYWNjb3VudElkO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVJRnJhbWVNZXNzYWdlKFxuICByYXdNZXNzYWdlOiBzdHJpbmcsXG4gIGhhbmRsZXJzOiBJRnJhbWVNZXNzYWdlSGFuZGxlcnNcbik6IFByb21pc2U8c3RyaW5nPiB8IHZvaWQge1xuICBsZXQgd2FsbGV0Q2FsbDogV2FsbGV0Q2FsbDtcbiAgdHJ5IHtcbiAgICB3YWxsZXRDYWxsID0gSlNPTi5wYXJzZShyYXdNZXNzYWdlKTtcbiAgICBpZiAoISgnbWV0aG9kJyBpbiB3YWxsZXRDYWxsKSB8fCAhKCdkYXRhJyBpbiB3YWxsZXRDYWxsKSkgcmV0dXJuO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignaGFuZGxlSUZyYW1lTWVzc2FnZSBKU09OIHBhcnNlJywgZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qge2RhdGEsIG1ldGhvZH0gPSB3YWxsZXRDYWxsO1xuICBzd2l0Y2ggKG1ldGhvZCkge1xuICAgIGNhc2UgSUZyYW1lTWVzc2FnZU1ldGhvZHMuU2lnbk1lc3NhZ2U6XG4gICAgICBpZiAoIWhhbmRsZXJzLmhhbmRsZVNpZ25NZXNzYWdlKSByZXR1cm47XG4gICAgICByZXR1cm4gaGFuZGxlcnMuaGFuZGxlU2lnbk1lc3NhZ2UoZGF0YSk7XG4gICAgY2FzZSBJRnJhbWVNZXNzYWdlTWV0aG9kcy5TaWduVHJhbnNhY3Rpb246XG4gICAgICBpZiAoIWhhbmRsZXJzLmhhbmRsZVNpZ25UcmFuc2FjdGlvbikgcmV0dXJuO1xuICAgICAgcmV0dXJuIGhhbmRsZXJzLmhhbmRsZVNpZ25UcmFuc2FjdGlvbihkYXRhKTtcbiAgICBjYXNlIElGcmFtZU1lc3NhZ2VNZXRob2RzLlNlbmRUcmFuc2FjdGlvbjpcbiAgICAgIHJldHVybiBoYW5kbGVycy5oYW5kbGVTZW5kVHJhbnNhY3Rpb24oZGF0YSk7XG4gICAgY2FzZSBJRnJhbWVNZXNzYWdlTWV0aG9kcy5IZWlnaHRDaGFuZ2U6XG4gICAgICBpZiAoIWhhbmRsZXJzLmhhbmRsZUhlaWdodENoYW5nZSkgcmV0dXJuO1xuICAgICAgcmV0dXJuIGhhbmRsZXJzLmhhbmRsZUhlaWdodENoYW5nZShkYXRhKTtcbiAgfVxuXG4gIGNvbnNvbGUud2FybihcbiAgICBgRGlkbid0IGV4cGVjdCB0byBnZXQgaGVyZSwgaGFuZGxlSUZyYW1lTWVzc2FnZSBtZXRob2Q6JHttZXRob2R9IGlzIG5vdCBvbmUgb2YgJHtPYmplY3QudmFsdWVzKElGcmFtZU1lc3NhZ2VNZXRob2RzKX1gXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIYW5kbGVycyh7XG4gIHdhbGxldCxcbiAgYmxvY2tjaGFpbixcbn06IFBpY2s8Q29pbmZsb3dQdXJjaGFzZVByb3BzLCAnd2FsbGV0JyB8ICdibG9ja2NoYWluJz4pOiBPbWl0PFxuICBJRnJhbWVNZXNzYWdlSGFuZGxlcnMsXG4gICdoYW5kbGVIZWlnaHRDaGFuZ2UnXG4+IHtcbiAgcmV0dXJuIENvaW5mbG93VXRpbHMuYnlCbG9ja2NoYWluKGJsb2NrY2hhaW4sIHtcbiAgICBzb2xhbmE6ICgpID0+IGdldFNvbGFuYVdhbGxldEhhbmRsZXJzKHt3YWxsZXR9KSxcbiAgICBuZWFyOiAoKSA9PiBnZXROZWFyV2FsbGV0SGFuZGxlcnMoe3dhbGxldH0pLFxuICAgIGV0aDogKCkgPT4gZ2V0RXZtV2FsbGV0SGFuZGxlcnMoe3dhbGxldH0pLFxuICAgIHBvbHlnb246ICgpID0+IGdldEV2bVdhbGxldEhhbmRsZXJzKHt3YWxsZXR9KSxcbiAgICBiYXNlOiAoKSA9PiBnZXRFdm1XYWxsZXRIYW5kbGVycyh7d2FsbGV0fSksXG4gIH0pKCk7XG59XG5cbmZ1bmN0aW9uIGdldFNvbGFuYVdhbGxldEhhbmRsZXJzKHtcbiAgd2FsbGV0LFxufTogUGljazxDb2luZmxvd1B1cmNoYXNlUHJvcHMsICd3YWxsZXQnPik6IE9taXQ8XG4gIElGcmFtZU1lc3NhZ2VIYW5kbGVycyxcbiAgJ2hhbmRsZUhlaWdodENoYW5nZSdcbj4ge1xuICByZXR1cm4ge1xuICAgIGhhbmRsZVNlbmRUcmFuc2FjdGlvbjogYXN5bmMgKHRyYW5zYWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHR4ID0gZ2V0U29sYW5hVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xuICAgICAgcmV0dXJuICh3YWxsZXQgYXMgU29sYW5hV2FsbGV0KS5zZW5kVHJhbnNhY3Rpb24odHgpO1xuICAgIH0sXG4gICAgaGFuZGxlU2lnbk1lc3NhZ2U6IGFzeW5jIChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHNpZ25NZXNzYWdlID0gKHdhbGxldCBhcyBTb2xhbmFXYWxsZXQpLnNpZ25NZXNzYWdlO1xuICAgICAgaWYgKCFzaWduTWVzc2FnZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NpZ25NZXNzYWdlIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyB3YWxsZXQnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IGF3YWl0IHNpZ25NZXNzYWdlKFxuICAgICAgICBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUobWVzc2FnZSlcbiAgICAgICk7XG4gICAgICBpZiAoIWJhc2U1OCkgdGhyb3cgbmV3IEVycm9yKCdiczU4IGRlcGVuZGVuY3kgaXMgcmVxdWlyZWQnKTtcbiAgICAgIHJldHVybiBiYXNlNTguZW5jb2RlKHNpZ25lZE1lc3NhZ2UpO1xuICAgIH0sXG4gICAgaGFuZGxlU2lnblRyYW5zYWN0aW9uOiBhc3luYyAodHJhbnNhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc2lnblRyYW5zYWN0aW9uID0gKHdhbGxldCBhcyBTb2xhbmFXYWxsZXQpLnNpZ25UcmFuc2FjdGlvbjtcbiAgICAgIGlmICghc2lnblRyYW5zYWN0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignc2lnblRyYW5zYWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyB3YWxsZXQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHR4ID0gZ2V0U29sYW5hVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xuICAgICAgY29uc3Qgc2lnbmVkVHJhbnNhY3Rpb24gPSBhd2FpdCBzaWduVHJhbnNhY3Rpb24odHgpO1xuICAgICAgaWYgKCFiYXNlNTgpIHRocm93IG5ldyBFcnJvcignYnM1OCBkZXBlbmRlbmN5IGlzIHJlcXVpcmVkJyk7XG4gICAgICByZXR1cm4gYmFzZTU4LmVuY29kZShcbiAgICAgICAgc2lnbmVkVHJhbnNhY3Rpb24uc2VyaWFsaXplKHtcbiAgICAgICAgICByZXF1aXJlQWxsU2lnbmF0dXJlczogZmFsc2UsXG4gICAgICAgICAgdmVyaWZ5U2lnbmF0dXJlczogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFNvbGFuYVRyYW5zYWN0aW9uKFxuICBkYXRhOiBzdHJpbmdcbik6IFRyYW5zYWN0aW9uIHwgVmVyc2lvbmVkVHJhbnNhY3Rpb24ge1xuICBpZiAoIXdlYjMpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Bzb2xhbmEvd2ViMy5qcyBpcyBub3QgZGVmaW5lZC4gUGxlYXNlIGluc3RhbGwgQHNvbGFuYS93ZWIzLmpzIGludG8geW91ciBwcm9qZWN0J1xuICAgICk7XG5cbiAgaWYgKCFiYXNlNTgpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ2JzNTggaXMgbm90IGRlZmluZWQuIFBsZWFzZSBpbnN0YWxsIGJzNTggaW50byB5b3VyIHByb2plY3QnXG4gICAgKTtcblxuICBjb25zdCBwYXJzZWRVSW50OEFycmF5ID0gYmFzZTU4LmRlY29kZShkYXRhKTtcbiAgY29uc3QgdnR4ID0gd2ViMy5WZXJzaW9uZWRUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZShwYXJzZWRVSW50OEFycmF5KTtcbiAgaWYgKHZ0eC52ZXJzaW9uID09PSAnbGVnYWN5JykgcmV0dXJuIHdlYjMuVHJhbnNhY3Rpb24uZnJvbShwYXJzZWRVSW50OEFycmF5KTtcbiAgcmV0dXJuIHZ0eDtcbn1cblxuZnVuY3Rpb24gZ2V0TmVhcldhbGxldEhhbmRsZXJzKHtcbiAgd2FsbGV0LFxufTogUGljazxDb2luZmxvd1B1cmNoYXNlUHJvcHMsICd3YWxsZXQnPik6IE9taXQ8XG4gIElGcmFtZU1lc3NhZ2VIYW5kbGVycyxcbiAgJ2hhbmRsZUhlaWdodENoYW5nZSdcbj4ge1xuICBjb25zdCBuZWFyV2FsbGV0ID0gd2FsbGV0IGFzIE5lYXJXYWxsZXQ7XG4gIHJldHVybiB7XG4gICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiBhc3luYyAodHJhbnNhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgYWN0aW9uID0gSlNPTi5wYXJzZShCdWZmZXIuZnJvbSh0cmFuc2FjdGlvbiwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCkpO1xuICAgICAgY29uc3QgZXhlY3V0aW9uT3V0Y29tZSA9IGF3YWl0IG5lYXJXYWxsZXQuc2lnbkFuZFNlbmRUcmFuc2FjdGlvbihhY3Rpb24pO1xuICAgICAgaWYgKCFleGVjdXRpb25PdXRjb21lKSB0aHJvdyBuZXcgRXJyb3IoJ1RyYW5zYWN0aW9uIGRpZCBub3Qgc2VuZCcpO1xuICAgICAgY29uc3Qge3RyYW5zYWN0aW9uOiB0cmFuc2FjdGlvblJlc3VsdH0gPSBleGVjdXRpb25PdXRjb21lO1xuICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uUmVzdWx0Lmhhc2g7XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RXZtV2FsbGV0SGFuZGxlcnMoe1xuICB3YWxsZXQsXG59OiBQaWNrPENvaW5mbG93UHVyY2hhc2VQcm9wcywgJ3dhbGxldCc+KTogT21pdDxcbiAgSUZyYW1lTWVzc2FnZUhhbmRsZXJzLFxuICAnaGFuZGxlSGVpZ2h0Q2hhbmdlJ1xuPiB7XG4gIGNvbnN0IGV2bVdhbGxldCA9IHdhbGxldCBhcyBFdGhXYWxsZXQ7XG4gIHJldHVybiB7XG4gICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiBhc3luYyAodHJhbnNhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdHggPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHRyYW5zYWN0aW9uLCAnYmFzZTY0JykudG9TdHJpbmcoKSk7XG4gICAgICBjb25zdCB7aGFzaH0gPSBhd2FpdCBldm1XYWxsZXQuc2VuZFRyYW5zYWN0aW9uKHR4KTtcbiAgICAgIHJldHVybiBoYXNoO1xuICAgIH0sXG4gICAgaGFuZGxlU2lnbk1lc3NhZ2U6IGFzeW5jIChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBldm1XYWxsZXQuc2lnbk1lc3NhZ2UobWVzc2FnZSk7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jb21tb24vQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE9BQU8sS0FBSyxJQUFJLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxNQUFNLE1BQU0sTUFBTSxDQUFDO0FBVzFCLElBQUssb0JBS0o7QUFMRCxXQUFLLG9CQUFvQjtJQUN2QixtREFBMkIsQ0FBQTtJQUMzQiwyREFBbUMsQ0FBQTtJQUNuQywyREFBbUMsQ0FBQTtJQUNuQyxxREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBTEksb0JBQW9CLEtBQXBCLG9CQUFvQixRQUt4QjtBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsRUFDOUIsTUFBTSxHQUNnQztJQUN0QyxJQUFJLFdBQVcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMxQixPQUFPLE1BQU0sQ0FBQyxTQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksU0FBUyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxXQUFXLElBQUksTUFBTSxFQUFFLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFVBQWtCLEVBQ2xCLFFBQStCO0lBRS9CLElBQUksVUFBc0IsQ0FBQztJQUMzQixJQUFJLENBQUM7UUFDSCxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUM7WUFBRSxPQUFPO0lBQ25FLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLEdBQUcsVUFBVSxDQUFDO0lBQ2xDLFFBQVEsTUFBTSxFQUFFLENBQUM7UUFDZixLQUFLLG9CQUFvQixDQUFDLFdBQVc7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7Z0JBQUUsT0FBTztZQUN4QyxPQUFPLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxLQUFLLG9CQUFvQixDQUFDLGVBQWU7WUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUI7Z0JBQUUsT0FBTztZQUM1QyxPQUFPLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxLQUFLLG9CQUFvQixDQUFDLGVBQWU7WUFDdkMsT0FBTyxRQUFRLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsS0FBSyxvQkFBb0IsQ0FBQyxZQUFZO1lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCO2dCQUFFLE9BQU87WUFDekMsT0FBTyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFJLENBQ1YseURBQXlELE1BQU0sa0JBQWtCLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUN2SCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsRUFDMUIsTUFBTSxFQUNOLFVBQVUsR0FDMkM7SUFJckQsT0FBTyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRTtRQUM1QyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQztRQUMvQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQztRQUMzQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQztRQUN6QyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQztRQUM3QyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQztLQUMzQyxDQUFDLEVBQUUsQ0FBQztBQUNQLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLEVBQy9CLE1BQU0sR0FDZ0M7SUFJdEMsT0FBTztRQUNMLHFCQUFxQixFQUFFLEtBQUssRUFBRSxXQUFtQixFQUFFLEVBQUU7WUFDbkQsTUFBTSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0MsT0FBUSxNQUF1QixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE9BQWUsRUFBRSxFQUFFO1lBQzNDLE1BQU0sV0FBVyxHQUFJLE1BQXVCLENBQUMsV0FBVyxDQUFDO1lBQ3pELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7WUFFRCxNQUFNLGFBQWEsR0FBRyxNQUFNLFdBQVcsQ0FDckMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQ2xDLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELHFCQUFxQixFQUFFLEtBQUssRUFBRSxXQUFtQixFQUFFLEVBQUU7WUFDbkQsTUFBTSxlQUFlLEdBQUksTUFBdUIsQ0FBQyxlQUFlLENBQUM7WUFDakUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7WUFDckUsQ0FBQztZQUNELE1BQU0sRUFBRSxHQUFHLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUNsQixpQkFBaUIsQ0FBQyxTQUFTLENBQUM7Z0JBQzFCLG9CQUFvQixFQUFFLEtBQUs7Z0JBQzNCLGdCQUFnQixFQUFFLEtBQUs7YUFDeEIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUMzQixJQUFZO0lBRVosSUFBSSxDQUFDLElBQUk7UUFDUCxNQUFNLElBQUksS0FBSyxDQUNiLGtGQUFrRixDQUNuRixDQUFDO0lBRUosSUFBSSxDQUFDLE1BQU07UUFDVCxNQUFNLElBQUksS0FBSyxDQUNiLDREQUE0RCxDQUM3RCxDQUFDO0lBRUosTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUFFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RSxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLEVBQzdCLE1BQU0sR0FDZ0M7SUFJdEMsTUFBTSxVQUFVLEdBQUcsTUFBb0IsQ0FBQztJQUN4QyxPQUFPO1FBQ0wscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFdBQW1CLEVBQUUsRUFBRTtZQUNuRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDekUsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsZ0JBQWdCO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUNuRSxNQUFNLEVBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFDLEdBQUcsZ0JBQWdCLENBQUM7WUFDMUQsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7UUFDaEMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxFQUM1QixNQUFNLEdBQ2dDO0lBSXRDLE1BQU0sU0FBUyxHQUFHLE1BQW1CLENBQUM7SUFDdEMsT0FBTztRQUNMLHFCQUFxQixFQUFFLEtBQUssRUFBRSxXQUFtQixFQUFFLEVBQUU7WUFDbkQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxNQUFNLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE9BQWUsRUFBRSxFQUFFO1lBQzNDLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb2luZmxvd1B1cmNoYXNlUHJvcHMsXG4gIEV0aFdhbGxldCxcbiAgTmVhcldhbGxldCxcbiAgU29sYW5hV2FsbGV0LFxufSBmcm9tICcuL0NvaW5mbG93VHlwZXMnO1xuaW1wb3J0IHtDb2luZmxvd1V0aWxzfSBmcm9tICcuL0NvaW5mbG93VXRpbHMnO1xuaW1wb3J0IHtUcmFuc2FjdGlvbiwgVmVyc2lvbmVkVHJhbnNhY3Rpb259IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQgKiBhcyB3ZWIzIGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQgYmFzZTU4IGZyb20gJ2JzNTgnO1xuXG5leHBvcnQgdHlwZSBXYWxsZXRDYWxsID0ge21ldGhvZDogSUZyYW1lTWVzc2FnZU1ldGhvZHM7IGRhdGE6IHN0cmluZ307XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZyYW1lTWVzc2FnZUhhbmRsZXJzIHtcbiAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiAodHJhbnNhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBoYW5kbGVTaWduTWVzc2FnZT86IChtZXNzYWdlOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgaGFuZGxlU2lnblRyYW5zYWN0aW9uPzogKHRyYW5zYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgaGFuZGxlSGVpZ2h0Q2hhbmdlPzogKGhlaWdodDogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5lbnVtIElGcmFtZU1lc3NhZ2VNZXRob2RzIHtcbiAgU2lnbk1lc3NhZ2UgPSAnc2lnbk1lc3NhZ2UnLFxuICBTaWduVHJhbnNhY3Rpb24gPSAnc2lnblRyYW5zYWN0aW9uJyxcbiAgU2VuZFRyYW5zYWN0aW9uID0gJ3NlbmRUcmFuc2FjdGlvbicsXG4gIEhlaWdodENoYW5nZSA9ICdoZWlnaHRDaGFuZ2UnLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0UHVia2V5KHtcbiAgd2FsbGV0LFxufTogUGljazxDb2luZmxvd1B1cmNoYXNlUHJvcHMsICd3YWxsZXQnPik6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQge1xuICBpZiAoJ3B1YmxpY0tleScgaW4gd2FsbGV0KSB7XG4gICAgcmV0dXJuIHdhbGxldC5wdWJsaWNLZXkhLnRvU3RyaW5nKCk7XG4gIH1cblxuICBpZiAoJ2FkZHJlc3MnIGluIHdhbGxldCkge1xuICAgIHJldHVybiB3YWxsZXQuYWRkcmVzcztcbiAgfVxuXG4gIGlmICgnYWNjb3VudElkJyBpbiB3YWxsZXQpIHtcbiAgICByZXR1cm4gd2FsbGV0LmFjY291bnRJZDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlSUZyYW1lTWVzc2FnZShcbiAgcmF3TWVzc2FnZTogc3RyaW5nLFxuICBoYW5kbGVyczogSUZyYW1lTWVzc2FnZUhhbmRsZXJzXG4pOiBQcm9taXNlPHN0cmluZz4gfCB2b2lkIHtcbiAgbGV0IHdhbGxldENhbGw6IFdhbGxldENhbGw7XG4gIHRyeSB7XG4gICAgd2FsbGV0Q2FsbCA9IEpTT04ucGFyc2UocmF3TWVzc2FnZSk7XG4gICAgaWYgKCEoJ21ldGhvZCcgaW4gd2FsbGV0Q2FsbCkgfHwgISgnZGF0YScgaW4gd2FsbGV0Q2FsbCkpIHJldHVybjtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ2hhbmRsZUlGcmFtZU1lc3NhZ2UgSlNPTiBwYXJzZScsIGUpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHtkYXRhLCBtZXRob2R9ID0gd2FsbGV0Q2FsbDtcbiAgc3dpdGNoIChtZXRob2QpIHtcbiAgICBjYXNlIElGcmFtZU1lc3NhZ2VNZXRob2RzLlNpZ25NZXNzYWdlOlxuICAgICAgaWYgKCFoYW5kbGVycy5oYW5kbGVTaWduTWVzc2FnZSkgcmV0dXJuO1xuICAgICAgcmV0dXJuIGhhbmRsZXJzLmhhbmRsZVNpZ25NZXNzYWdlKGRhdGEpO1xuICAgIGNhc2UgSUZyYW1lTWVzc2FnZU1ldGhvZHMuU2lnblRyYW5zYWN0aW9uOlxuICAgICAgaWYgKCFoYW5kbGVycy5oYW5kbGVTaWduVHJhbnNhY3Rpb24pIHJldHVybjtcbiAgICAgIHJldHVybiBoYW5kbGVycy5oYW5kbGVTaWduVHJhbnNhY3Rpb24oZGF0YSk7XG4gICAgY2FzZSBJRnJhbWVNZXNzYWdlTWV0aG9kcy5TZW5kVHJhbnNhY3Rpb246XG4gICAgICByZXR1cm4gaGFuZGxlcnMuaGFuZGxlU2VuZFRyYW5zYWN0aW9uKGRhdGEpO1xuICAgIGNhc2UgSUZyYW1lTWVzc2FnZU1ldGhvZHMuSGVpZ2h0Q2hhbmdlOlxuICAgICAgaWYgKCFoYW5kbGVycy5oYW5kbGVIZWlnaHRDaGFuZ2UpIHJldHVybjtcbiAgICAgIHJldHVybiBoYW5kbGVycy5oYW5kbGVIZWlnaHRDaGFuZ2UoZGF0YSk7XG4gIH1cblxuICBjb25zb2xlLndhcm4oXG4gICAgYERpZG4ndCBleHBlY3QgdG8gZ2V0IGhlcmUsIGhhbmRsZUlGcmFtZU1lc3NhZ2UgbWV0aG9kOiR7bWV0aG9kfSBpcyBub3Qgb25lIG9mICR7T2JqZWN0LnZhbHVlcyhJRnJhbWVNZXNzYWdlTWV0aG9kcyl9YFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGFuZGxlcnMoe1xuICB3YWxsZXQsXG4gIGJsb2NrY2hhaW4sXG59OiBQaWNrPENvaW5mbG93UHVyY2hhc2VQcm9wcywgJ3dhbGxldCcgfCAnYmxvY2tjaGFpbic+KTogT21pdDxcbiAgSUZyYW1lTWVzc2FnZUhhbmRsZXJzLFxuICAnaGFuZGxlSGVpZ2h0Q2hhbmdlJ1xuPiB7XG4gIHJldHVybiBDb2luZmxvd1V0aWxzLmJ5QmxvY2tjaGFpbihibG9ja2NoYWluLCB7XG4gICAgc29sYW5hOiAoKSA9PiBnZXRTb2xhbmFXYWxsZXRIYW5kbGVycyh7d2FsbGV0fSksXG4gICAgbmVhcjogKCkgPT4gZ2V0TmVhcldhbGxldEhhbmRsZXJzKHt3YWxsZXR9KSxcbiAgICBldGg6ICgpID0+IGdldEV2bVdhbGxldEhhbmRsZXJzKHt3YWxsZXR9KSxcbiAgICBwb2x5Z29uOiAoKSA9PiBnZXRFdm1XYWxsZXRIYW5kbGVycyh7d2FsbGV0fSksXG4gICAgYmFzZTogKCkgPT4gZ2V0RXZtV2FsbGV0SGFuZGxlcnMoe3dhbGxldH0pLFxuICB9KSgpO1xufVxuXG5mdW5jdGlvbiBnZXRTb2xhbmFXYWxsZXRIYW5kbGVycyh7XG4gIHdhbGxldCxcbn06IFBpY2s8Q29pbmZsb3dQdXJjaGFzZVByb3BzLCAnd2FsbGV0Jz4pOiBPbWl0PFxuICBJRnJhbWVNZXNzYWdlSGFuZGxlcnMsXG4gICdoYW5kbGVIZWlnaHRDaGFuZ2UnXG4+IHtcbiAgcmV0dXJuIHtcbiAgICBoYW5kbGVTZW5kVHJhbnNhY3Rpb246IGFzeW5jICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB0eCA9IGdldFNvbGFuYVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcbiAgICAgIHJldHVybiAod2FsbGV0IGFzIFNvbGFuYVdhbGxldCkuc2VuZFRyYW5zYWN0aW9uKHR4KTtcbiAgICB9LFxuICAgIGhhbmRsZVNpZ25NZXNzYWdlOiBhc3luYyAobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzaWduTWVzc2FnZSA9ICh3YWxsZXQgYXMgU29sYW5hV2FsbGV0KS5zaWduTWVzc2FnZTtcbiAgICAgIGlmICghc2lnbk1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzaWduTWVzc2FnZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgd2FsbGV0Jyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNpZ25lZE1lc3NhZ2UgPSBhd2FpdCBzaWduTWVzc2FnZShcbiAgICAgICAgbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKG1lc3NhZ2UpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGJhc2U1OC5lbmNvZGUoc2lnbmVkTWVzc2FnZSk7XG4gICAgfSxcbiAgICBoYW5kbGVTaWduVHJhbnNhY3Rpb246IGFzeW5jICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzaWduVHJhbnNhY3Rpb24gPSAod2FsbGV0IGFzIFNvbGFuYVdhbGxldCkuc2lnblRyYW5zYWN0aW9uO1xuICAgICAgaWYgKCFzaWduVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzaWduVHJhbnNhY3Rpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHdhbGxldCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHggPSBnZXRTb2xhbmFUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICBjb25zdCBzaWduZWRUcmFuc2FjdGlvbiA9IGF3YWl0IHNpZ25UcmFuc2FjdGlvbih0eCk7XG4gICAgICByZXR1cm4gYmFzZTU4LmVuY29kZShcbiAgICAgICAgc2lnbmVkVHJhbnNhY3Rpb24uc2VyaWFsaXplKHtcbiAgICAgICAgICByZXF1aXJlQWxsU2lnbmF0dXJlczogZmFsc2UsXG4gICAgICAgICAgdmVyaWZ5U2lnbmF0dXJlczogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFNvbGFuYVRyYW5zYWN0aW9uKFxuICBkYXRhOiBzdHJpbmdcbik6IFRyYW5zYWN0aW9uIHwgVmVyc2lvbmVkVHJhbnNhY3Rpb24ge1xuICBpZiAoIXdlYjMpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Bzb2xhbmEvd2ViMy5qcyBpcyBub3QgZGVmaW5lZC4gUGxlYXNlIGluc3RhbGwgQHNvbGFuYS93ZWIzLmpzIGludG8geW91ciBwcm9qZWN0J1xuICAgICk7XG5cbiAgaWYgKCFiYXNlNTgpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ2JzNTggaXMgbm90IGRlZmluZWQuIFBsZWFzZSBpbnN0YWxsIGJzNTggaW50byB5b3VyIHByb2plY3QnXG4gICAgKTtcblxuICBjb25zdCBwYXJzZWRVSW50OEFycmF5ID0gYmFzZTU4LmRlY29kZShkYXRhKTtcbiAgY29uc3QgdnR4ID0gd2ViMy5WZXJzaW9uZWRUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZShwYXJzZWRVSW50OEFycmF5KTtcbiAgaWYgKHZ0eC52ZXJzaW9uID09PSAnbGVnYWN5JykgcmV0dXJuIHdlYjMuVHJhbnNhY3Rpb24uZnJvbShwYXJzZWRVSW50OEFycmF5KTtcbiAgcmV0dXJuIHZ0eDtcbn1cblxuZnVuY3Rpb24gZ2V0TmVhcldhbGxldEhhbmRsZXJzKHtcbiAgd2FsbGV0LFxufTogUGljazxDb2luZmxvd1B1cmNoYXNlUHJvcHMsICd3YWxsZXQnPik6IE9taXQ8XG4gIElGcmFtZU1lc3NhZ2VIYW5kbGVycyxcbiAgJ2hhbmRsZUhlaWdodENoYW5nZSdcbj4ge1xuICBjb25zdCBuZWFyV2FsbGV0ID0gd2FsbGV0IGFzIE5lYXJXYWxsZXQ7XG4gIHJldHVybiB7XG4gICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiBhc3luYyAodHJhbnNhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgYWN0aW9uID0gSlNPTi5wYXJzZShCdWZmZXIuZnJvbSh0cmFuc2FjdGlvbiwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCkpO1xuICAgICAgY29uc3QgZXhlY3V0aW9uT3V0Y29tZSA9IGF3YWl0IG5lYXJXYWxsZXQuc2lnbkFuZFNlbmRUcmFuc2FjdGlvbihhY3Rpb24pO1xuICAgICAgaWYgKCFleGVjdXRpb25PdXRjb21lKSB0aHJvdyBuZXcgRXJyb3IoJ1RyYW5zYWN0aW9uIGRpZCBub3Qgc2VuZCcpO1xuICAgICAgY29uc3Qge3RyYW5zYWN0aW9uOiB0cmFuc2FjdGlvblJlc3VsdH0gPSBleGVjdXRpb25PdXRjb21lO1xuICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uUmVzdWx0Lmhhc2g7XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RXZtV2FsbGV0SGFuZGxlcnMoe1xuICB3YWxsZXQsXG59OiBQaWNrPENvaW5mbG93UHVyY2hhc2VQcm9wcywgJ3dhbGxldCc+KTogT21pdDxcbiAgSUZyYW1lTWVzc2FnZUhhbmRsZXJzLFxuICAnaGFuZGxlSGVpZ2h0Q2hhbmdlJ1xuPiB7XG4gIGNvbnN0IGV2bVdhbGxldCA9IHdhbGxldCBhcyBFdGhXYWxsZXQ7XG4gIHJldHVybiB7XG4gICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiBhc3luYyAodHJhbnNhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdHggPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHRyYW5zYWN0aW9uLCAnYmFzZTY0JykudG9TdHJpbmcoKSk7XG4gICAgICBjb25zdCB7aGFzaH0gPSBhd2FpdCBldm1XYWxsZXQuc2VuZFRyYW5zYWN0aW9uKHR4KTtcbiAgICAgIHJldHVybiBoYXNoO1xuICAgIH0sXG4gICAgaGFuZGxlU2lnbk1lc3NhZ2U6IGFzeW5jIChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBldm1XYWxsZXQuc2lnbk1lc3NhZ2UobWVzc2FnZSk7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
- import { web3, base58 } from './SolanaPeerDeps';
1
+ import * as web3 from '@solana/web3.js';
2
+ import * as base58 from 'bs58';
2
3
  export class CoinflowUtils {
3
4
  constructor(env) {
4
5
  this.env = env ?? 'prod';
@@ -137,10 +138,7 @@ export class CoinflowUtils {
137
138
  if (web3 && transaction instanceof web3.Transaction) {
138
139
  if (!base58)
139
140
  throw new Error('bs58 dependency is required for Solana');
140
- return base58.encode(
141
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
142
- // @ts-ignore
143
- transaction.serialize({
141
+ return base58.encode(transaction.serialize({
144
142
  requireAllSignatures: false,
145
143
  verifySignatures: false,
146
144
  }));
@@ -148,8 +146,6 @@ export class CoinflowUtils {
148
146
  if (web3 && transaction instanceof web3.VersionedTransaction) {
149
147
  if (!base58)
150
148
  throw new Error('bs58 dependency is required for Solana');
151
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
152
- // @ts-ignore
153
149
  return base58.encode(transaction.serialize());
154
150
  }
155
151
  return btoa(JSON.stringify(transaction));
@@ -178,4 +174,4 @@ export class CoinflowUtils {
178
174
  }
179
175
  }
180
176
  }
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvbGliL2NvbW1vbi9Db2luZmxvd1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFBWSxHQUFrQjtRQUM1QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLE1BQU07WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLDJCQUEyQixDQUFDO2FBQzNELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxPQUFPO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQzs7WUFDN0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxlQUFlLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBa0I7UUFDeEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxrQkFBa0IsVUFBVSxFQUFFLENBQUM7YUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2pDLElBQUksQ0FDSCxDQUFDLElBR0EsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FDaEU7YUFDQSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxn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QyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUNqQixVQUE4QixFQUM5QixJQUF3RDtRQUV4RCxRQUFRLFVBQVUsRUFBRSxDQUFDO1lBQ25CLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDckIsS0FBSyxNQUFNO2dCQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztZQUNuQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3RCLEtBQUssS0FBSztnQkFDUixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUztvQkFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO2dCQUNsRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDbEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztZQUNuQjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvaW5mbG93QmxvY2tjaGFpbixcbiAgQ29pbmZsb3dFbnZzLFxuICBDb2luZmxvd0lGcmFtZVByb3BzLFxuICBDb2luZmxvd1B1cmNoYXNlUHJvcHMsXG59IGZyb20gJy4vQ29pbmZsb3dUeXBlcyc7XG5pbXBvcnQge3dlYjMsIGJhc2U1OH0gZnJvbSAnLi9Tb2xhbmFQZWVyRGVwcyc7XG5cbmV4cG9ydCBjbGFzcyBDb2luZmxvd1V0aWxzIHtcbiAgZW52OiBDb2luZmxvd0VudnM7XG4gIHVybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGVudj86IENvaW5mbG93RW52cykge1xuICAgIHRoaXMuZW52ID0gZW52ID8/ICdwcm9kJztcbiAgICBpZiAodGhpcy5lbnYgPT09ICdwcm9kJykgdGhpcy51cmwgPSAnaHR0cHM6Ly9hcGkuY29pbmZsb3cuY2FzaCc7XG4gICAgZWxzZSBpZiAodGhpcy5lbnYgPT09ICdsb2NhbCcpIHRoaXMudXJsID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMCc7XG4gICAgZWxzZSB0aGlzLnVybCA9IGBodHRwczovL2FwaS0ke3RoaXMuZW52fS5jb2luZmxvdy5jYXNoYDtcbiAgfVxuXG4gIGFzeW5jIGdldE5TdXJlUGFydG5lcklkKG1lcmNoYW50SWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGZldGNoKHRoaXMudXJsICsgYC9tZXJjaGFudC92aWV3LyR7bWVyY2hhbnRJZH1gKVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgLnRoZW4oXG4gICAgICAgIChqc29uOiB7XG4gICAgICAgICAgblN1cmVQYXJ0bmVySWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBuU3VyZVNldHRpbmdzOiB7blN1cmVQYXJ0bmVySWQ6IHN0cmluZyB8IHVuZGVmaW5lZH07XG4gICAgICAgIH0pID0+IGpzb24ublN1cmVTZXR0aW5ncz8ublN1cmVQYXJ0bmVySWQgfHwganNvbi5uU3VyZVBhcnRuZXJJZFxuICAgICAgKVxuICAgICAgLmNhdGNoKGUgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRDcmVkaXRCYWxhbmNlKFxuICAgIHB1YmxpY0tleTogc3RyaW5nLFxuICAgIG1lcmNoYW50SWQ6IHN0cmluZyxcbiAgICBibG9ja2NoYWluOiAnc29sYW5hJyB8ICduZWFyJ1xuICApOiBQcm9taXNlPHtjZW50czogbnVtYmVyfT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICB0aGlzLnVybCArIGAvYXBpL2N1c3RvbWVyL2JhbGFuY2VzLyR7bWVyY2hhbnRJZH1gLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ3gtY29pbmZsb3ctYXV0aC13YWxsZXQnOiBwdWJsaWNLZXksXG4gICAgICAgICAgJ3gtY29pbmZsb3ctYXV0aC1ibG9ja2NoYWluJzogYmxvY2tjaGFpbixcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICApO1xuICAgIGNvbnN0IHtjcmVkaXRzfSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICByZXR1cm4gY3JlZGl0cztcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb2luZmxvd0Jhc2VVcmwoZW52PzogQ29pbmZsb3dFbnZzKTogc3RyaW5nIHtcbiAgICBpZiAoIWVudiB8fCBlbnYgPT09ICdwcm9kJykgcmV0dXJuICdodHRwczovL2NvaW5mbG93LmNhc2gnO1xuICAgIGlmIChlbnYgPT09ICdsb2NhbCcpIHJldHVybiAnaHR0cDovL2xvY2FsaG9zdDozMDAwJztcblxuICAgIHJldHVybiBgaHR0cHM6Ly8ke2Vudn0uY29pbmZsb3cuY2FzaGA7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29pbmZsb3dBcGlVcmwoZW52PzogQ29pbmZsb3dFbnZzKTogc3RyaW5nIHtcbiAgICBpZiAoIWVudiB8fCBlbnYgPT09ICdwcm9kJykgcmV0dXJuICdodHRwczovL2FwaS5jb2luZmxvdy5jYXNoJztcbiAgICBpZiAoZW52ID09PSAnbG9jYWwnKSByZXR1cm4gJ2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMCc7XG5cbiAgICByZXR1cm4gYGh0dHBzOi8vYXBpLSR7ZW52fS5jb2luZmxvdy5jYXNoYDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb2luZmxvd1VybCh7XG4gICAgd2FsbGV0UHVia2V5LFxuICAgIHJvdXRlLFxuICAgIHJvdXRlUHJlZml4LFxuICAgIGVudixcbiAgICBhbW91bnQsXG4gICAgdHJhbnNhY3Rpb24sXG4gICAgYmxvY2tjaGFpbixcbiAgICBzdXBwb3J0c1ZlcnNpb25lZFRyYW5zYWN0aW9ucyxcbiAgICB3ZWJob29rSW5mbyxcbiAgICBlbWFpbCxcbiAgICBsb2FkZXJCYWNrZ3JvdW5kLFxuICAgIGhhbmRsZUhlaWdodENoYW5nZSxcbiAgICBiYW5rQWNjb3VudExpbmtSZWRpcmVjdCxcbiAgICBhZGRpdGlvbmFsV2FsbGV0cyxcbiAgICBuZWFyRGVwb3NpdCxcbiAgICBjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEsXG4gICAgbWVyY2hhbnRDc3MsXG4gICAgY29sb3IsXG4gICAgcmVudCxcbiAgICBsb2NrRGVmYXVsdFRva2VuLFxuICAgIHRva2VuLFxuICAgIHRva2VucyxcbiAgICBwbGFuQ29kZSxcbiAgICBkaXNhYmxlQXBwbGVQYXksXG4gICAgZGlzYWJsZUdvb2dsZVBheSxcbiAgICBjdXN0b21lckluZm8sXG4gICAgc2V0dGxlbWVudFR5cGUsXG4gICAgbG9ja0Ftb3VudCxcbiAgICBuYXRpdmVTb2xUb0NvbnZlcnQsXG4gICAgdGhlbWUsXG4gICAgdXNlUGVybWl0LFxuICAgIHRyYW5zYWN0aW9uU2lnbmVyLFxuICAgIGF1dGhPbmx5LFxuICAgIGRldmljZUlkLFxuICB9OiBDb2luZmxvd0lGcmFtZVByb3BzKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZVByZWZpeFxuICAgICAgPyBgLyR7cm91dGVQcmVmaXh9LyR7YmxvY2tjaGFpbn1gXG4gICAgICA6IGAvJHtibG9ja2NoYWlufWA7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChwcmVmaXggKyByb3V0ZSwgQ29pbmZsb3dVdGlscy5nZXRDb2luZmxvd0Jhc2VVcmwoZW52KSk7XG4gICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3B1YmtleScsIHdhbGxldFB1YmtleSEpO1xuXG4gICAgaWYgKHRyYW5zYWN0aW9uKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndHJhbnNhY3Rpb24nLCB0cmFuc2FjdGlvbik7XG4gICAgfVxuICAgIGlmIChhbW91bnQpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdhbW91bnQnLCBhbW91bnQudG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKHN1cHBvcnRzVmVyc2lvbmVkVHJhbnNhY3Rpb25zKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnc3VwcG9ydHNWZXJzaW9uZWRUcmFuc2FjdGlvbnMnLCAndHJ1ZScpO1xuICAgIH1cblxuICAgIGlmICh3ZWJob29rSW5mbykge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICd3ZWJob29rSW5mbycsXG4gICAgICAgIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHdlYmhvb2tJbmZvKSkudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGVtZSkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICd0aGVtZScsXG4gICAgICAgIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHRoZW1lKSkudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjdXN0b21lckluZm8pIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnY3VzdG9tZXJJbmZvJyxcbiAgICAgICAgQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoY3VzdG9tZXJJbmZvKSkudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChlbWFpbCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2VtYWlsJywgZW1haWwpO1xuICAgIH1cblxuICAgIGlmICh0b2tlbikge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3Rva2VuJywgdG9rZW4udG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKHRva2Vucykge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3Rva2VucycsIHRva2Vucy50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBpZiAobG9hZGVyQmFja2dyb3VuZCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2xvYWRlckJhY2tncm91bmQnLCBsb2FkZXJCYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICBpZiAoaGFuZGxlSGVpZ2h0Q2hhbmdlKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndXNlSGVpZ2h0Q2hhbmdlJywgJ3RydWUnKTtcbiAgICB9XG5cbiAgICBpZiAoYmFua0FjY291bnRMaW5rUmVkaXJlY3QpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnYmFua0FjY291bnRMaW5rUmVkaXJlY3QnLFxuICAgICAgICBiYW5rQWNjb3VudExpbmtSZWRpcmVjdFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYWRkaXRpb25hbFdhbGxldHMpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ2FkZGl0aW9uYWxXYWxsZXRzJyxcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoYWRkaXRpb25hbFdhbGxldHMpXG4gICAgICApO1xuXG4gICAgaWYgKG5lYXJEZXBvc2l0KSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbmVhckRlcG9zaXQnLCBuZWFyRGVwb3NpdCk7XG5cbiAgICBpZiAoY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhKVxuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEnLFxuICAgICAgICBKU09OLnN0cmluZ2lmeShjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEpXG4gICAgICApO1xuICAgIGlmIChkZXZpY2VJZCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2RldmljZUlkJywgZGV2aWNlSWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IGRldmljZUlkID0gd2luZG93Py5uU3VyZVNESz8uZ2V0RGV2aWNlSWQoKTtcbiAgICAgICAgaWYgKGRldmljZUlkKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZGV2aWNlSWQnLCBkZXZpY2VJZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1lcmNoYW50Q3NzKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbWVyY2hhbnRDc3MnLCBtZXJjaGFudENzcyk7XG4gICAgaWYgKGNvbG9yKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnY29sb3InLCBjb2xvcik7XG4gICAgaWYgKHJlbnQpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdyZW50JywgcmVudC5sYW1wb3J0cy50b1N0cmluZygpKTtcbiAgICBpZiAobmF0aXZlU29sVG9Db252ZXJ0KVxuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICduYXRpdmVTb2xUb0NvbnZlcnQnLFxuICAgICAgICBuYXRpdmVTb2xUb0NvbnZlcnQubGFtcG9ydHMudG9TdHJpbmcoKVxuICAgICAgKTtcbiAgICBpZiAobG9ja0RlZmF1bHRUb2tlbikgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2xvY2tEZWZhdWx0VG9rZW4nLCAndHJ1ZScpO1xuICAgIGlmIChwbGFuQ29kZSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3BsYW5Db2RlJywgcGxhbkNvZGUpO1xuXG4gICAgaWYgKGRpc2FibGVBcHBsZVBheSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2Rpc2FibGVBcHBsZVBheScsICd0cnVlJyk7XG4gICAgaWYgKGRpc2FibGVHb29nbGVQYXkpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdkaXNhYmxlR29vZ2xlUGF5JywgJ3RydWUnKTtcbiAgICBpZiAoc2V0dGxlbWVudFR5cGUpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnc2V0dGxlbWVudFR5cGUnLCBzZXR0bGVtZW50VHlwZSk7XG5cbiAgICBpZiAobG9ja0Ftb3VudCkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2xvY2tBbW91bnQnLCAndHJ1ZScpO1xuXG4gICAgaWYgKHVzZVBlcm1pdCA9PT0gZmFsc2UpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd1c2VQZXJtaXQnLCAnZmFsc2UnKTtcbiAgICBpZiAodHJhbnNhY3Rpb25TaWduZXIpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndHJhbnNhY3Rpb25TaWduZXInLCB0cmFuc2FjdGlvblNpZ25lcik7XG4gICAgaWYgKGF1dGhPbmx5ID09PSB0cnVlKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnYXV0aE9ubHknLCAndHJ1ZScpO1xuXG4gICAgcmV0dXJuIHVybC50b1N0cmluZygpO1xuICB9XG5cbiAgc3RhdGljIGdldFRyYW5zYWN0aW9uKHByb3BzOiBDb2luZmxvd1B1cmNoYXNlUHJvcHMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICgndHJhbnNhY3Rpb24nIGluIHByb3BzICYmIHByb3BzLnRyYW5zYWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHt0cmFuc2FjdGlvbn0gPSBwcm9wcztcbiAgICAgIGlmICh3ZWIzICYmIHRyYW5zYWN0aW9uIGluc3RhbmNlb2Ygd2ViMy5UcmFuc2FjdGlvbikge1xuICAgICAgICBpZiAoIWJhc2U1OCkgdGhyb3cgbmV3IEVycm9yKCdiczU4IGRlcGVuZGVuY3kgaXMgcmVxdWlyZWQgZm9yIFNvbGFuYScpO1xuICAgICAgICByZXR1cm4gYmFzZTU4LmVuY29kZShcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHRyYW5zYWN0aW9uLnNlcmlhbGl6ZSh7XG4gICAgICAgICAgICByZXF1aXJlQWxsU2lnbmF0dXJlczogZmFsc2UsXG4gICAgICAgICAgICB2ZXJpZnlTaWduYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAod2ViMyAmJiB0cmFuc2FjdGlvbiBpbnN0YW5jZW9mIHdlYjMuVmVyc2lvbmVkVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgaWYgKCFiYXNlNTgpIHRocm93IG5ldyBFcnJvcignYnM1OCBkZXBlbmRlbmN5IGlzIHJlcXVpcmVkIGZvciBTb2xhbmEnKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBiYXNlNTguZW5jb2RlKHRyYW5zYWN0aW9uLnNlcmlhbGl6ZSgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJ0b2EoSlNPTi5zdHJpbmdpZnkodHJhbnNhY3Rpb24pKTtcbiAgICB9XG5cbiAgICBpZiAoJ2FjdGlvbicgaW4gcHJvcHMgJiYgcHJvcHMuYWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBidG9hKEpTT04uc3RyaW5naWZ5KHByb3BzLmFjdGlvbikpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgYnlCbG9ja2NoYWluPFQ+KFxuICAgIGJsb2NrY2hhaW46IENvaW5mbG93QmxvY2tjaGFpbixcbiAgICBhcmdzOiB7c29sYW5hOiBUOyBuZWFyOiBUOyBldGg/OiBUOyBwb2x5Z29uOiBUOyBiYXNlOiBUfVxuICApOiBUIHtcbiAgICBzd2l0Y2ggKGJsb2NrY2hhaW4pIHtcbiAgICAgIGNhc2UgJ3NvbGFuYSc6XG4gICAgICAgIHJldHVybiBhcmdzLnNvbGFuYTtcbiAgICAgIGNhc2UgJ25lYXInOlxuICAgICAgICByZXR1cm4gYXJncy5uZWFyO1xuICAgICAgY2FzZSAncG9seWdvbic6XG4gICAgICAgIHJldHVybiBhcmdzLnBvbHlnb247XG4gICAgICBjYXNlICdldGgnOlxuICAgICAgICBpZiAoYXJncy5ldGggPT09IHVuZGVmaW5lZClcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jsb2NrY2hhaW4gbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBvcGVyYXRpb24hJyk7XG4gICAgICAgIHJldHVybiBhcmdzLmV0aDtcbiAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICByZXR1cm4gYXJncy5iYXNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdibG9ja2NoYWluIG5vdCBzdXBwb3J0ZWQhJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvbGliL2NvbW1vbi9Db2luZmxvd1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxJQUFJLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxNQUFNLENBQUM7QUFFL0IsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFBWSxHQUFrQjtRQUM1QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLE1BQU07WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLDJCQUEyQixDQUFDO2FBQzNELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxPQUFPO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQzs7WUFDN0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxlQUFlLElBQUksQ0FBQyxHQUFHLGdCQUFnQixDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBa0I7UUFDeEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxrQkFBa0IsVUFBVSxFQUFFLENBQUM7YUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2pDLElBQUksQ0FDSCxDQUFDLElBR0EsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FDaEU7YUFDQSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ1As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QU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUNqQixVQUE4QixFQUM5QixJQUF3RDtRQUV4RCxRQUFRLFVBQVUsRUFBRSxDQUFDO1lBQ25CLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDckIsS0FBSyxNQUFNO2dCQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztZQUNuQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3RCLEtBQUssS0FBSztnQkFDUixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUztvQkFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO2dCQUNsRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDbEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztZQUNuQjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvaW5mbG93QmxvY2tjaGFpbixcbiAgQ29pbmZsb3dFbnZzLFxuICBDb2luZmxvd0lGcmFtZVByb3BzLFxuICBDb2luZmxvd1B1cmNoYXNlUHJvcHMsXG59IGZyb20gJy4vQ29pbmZsb3dUeXBlcyc7XG5pbXBvcnQgKiBhcyB3ZWIzIGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQgKiBhcyBiYXNlNTggZnJvbSAnYnM1OCc7XG5cbmV4cG9ydCBjbGFzcyBDb2luZmxvd1V0aWxzIHtcbiAgZW52OiBDb2luZmxvd0VudnM7XG4gIHVybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGVudj86IENvaW5mbG93RW52cykge1xuICAgIHRoaXMuZW52ID0gZW52ID8/ICdwcm9kJztcbiAgICBpZiAodGhpcy5lbnYgPT09ICdwcm9kJykgdGhpcy51cmwgPSAnaHR0cHM6Ly9hcGkuY29pbmZsb3cuY2FzaCc7XG4gICAgZWxzZSBpZiAodGhpcy5lbnYgPT09ICdsb2NhbCcpIHRoaXMudXJsID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMCc7XG4gICAgZWxzZSB0aGlzLnVybCA9IGBodHRwczovL2FwaS0ke3RoaXMuZW52fS5jb2luZmxvdy5jYXNoYDtcbiAgfVxuXG4gIGFzeW5jIGdldE5TdXJlUGFydG5lcklkKG1lcmNoYW50SWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGZldGNoKHRoaXMudXJsICsgYC9tZXJjaGFudC92aWV3LyR7bWVyY2hhbnRJZH1gKVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgLnRoZW4oXG4gICAgICAgIChqc29uOiB7XG4gICAgICAgICAgblN1cmVQYXJ0bmVySWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBuU3VyZVNldHRpbmdzOiB7blN1cmVQYXJ0bmVySWQ6IHN0cmluZyB8IHVuZGVmaW5lZH07XG4gICAgICAgIH0pID0+IGpzb24ublN1cmVTZXR0aW5ncz8ublN1cmVQYXJ0bmVySWQgfHwganNvbi5uU3VyZVBhcnRuZXJJZFxuICAgICAgKVxuICAgICAgLmNhdGNoKGUgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRDcmVkaXRCYWxhbmNlKFxuICAgIHB1YmxpY0tleTogc3RyaW5nLFxuICAgIG1lcmNoYW50SWQ6IHN0cmluZyxcbiAgICBibG9ja2NoYWluOiAnc29sYW5hJyB8ICduZWFyJ1xuICApOiBQcm9taXNlPHtjZW50czogbnVtYmVyfT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICB0aGlzLnVybCArIGAvYXBpL2N1c3RvbWVyL2JhbGFuY2VzLyR7bWVyY2hhbnRJZH1gLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ3gtY29pbmZsb3ctYXV0aC13YWxsZXQnOiBwdWJsaWNLZXksXG4gICAgICAgICAgJ3gtY29pbmZsb3ctYXV0aC1ibG9ja2NoYWluJzogYmxvY2tjaGFpbixcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICApO1xuICAgIGNvbnN0IHtjcmVkaXRzfSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICByZXR1cm4gY3JlZGl0cztcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb2luZmxvd0Jhc2VVcmwoZW52PzogQ29pbmZsb3dFbnZzKTogc3RyaW5nIHtcbiAgICBpZiAoIWVudiB8fCBlbnYgPT09ICdwcm9kJykgcmV0dXJuICdodHRwczovL2NvaW5mbG93LmNhc2gnO1xuICAgIGlmIChlbnYgPT09ICdsb2NhbCcpIHJldHVybiAnaHR0cDovL2xvY2FsaG9zdDozMDAwJztcblxuICAgIHJldHVybiBgaHR0cHM6Ly8ke2Vudn0uY29pbmZsb3cuY2FzaGA7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29pbmZsb3dBcGlVcmwoZW52PzogQ29pbmZsb3dFbnZzKTogc3RyaW5nIHtcbiAgICBpZiAoIWVudiB8fCBlbnYgPT09ICdwcm9kJykgcmV0dXJuICdodHRwczovL2FwaS5jb2luZmxvdy5jYXNoJztcbiAgICBpZiAoZW52ID09PSAnbG9jYWwnKSByZXR1cm4gJ2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMCc7XG5cbiAgICByZXR1cm4gYGh0dHBzOi8vYXBpLSR7ZW52fS5jb2luZmxvdy5jYXNoYDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb2luZmxvd1VybCh7XG4gICAgd2FsbGV0UHVia2V5LFxuICAgIHJvdXRlLFxuICAgIHJvdXRlUHJlZml4LFxuICAgIGVudixcbiAgICBhbW91bnQsXG4gICAgdHJhbnNhY3Rpb24sXG4gICAgYmxvY2tjaGFpbixcbiAgICBzdXBwb3J0c1ZlcnNpb25lZFRyYW5zYWN0aW9ucyxcbiAgICB3ZWJob29rSW5mbyxcbiAgICBlbWFpbCxcbiAgICBsb2FkZXJCYWNrZ3JvdW5kLFxuICAgIGhhbmRsZUhlaWdodENoYW5nZSxcbiAgICBiYW5rQWNjb3VudExpbmtSZWRpcmVjdCxcbiAgICBhZGRpdGlvbmFsV2FsbGV0cyxcbiAgICBuZWFyRGVwb3NpdCxcbiAgICBjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEsXG4gICAgbWVyY2hhbnRDc3MsXG4gICAgY29sb3IsXG4gICAgcmVudCxcbiAgICBsb2NrRGVmYXVsdFRva2VuLFxuICAgIHRva2VuLFxuICAgIHRva2VucyxcbiAgICBwbGFuQ29kZSxcbiAgICBkaXNhYmxlQXBwbGVQYXksXG4gICAgZGlzYWJsZUdvb2dsZVBheSxcbiAgICBjdXN0b21lckluZm8sXG4gICAgc2V0dGxlbWVudFR5cGUsXG4gICAgbG9ja0Ftb3VudCxcbiAgICBuYXRpdmVTb2xUb0NvbnZlcnQsXG4gICAgdGhlbWUsXG4gICAgdXNlUGVybWl0LFxuICAgIHRyYW5zYWN0aW9uU2lnbmVyLFxuICAgIGF1dGhPbmx5LFxuICAgIGRldmljZUlkLFxuICB9OiBDb2luZmxvd0lGcmFtZVByb3BzKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZVByZWZpeFxuICAgICAgPyBgLyR7cm91dGVQcmVmaXh9LyR7YmxvY2tjaGFpbn1gXG4gICAgICA6IGAvJHtibG9ja2NoYWlufWA7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChwcmVmaXggKyByb3V0ZSwgQ29pbmZsb3dVdGlscy5nZXRDb2luZmxvd0Jhc2VVcmwoZW52KSk7XG4gICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3B1YmtleScsIHdhbGxldFB1YmtleSEpO1xuXG4gICAgaWYgKHRyYW5zYWN0aW9uKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndHJhbnNhY3Rpb24nLCB0cmFuc2FjdGlvbik7XG4gICAgfVxuICAgIGlmIChhbW91bnQpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdhbW91bnQnLCBhbW91bnQudG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKHN1cHBvcnRzVmVyc2lvbmVkVHJhbnNhY3Rpb25zKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnc3VwcG9ydHNWZXJzaW9uZWRUcmFuc2FjdGlvbnMnLCAndHJ1ZScpO1xuICAgIH1cblxuICAgIGlmICh3ZWJob29rSW5mbykge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICd3ZWJob29rSW5mbycsXG4gICAgICAgIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHdlYmhvb2tJbmZvKSkudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGVtZSkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICd0aGVtZScsXG4gICAgICAgIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHRoZW1lKSkudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjdXN0b21lckluZm8pIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnY3VzdG9tZXJJbmZvJyxcbiAgICAgICAgQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoY3VzdG9tZXJJbmZvKSkudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChlbWFpbCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2VtYWlsJywgZW1haWwpO1xuICAgIH1cblxuICAgIGlmICh0b2tlbikge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3Rva2VuJywgdG9rZW4udG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKHRva2Vucykge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3Rva2VucycsIHRva2Vucy50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBpZiAobG9hZGVyQmFja2dyb3VuZCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2xvYWRlckJhY2tncm91bmQnLCBsb2FkZXJCYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICBpZiAoaGFuZGxlSGVpZ2h0Q2hhbmdlKSB7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndXNlSGVpZ2h0Q2hhbmdlJywgJ3RydWUnKTtcbiAgICB9XG5cbiAgICBpZiAoYmFua0FjY291bnRMaW5rUmVkaXJlY3QpIHtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKFxuICAgICAgICAnYmFua0FjY291bnRMaW5rUmVkaXJlY3QnLFxuICAgICAgICBiYW5rQWNjb3VudExpbmtSZWRpcmVjdFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYWRkaXRpb25hbFdhbGxldHMpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAgJ2FkZGl0aW9uYWxXYWxsZXRzJyxcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoYWRkaXRpb25hbFdhbGxldHMpXG4gICAgICApO1xuXG4gICAgaWYgKG5lYXJEZXBvc2l0KSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbmVhckRlcG9zaXQnLCBuZWFyRGVwb3NpdCk7XG5cbiAgICBpZiAoY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhKVxuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICdjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEnLFxuICAgICAgICBKU09OLnN0cmluZ2lmeShjaGFyZ2ViYWNrUHJvdGVjdGlvbkRhdGEpXG4gICAgICApO1xuICAgIGlmIChkZXZpY2VJZCkge1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2RldmljZUlkJywgZGV2aWNlSWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IGRldmljZUlkID0gd2luZG93Py5uU3VyZVNESz8uZ2V0RGV2aWNlSWQoKTtcbiAgICAgICAgaWYgKGRldmljZUlkKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnZGV2aWNlSWQnLCBkZXZpY2VJZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1lcmNoYW50Q3NzKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnbWVyY2hhbnRDc3MnLCBtZXJjaGFudENzcyk7XG4gICAgaWYgKGNvbG9yKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnY29sb3InLCBjb2xvcik7XG4gICAgaWYgKHJlbnQpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdyZW50JywgcmVudC5sYW1wb3J0cy50b1N0cmluZygpKTtcbiAgICBpZiAobmF0aXZlU29sVG9Db252ZXJ0KVxuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoXG4gICAgICAgICduYXRpdmVTb2xUb0NvbnZlcnQnLFxuICAgICAgICBuYXRpdmVTb2xUb0NvbnZlcnQubGFtcG9ydHMudG9TdHJpbmcoKVxuICAgICAgKTtcbiAgICBpZiAobG9ja0RlZmF1bHRUb2tlbikgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2xvY2tEZWZhdWx0VG9rZW4nLCAndHJ1ZScpO1xuICAgIGlmIChwbGFuQ29kZSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ3BsYW5Db2RlJywgcGxhbkNvZGUpO1xuXG4gICAgaWYgKGRpc2FibGVBcHBsZVBheSkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2Rpc2FibGVBcHBsZVBheScsICd0cnVlJyk7XG4gICAgaWYgKGRpc2FibGVHb29nbGVQYXkpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdkaXNhYmxlR29vZ2xlUGF5JywgJ3RydWUnKTtcbiAgICBpZiAoc2V0dGxlbWVudFR5cGUpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnc2V0dGxlbWVudFR5cGUnLCBzZXR0bGVtZW50VHlwZSk7XG5cbiAgICBpZiAobG9ja0Ftb3VudCkgdXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoJ2xvY2tBbW91bnQnLCAndHJ1ZScpO1xuXG4gICAgaWYgKHVzZVBlcm1pdCA9PT0gZmFsc2UpIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCd1c2VQZXJtaXQnLCAnZmFsc2UnKTtcbiAgICBpZiAodHJhbnNhY3Rpb25TaWduZXIpXG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndHJhbnNhY3Rpb25TaWduZXInLCB0cmFuc2FjdGlvblNpZ25lcik7XG4gICAgaWYgKGF1dGhPbmx5ID09PSB0cnVlKSB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnYXV0aE9ubHknLCAndHJ1ZScpO1xuXG4gICAgcmV0dXJuIHVybC50b1N0cmluZygpO1xuICB9XG5cbiAgc3RhdGljIGdldFRyYW5zYWN0aW9uKHByb3BzOiBDb2luZmxvd1B1cmNoYXNlUHJvcHMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICgndHJhbnNhY3Rpb24nIGluIHByb3BzICYmIHByb3BzLnRyYW5zYWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHt0cmFuc2FjdGlvbn0gPSBwcm9wcztcbiAgICAgIGlmICh3ZWIzICYmIHRyYW5zYWN0aW9uIGluc3RhbmNlb2Ygd2ViMy5UcmFuc2FjdGlvbikge1xuICAgICAgICBpZiAoIWJhc2U1OCkgdGhyb3cgbmV3IEVycm9yKCdiczU4IGRlcGVuZGVuY3kgaXMgcmVxdWlyZWQgZm9yIFNvbGFuYScpO1xuICAgICAgICByZXR1cm4gYmFzZTU4LmVuY29kZShcbiAgICAgICAgICB0cmFuc2FjdGlvbi5zZXJpYWxpemUoe1xuICAgICAgICAgICAgcmVxdWlyZUFsbFNpZ25hdHVyZXM6IGZhbHNlLFxuICAgICAgICAgICAgdmVyaWZ5U2lnbmF0dXJlczogZmFsc2UsXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHdlYjMgJiYgdHJhbnNhY3Rpb24gaW5zdGFuY2VvZiB3ZWIzLlZlcnNpb25lZFRyYW5zYWN0aW9uKSB7XG4gICAgICAgIGlmICghYmFzZTU4KSB0aHJvdyBuZXcgRXJyb3IoJ2JzNTggZGVwZW5kZW5jeSBpcyByZXF1aXJlZCBmb3IgU29sYW5hJyk7XG4gICAgICAgIHJldHVybiBiYXNlNTguZW5jb2RlKHRyYW5zYWN0aW9uLnNlcmlhbGl6ZSgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJ0b2EoSlNPTi5zdHJpbmdpZnkodHJhbnNhY3Rpb24pKTtcbiAgICB9XG5cbiAgICBpZiAoJ2FjdGlvbicgaW4gcHJvcHMgJiYgcHJvcHMuYWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBidG9hKEpTT04uc3RyaW5naWZ5KHByb3BzLmFjdGlvbikpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgYnlCbG9ja2NoYWluPFQ+KFxuICAgIGJsb2NrY2hhaW46IENvaW5mbG93QmxvY2tjaGFpbixcbiAgICBhcmdzOiB7c29sYW5hOiBUOyBuZWFyOiBUOyBldGg/OiBUOyBwb2x5Z29uOiBUOyBiYXNlOiBUfVxuICApOiBUIHtcbiAgICBzd2l0Y2ggKGJsb2NrY2hhaW4pIHtcbiAgICAgIGNhc2UgJ3NvbGFuYSc6XG4gICAgICAgIHJldHVybiBhcmdzLnNvbGFuYTtcbiAgICAgIGNhc2UgJ25lYXInOlxuICAgICAgICByZXR1cm4gYXJncy5uZWFyO1xuICAgICAgY2FzZSAncG9seWdvbic6XG4gICAgICAgIHJldHVybiBhcmdzLnBvbHlnb247XG4gICAgICBjYXNlICdldGgnOlxuICAgICAgICBpZiAoYXJncy5ldGggPT09IHVuZGVmaW5lZClcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jsb2NrY2hhaW4gbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBvcGVyYXRpb24hJyk7XG4gICAgICAgIHJldHVybiBhcmdzLmV0aDtcbiAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICByZXR1cm4gYXJncy5iYXNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdibG9ja2NoYWluIG5vdCBzdXBwb3J0ZWQhJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,5 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, Input, ViewChild, HostListener } from '@angular/core';
3
+ import * as web3 from '@solana/web3.js';
4
+ import * as base58 from 'bs58';
5
+ import base58__default from 'bs58';
3
6
  import * as i1 from '@angular/platform-browser';
4
7
 
5
8
  var SettlementType;
@@ -15,14 +18,6 @@ var MerchantStyle;
15
18
  MerchantStyle["Pill"] = "pill";
16
19
  })(MerchantStyle || (MerchantStyle = {}));
17
20
 
18
- let web3;
19
- let base58;
20
- try {
21
- web3 = require('@solana/web3.js');
22
- base58 = require('bs58');
23
- }
24
- catch (e) { }
25
-
26
21
  class CoinflowUtils {
27
22
  constructor(env) {
28
23
  this.env = env ?? 'prod';
@@ -161,10 +156,7 @@ class CoinflowUtils {
161
156
  if (web3 && transaction instanceof web3.Transaction) {
162
157
  if (!base58)
163
158
  throw new Error('bs58 dependency is required for Solana');
164
- return base58.encode(
165
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
166
- // @ts-ignore
167
- transaction.serialize({
159
+ return base58.encode(transaction.serialize({
168
160
  requireAllSignatures: false,
169
161
  verifySignatures: false,
170
162
  }));
@@ -172,8 +164,6 @@ class CoinflowUtils {
172
164
  if (web3 && transaction instanceof web3.VersionedTransaction) {
173
165
  if (!base58)
174
166
  throw new Error('bs58 dependency is required for Solana');
175
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
176
- // @ts-ignore
177
167
  return base58.encode(transaction.serialize());
178
168
  }
179
169
  return btoa(JSON.stringify(transaction));
@@ -273,9 +263,7 @@ function getSolanaWalletHandlers({ wallet, }) {
273
263
  throw new Error('signMessage is not supported by this wallet');
274
264
  }
275
265
  const signedMessage = await signMessage(new TextEncoder().encode(message));
276
- if (!base58)
277
- throw new Error('bs58 dependency is required');
278
- return base58.encode(signedMessage);
266
+ return base58__default.encode(signedMessage);
279
267
  },
280
268
  handleSignTransaction: async (transaction) => {
281
269
  const signTransaction = wallet.signTransaction;
@@ -284,9 +272,7 @@ function getSolanaWalletHandlers({ wallet, }) {
284
272
  }
285
273
  const tx = getSolanaTransaction(transaction);
286
274
  const signedTransaction = await signTransaction(tx);
287
- if (!base58)
288
- throw new Error('bs58 dependency is required');
289
- return base58.encode(signedTransaction.serialize({
275
+ return base58__default.encode(signedTransaction.serialize({
290
276
  requireAllSignatures: false,
291
277
  verifySignatures: false,
292
278
  }));
@@ -296,9 +282,9 @@ function getSolanaWalletHandlers({ wallet, }) {
296
282
  function getSolanaTransaction(data) {
297
283
  if (!web3)
298
284
  throw new Error('@solana/web3.js is not defined. Please install @solana/web3.js into your project');
299
- if (!base58)
285
+ if (!base58__default)
300
286
  throw new Error('bs58 is not defined. Please install bs58 into your project');
301
- const parsedUInt8Array = base58.decode(data);
287
+ const parsedUInt8Array = base58__default.decode(data);
302
288
  const vtx = web3.VersionedTransaction.deserialize(parsedUInt8Array);
303
289
  if (vtx.version === 'legacy')
304
290
  return web3.Transaction.from(parsedUInt8Array);
@@ -1 +1 @@
1
- {"version":3,"file":"coinflowlabs-angular.mjs","sources":["../../../projects/coinflowlabs/src/lib/common/CoinflowTypes.ts","../../../projects/coinflowlabs/src/lib/common/SolanaPeerDeps.ts","../../../projects/coinflowlabs/src/lib/common/CoinflowUtils.ts","../../../projects/coinflowlabs/src/lib/common/CoinflowLibMessageHandlers.ts","../../../projects/coinflowlabs/src/lib/coinflow-iframe.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase-history.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase-protection.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-withdraw.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-withdraw-history.component.ts","../../../projects/coinflowlabs/src/public-api.ts","../../../projects/coinflowlabs/src/coinflowlabs-angular.ts"],"sourcesContent":["import type {\n Connection,\n VersionedTransaction,\n PublicKey,\n Signer,\n Transaction,\n} from '@solana/web3.js';\n\nexport enum SettlementType {\n Credits = 'Credits',\n USDC = 'USDC',\n Bank = 'Bank',\n}\n\nexport enum MerchantStyle {\n Rounded = 'rounded',\n Sharp = 'sharp',\n Pill = 'pill',\n}\n\nexport type MerchantTheme = {\n primary?: string;\n background?: string;\n backgroundAccent?: string;\n backgroundAccent2?: string;\n textColor?: string;\n textColorAccent?: string;\n textColorAction?: string;\n font?: string;\n style?: MerchantStyle;\n};\n\nexport interface CustomerInfo {\n name?: string;\n verificationId?: string;\n displayName?: string;\n address?: string;\n city?: string;\n state?: string;\n zip?: string;\n country?: string;\n ip?: string;\n lat?: string;\n lng?: string;\n}\n\n/** Coinflow Types **/\nexport type CoinflowBlockchain = 'solana' | 'near' | 'eth' | 'polygon' | 'base';\nexport type CoinflowEnvs = 'prod' | 'staging' | 'sandbox' | 'local';\n\nexport interface CoinflowTypes {\n merchantId: string;\n env?: CoinflowEnvs;\n loaderBackground?: string;\n blockchain: CoinflowBlockchain;\n handleHeightChange?: (height: string) => void;\n theme?: MerchantTheme;\n}\n\nexport type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\nexport type OnSuccessMethod = (params: string) => void | Promise<void>;\n\n/** Wallets **/\nexport interface SolanaWallet {\n publicKey: PublicKey | null;\n signTransaction?: <T extends Transaction | VersionedTransaction>(\n transaction: T\n ) => Promise<T>;\n sendTransaction: <T extends Transaction | VersionedTransaction>(\n transaction: T\n ) => Promise<string>;\n signMessage?: (message: Uint8Array) => Promise<Uint8Array>;\n}\n\nexport interface NearWallet {\n accountId: string;\n signAndSendTransaction: (transaction: unknown) => Promise<{\n transaction: {hash: string};\n }>;\n}\n\ntype AccessList = Array<{address: string; storageKeys: Array<string>}>;\ntype AccessListish =\n | AccessList\n | Array<[string, Array<string>]>\n | Record<string, Array<string>>;\n\nexport type EthWallet = {\n address: string | null | undefined;\n sendTransaction: (transaction: {\n to: string;\n from?: string;\n nonce?: Bytes | bigint | string | number;\n\n gasLimit?: Bytes | bigint | string | number;\n gasPrice?: Bytes | bigint | string | number;\n\n data?: BytesLike;\n value?: Bytes | bigint | string | number;\n chainId?: number;\n\n type?: number;\n accessList?: AccessListish;\n\n maxPriorityFeePerGas?: Bytes | bigint | string | number;\n maxFeePerGas?: Bytes | bigint | string | number;\n\n customData?: Record<string, any>;\n ccipReadEnabled?: boolean;\n }) => Promise<{hash: string}>;\n signMessage: (message: string) => Promise<string>;\n};\n\n/** History **/\nexport interface CoinflowSolanaHistoryProps extends CoinflowTypes {\n wallet: SolanaWallet;\n connection: Connection;\n blockchain: 'solana';\n}\n\nexport interface CoinflowNearHistoryProps extends CoinflowTypes {\n wallet: NearWallet;\n blockchain: 'near';\n}\n\nexport interface CoinflowEvmHistoryProps extends CoinflowTypes {\n wallet: EthWallet;\n}\n\nexport interface CoinflowEthHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'eth';\n}\n\nexport interface CoinflowPolygonHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowBaseHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'base';\n}\n\nexport type CoinflowHistoryProps =\n | CoinflowSolanaHistoryProps\n | CoinflowNearHistoryProps\n | CoinflowPolygonHistoryProps\n | CoinflowEthHistoryProps\n | CoinflowBaseHistoryProps;\n\n/** Transactions **/\n\nexport type NearFtTransferCallAction = {\n methodName: 'ft_transfer_call';\n args: object;\n gas: string;\n deposit: string;\n};\n\ntype Bytes = ArrayLike<number>;\ntype BytesLike = Bytes | string;\n\n/** Purchase **/\n\nexport type ChargebackProtectionData = ChargebackProtectionItem[];\n\nexport interface ChargebackProtectionItem {\n /**\n * The name of the product\n */\n productName: string;\n /**\n * The product type. Possible values include: inGameProduct, gameOfSkill, dataStorage, computingResources, sportsTicket, eSportsTicket, musicTicket, conferenceTicket, virtualSportsTicket, virtualESportsTicket, virtualMusicTicket, virtualConferenceTicket, alcohol, DLC, subscription, fundACause, realEstate, computingContract, digitalArt, topUp\n */\n productType:\n | 'inGameProduct'\n | 'gameOfSkill'\n | 'dataStorage'\n | 'computingResources'\n | 'sportsTicket'\n | 'eSportsTicket'\n | 'musicTicket'\n | 'conferenceTicket'\n | 'virtualSportsTicket'\n | 'virtualESportsTicket'\n | 'virtualMusicTicket'\n | 'virtualConferenceTicket'\n | 'alcohol'\n | 'DLC'\n | 'subscription'\n | 'fundACause'\n | 'realEstate'\n | 'computingContract'\n | 'digitalArt'\n | 'topUp'\n | 'ownershipContract';\n /**\n * The item's list price\n */\n /**\n * The number of units sold\n */\n quantity: number;\n /**\n * Any additional data that the store can provide on the product, e.g. description, link to image, etc.\n */\n rawProductData?: {[key: string]: any};\n}\n\nexport interface CoinflowCommonPurchaseProps extends CoinflowTypes {\n amount?: number;\n onSuccess?: OnSuccessMethod;\n webhookInfo?: object;\n email?: string;\n chargebackProtectionData?: ChargebackProtectionData;\n planCode?: string;\n disableApplePay?: boolean;\n disableGooglePay?: boolean;\n customerInfo?: CustomerInfo;\n settlementType?: SettlementType;\n authOnly?: boolean;\n deviceId?: string;\n}\n\nexport interface CoinflowSolanaPurchaseProps\n extends CoinflowCommonPurchaseProps {\n wallet: SolanaWallet;\n transaction?: Transaction | VersionedTransaction;\n partialSigners?: Signer[];\n debugTx?: boolean;\n connection: Connection;\n blockchain: 'solana';\n token?: PublicKey | string;\n supportsVersionedTransactions?: boolean;\n rent?: {lamports: string | number};\n nativeSolToConvert?: {lamports: string | number};\n}\n\nexport interface CoinflowNearPurchaseProps extends CoinflowCommonPurchaseProps {\n wallet: NearWallet;\n blockchain: 'near';\n action?: NearFtTransferCallAction;\n nearDeposit?: string;\n}\n\nexport interface CoinflowEvmPurchaseProps extends CoinflowCommonPurchaseProps {\n transaction?: EvmTransactionData;\n token?: string;\n wallet: EthWallet;\n}\n\nexport interface CoinflowPolygonPurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowEthPurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'eth';\n}\n\nexport interface CoinflowBasePurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'base';\n}\n\nexport type CoinflowPurchaseProps =\n | CoinflowSolanaPurchaseProps\n | CoinflowNearPurchaseProps\n | CoinflowPolygonPurchaseProps\n | CoinflowEthPurchaseProps\n | CoinflowBasePurchaseProps;\n\n/** Withdraw **/\n\nexport interface CoinflowCommonWithdrawProps extends CoinflowTypes {\n onSuccess?: OnSuccessMethod;\n tokens?: string[];\n lockDefaultToken?: boolean;\n amount?: number;\n email?: string;\n bankAccountLinkRedirect?: string;\n additionalWallets?: {\n wallet: string;\n blockchain: 'solana' | 'eth' | 'near' | 'polygon';\n }[];\n supportsVersionedTransactions?: boolean;\n lockAmount?: boolean;\n transactionSigner?: string;\n}\n\nexport interface CoinflowSolanaWithdrawProps\n extends CoinflowCommonWithdrawProps {\n wallet: SolanaWallet;\n connection: Connection;\n blockchain: 'solana';\n}\n\nexport interface CoinflowNearWithdrawProps extends CoinflowCommonWithdrawProps {\n wallet: NearWallet;\n blockchain: 'near';\n}\n\nexport interface CoinflowEvmWithdrawProps extends CoinflowCommonWithdrawProps {\n wallet: EthWallet;\n usePermit?: boolean;\n}\n\nexport interface CoinflowEthWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'eth';\n usePermit?: boolean;\n}\n\nexport interface CoinflowPolygonWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowBaseWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'base';\n}\n\nexport type CoinflowWithdrawProps =\n | CoinflowSolanaWithdrawProps\n | CoinflowNearWithdrawProps\n | CoinflowEthWithdrawProps\n | CoinflowPolygonWithdrawProps\n | CoinflowBaseWithdrawProps;\n\nexport interface CommonEvmRedeem {\n waitForHash?: boolean;\n}\n\nexport interface NormalRedeem extends CommonEvmRedeem {\n transaction: {to: string; data: string};\n}\n\nexport interface KnownTokenIdRedeem extends NormalRedeem {\n nftContract: string;\n nftId: string;\n}\n\nexport interface SafeMintRedeem extends NormalRedeem {\n type: 'safeMint';\n nftContract?: string;\n}\n\nexport interface ReturnedTokenIdRedeem extends NormalRedeem {\n type: 'returned';\n nftContract?: string;\n}\n\ntype ReservoirNftIdItem = Omit<KnownTokenIdRedeem, keyof NormalRedeem>;\ninterface ReservoirOrderIdItem {\n orderId: string;\n}\ntype ReservoirItem = ReservoirNftIdItem | ReservoirOrderIdItem;\ntype ReservoirItems = ReservoirItem | ReservoirItem[];\n\nexport interface ReservoirRedeem extends CommonEvmRedeem {\n type: 'reservoir';\n items: ReservoirItems;\n}\n\nexport type EvmTransactionData =\n | SafeMintRedeem\n | ReturnedTokenIdRedeem\n | ReservoirRedeem\n | KnownTokenIdRedeem\n | NormalRedeem;\n\nexport interface CoinflowIFrameProps\n extends Omit<CoinflowTypes, 'merchantId'>,\n Pick<\n CoinflowCommonPurchaseProps,\n | 'chargebackProtectionData'\n | 'webhookInfo'\n | 'amount'\n | 'customerInfo'\n | 'settlementType'\n | 'email'\n | 'planCode'\n | 'deviceId'\n >,\n Pick<\n CoinflowCommonWithdrawProps,\n | 'bankAccountLinkRedirect'\n | 'additionalWallets'\n | 'transactionSigner'\n | 'lockAmount'\n | 'lockDefaultToken'\n >,\n Pick<CoinflowEvmPurchaseProps, 'authOnly'>,\n Pick<CoinflowSolanaPurchaseProps, 'rent' | 'nativeSolToConvert' | 'token'> {\n walletPubkey: string | null | undefined;\n route: string;\n routePrefix?: string;\n transaction?: string;\n tokens?: string[] | PublicKey[];\n supportsVersionedTransactions?: boolean;\n nearDeposit?: string;\n merchantCss?: string;\n color?: 'white' | 'black';\n disableApplePay?: boolean;\n disableGooglePay?: boolean;\n theme?: MerchantTheme;\n usePermit?: boolean;\n}\n","let web3: typeof import('@solana/web3.js') | undefined;\nlet base58: typeof import('bs58') | undefined;\n\ntry {\n web3 = require('@solana/web3.js');\n base58 = require('bs58');\n} catch (e) {}\n\nexport {web3, base58};\n","import {\n CoinflowBlockchain,\n CoinflowEnvs,\n CoinflowIFrameProps,\n CoinflowPurchaseProps,\n} from './CoinflowTypes';\nimport {web3, base58} from './SolanaPeerDeps';\n\nexport class CoinflowUtils {\n env: CoinflowEnvs;\n url: string;\n\n constructor(env?: CoinflowEnvs) {\n this.env = env ?? 'prod';\n if (this.env === 'prod') this.url = 'https://api.coinflow.cash';\n else if (this.env === 'local') this.url = 'http://localhost:5000';\n else this.url = `https://api-${this.env}.coinflow.cash`;\n }\n\n async getNSurePartnerId(merchantId: string): Promise<string | undefined> {\n return fetch(this.url + `/merchant/view/${merchantId}`)\n .then(response => response.json())\n .then(\n (json: {\n nSurePartnerId: string | undefined;\n nSureSettings: {nSurePartnerId: string | undefined};\n }) => json.nSureSettings?.nSurePartnerId || json.nSurePartnerId\n )\n .catch(e => {\n console.error(e);\n return undefined;\n });\n }\n\n async getCreditBalance(\n publicKey: string,\n merchantId: string,\n blockchain: 'solana' | 'near'\n ): Promise<{cents: number}> {\n const response = await fetch(\n this.url + `/api/customer/balances/${merchantId}`,\n {\n method: 'GET',\n headers: {\n 'x-coinflow-auth-wallet': publicKey,\n 'x-coinflow-auth-blockchain': blockchain,\n },\n }\n );\n const {credits} = await response.json();\n return credits;\n }\n\n static getCoinflowBaseUrl(env?: CoinflowEnvs): string {\n if (!env || env === 'prod') return 'https://coinflow.cash';\n if (env === 'local') return 'http://localhost:3000';\n\n return `https://${env}.coinflow.cash`;\n }\n\n static getCoinflowApiUrl(env?: CoinflowEnvs): string {\n if (!env || env === 'prod') return 'https://api.coinflow.cash';\n if (env === 'local') return 'http://localhost:5000';\n\n return `https://api-${env}.coinflow.cash`;\n }\n\n static getCoinflowUrl({\n walletPubkey,\n route,\n routePrefix,\n env,\n amount,\n transaction,\n blockchain,\n supportsVersionedTransactions,\n webhookInfo,\n email,\n loaderBackground,\n handleHeightChange,\n bankAccountLinkRedirect,\n additionalWallets,\n nearDeposit,\n chargebackProtectionData,\n merchantCss,\n color,\n rent,\n lockDefaultToken,\n token,\n tokens,\n planCode,\n disableApplePay,\n disableGooglePay,\n customerInfo,\n settlementType,\n lockAmount,\n nativeSolToConvert,\n theme,\n usePermit,\n transactionSigner,\n authOnly,\n deviceId,\n }: CoinflowIFrameProps): string {\n const prefix = routePrefix\n ? `/${routePrefix}/${blockchain}`\n : `/${blockchain}`;\n const url = new URL(prefix + route, CoinflowUtils.getCoinflowBaseUrl(env));\n url.searchParams.append('pubkey', walletPubkey!);\n\n if (transaction) {\n url.searchParams.append('transaction', transaction);\n }\n if (amount) {\n url.searchParams.append('amount', amount.toString());\n }\n\n if (supportsVersionedTransactions) {\n url.searchParams.append('supportsVersionedTransactions', 'true');\n }\n\n if (webhookInfo) {\n url.searchParams.append(\n 'webhookInfo',\n Buffer.from(JSON.stringify(webhookInfo)).toString('base64')\n );\n }\n\n if (theme) {\n url.searchParams.append(\n 'theme',\n Buffer.from(JSON.stringify(theme)).toString('base64')\n );\n }\n\n if (customerInfo) {\n url.searchParams.append(\n 'customerInfo',\n Buffer.from(JSON.stringify(customerInfo)).toString('base64')\n );\n }\n\n if (email) {\n url.searchParams.append('email', email);\n }\n\n if (token) {\n url.searchParams.append('token', token.toString());\n }\n\n if (tokens) {\n url.searchParams.append('tokens', tokens.toString());\n }\n\n if (loaderBackground) {\n url.searchParams.append('loaderBackground', loaderBackground);\n }\n\n if (handleHeightChange) {\n url.searchParams.append('useHeightChange', 'true');\n }\n\n if (bankAccountLinkRedirect) {\n url.searchParams.append(\n 'bankAccountLinkRedirect',\n bankAccountLinkRedirect\n );\n }\n\n if (additionalWallets)\n url.searchParams.append(\n 'additionalWallets',\n JSON.stringify(additionalWallets)\n );\n\n if (nearDeposit) url.searchParams.append('nearDeposit', nearDeposit);\n\n if (chargebackProtectionData)\n url.searchParams.append(\n 'chargebackProtectionData',\n JSON.stringify(chargebackProtectionData)\n );\n if (deviceId) {\n url.searchParams.append('deviceId', deviceId);\n } else {\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const deviceId = window?.nSureSDK?.getDeviceId();\n if (deviceId) url.searchParams.append('deviceId', deviceId);\n }\n }\n\n if (merchantCss) url.searchParams.append('merchantCss', merchantCss);\n if (color) url.searchParams.append('color', color);\n if (rent) url.searchParams.append('rent', rent.lamports.toString());\n if (nativeSolToConvert)\n url.searchParams.append(\n 'nativeSolToConvert',\n nativeSolToConvert.lamports.toString()\n );\n if (lockDefaultToken) url.searchParams.append('lockDefaultToken', 'true');\n if (planCode) url.searchParams.append('planCode', planCode);\n\n if (disableApplePay) url.searchParams.append('disableApplePay', 'true');\n if (disableGooglePay) url.searchParams.append('disableGooglePay', 'true');\n if (settlementType)\n url.searchParams.append('settlementType', settlementType);\n\n if (lockAmount) url.searchParams.append('lockAmount', 'true');\n\n if (usePermit === false) url.searchParams.append('usePermit', 'false');\n if (transactionSigner)\n url.searchParams.append('transactionSigner', transactionSigner);\n if (authOnly === true) url.searchParams.append('authOnly', 'true');\n\n return url.toString();\n }\n\n static getTransaction(props: CoinflowPurchaseProps): string | undefined {\n if ('transaction' in props && props.transaction !== undefined) {\n const {transaction} = props;\n if (web3 && transaction instanceof web3.Transaction) {\n if (!base58) throw new Error('bs58 dependency is required for Solana');\n return base58.encode(\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n })\n );\n }\n\n if (web3 && transaction instanceof web3.VersionedTransaction) {\n if (!base58) throw new Error('bs58 dependency is required for Solana');\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return base58.encode(transaction.serialize());\n }\n\n return btoa(JSON.stringify(transaction));\n }\n\n if ('action' in props && props.action !== undefined) {\n return btoa(JSON.stringify(props.action));\n }\n\n return undefined;\n }\n\n static byBlockchain<T>(\n blockchain: CoinflowBlockchain,\n args: {solana: T; near: T; eth?: T; polygon: T; base: T}\n ): T {\n switch (blockchain) {\n case 'solana':\n return args.solana;\n case 'near':\n return args.near;\n case 'polygon':\n return args.polygon;\n case 'eth':\n if (args.eth === undefined)\n throw new Error('blockchain not supported for this operation!');\n return args.eth;\n case 'base':\n return args.base;\n default:\n throw new Error('blockchain not supported!');\n }\n }\n}\n","import {\n CoinflowPurchaseProps,\n EthWallet,\n NearWallet,\n SolanaWallet,\n} from './CoinflowTypes';\nimport {CoinflowUtils} from './CoinflowUtils';\nimport type {Transaction, VersionedTransaction} from '@solana/web3.js';\nimport {web3, base58} from './SolanaPeerDeps';\n\nexport type WalletCall = {method: IFrameMessageMethods; data: string};\n\nexport interface IFrameMessageHandlers {\n handleSendTransaction: (transaction: string) => Promise<string>;\n handleSignMessage?: (message: string) => Promise<string>;\n handleSignTransaction?: (transaction: string) => Promise<string>;\n handleHeightChange?: (height: string) => void;\n}\n\nenum IFrameMessageMethods {\n SignMessage = 'signMessage',\n SignTransaction = 'signTransaction',\n SendTransaction = 'sendTransaction',\n HeightChange = 'heightChange',\n}\n\nexport function getWalletPubkey({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): string | null | undefined {\n if ('publicKey' in wallet) {\n return wallet.publicKey!.toString();\n }\n\n if ('address' in wallet) {\n return wallet.address;\n }\n\n if ('accountId' in wallet) {\n return wallet.accountId;\n }\n\n return null;\n}\n\nexport function handleIFrameMessage(\n rawMessage: string,\n handlers: IFrameMessageHandlers\n): Promise<string> | void {\n let walletCall: WalletCall;\n try {\n walletCall = JSON.parse(rawMessage);\n if (!('method' in walletCall) || !('data' in walletCall)) return;\n } catch (e) {\n console.error('handleIFrameMessage JSON parse', e);\n return;\n }\n\n const {data, method} = walletCall;\n switch (method) {\n case IFrameMessageMethods.SignMessage:\n if (!handlers.handleSignMessage) return;\n return handlers.handleSignMessage(data);\n case IFrameMessageMethods.SignTransaction:\n if (!handlers.handleSignTransaction) return;\n return handlers.handleSignTransaction(data);\n case IFrameMessageMethods.SendTransaction:\n return handlers.handleSendTransaction(data);\n case IFrameMessageMethods.HeightChange:\n if (!handlers.handleHeightChange) return;\n return handlers.handleHeightChange(data);\n }\n\n console.warn(\n `Didn't expect to get here, handleIFrameMessage method:${method} is not one of ${Object.values(IFrameMessageMethods)}`\n );\n}\n\nexport function getHandlers({\n wallet,\n blockchain,\n}: Pick<CoinflowPurchaseProps, 'wallet' | 'blockchain'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n return CoinflowUtils.byBlockchain(blockchain, {\n solana: () => getSolanaWalletHandlers({wallet}),\n near: () => getNearWalletHandlers({wallet}),\n eth: () => getEvmWalletHandlers({wallet}),\n polygon: () => getEvmWalletHandlers({wallet}),\n base: () => getEvmWalletHandlers({wallet}),\n })();\n}\n\nfunction getSolanaWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n return {\n handleSendTransaction: async (transaction: string) => {\n const tx = getSolanaTransaction(transaction);\n return (wallet as SolanaWallet).sendTransaction(tx);\n },\n handleSignMessage: async (message: string) => {\n const signMessage = (wallet as SolanaWallet).signMessage;\n if (!signMessage) {\n throw new Error('signMessage is not supported by this wallet');\n }\n\n const signedMessage = await signMessage(\n new TextEncoder().encode(message)\n );\n if (!base58) throw new Error('bs58 dependency is required');\n return base58.encode(signedMessage);\n },\n handleSignTransaction: async (transaction: string) => {\n const signTransaction = (wallet as SolanaWallet).signTransaction;\n if (!signTransaction) {\n throw new Error('signTransaction is not supported by this wallet');\n }\n const tx = getSolanaTransaction(transaction);\n const signedTransaction = await signTransaction(tx);\n if (!base58) throw new Error('bs58 dependency is required');\n return base58.encode(\n signedTransaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n })\n );\n },\n };\n}\n\nfunction getSolanaTransaction(\n data: string\n): Transaction | VersionedTransaction {\n if (!web3)\n throw new Error(\n '@solana/web3.js is not defined. Please install @solana/web3.js into your project'\n );\n\n if (!base58)\n throw new Error(\n 'bs58 is not defined. Please install bs58 into your project'\n );\n\n const parsedUInt8Array = base58.decode(data);\n const vtx = web3.VersionedTransaction.deserialize(parsedUInt8Array);\n if (vtx.version === 'legacy') return web3.Transaction.from(parsedUInt8Array);\n return vtx;\n}\n\nfunction getNearWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n const nearWallet = wallet as NearWallet;\n return {\n handleSendTransaction: async (transaction: string) => {\n const action = JSON.parse(Buffer.from(transaction, 'base64').toString());\n const executionOutcome = await nearWallet.signAndSendTransaction(action);\n if (!executionOutcome) throw new Error('Transaction did not send');\n const {transaction: transactionResult} = executionOutcome;\n return transactionResult.hash;\n },\n };\n}\n\nfunction getEvmWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n const evmWallet = wallet as EthWallet;\n return {\n handleSendTransaction: async (transaction: string) => {\n const tx = JSON.parse(Buffer.from(transaction, 'base64').toString());\n const {hash} = await evmWallet.sendTransaction(tx);\n return hash;\n },\n handleSignMessage: async (message: string) => {\n return evmWallet.signMessage(message);\n },\n };\n}\n","import {\n Component,\n ElementRef,\n HostListener,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {\n CoinflowIFrameProps,\n CoinflowUtils,\n IFrameMessageHandlers,\n handleIFrameMessage,\n} from './common';\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\n\n@Component({\n selector: 'lib-coinflow-iframe',\n standalone: true,\n imports: [],\n template: ` <iframe\n width=\"100%\"\n height=\"100%\"\n #iframe\n scrolling=\"{{ iframeProps?.handleHeightChange ? 'no' : 'yes' }}\"\n allow=\"payment;camera\"\n title=\"withdraw\"\n frameBorder=\"0\"\n [src]=\"dynamicUrl\"\n ></iframe>`,\n})\nexport class CoinflowIFrameComponent {\n @Input() iframeProps!: CoinflowIFrameProps;\n @Input() messageHandlers!: IFrameMessageHandlers;\n\n dynamicUrl?: SafeResourceUrl;\n @ViewChild('iframe') iframe?: ElementRef<HTMLIFrameElement>;\n\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnInit() {\n const coinflowUrl = CoinflowUtils.getCoinflowUrl(this.iframeProps);\n this.dynamicUrl =\n this.sanitizer.bypassSecurityTrustResourceUrl(coinflowUrl);\n }\n\n @HostListener('window:message', ['$event']) onPostMessage(event: any) {\n if (\n !event.origin.includes(\n CoinflowUtils.getCoinflowBaseUrl(this.iframeProps.env)\n )\n )\n return;\n\n const promise = handleIFrameMessage(event.data, this.messageHandlers);\n if (!promise) return;\n promise.then(this.sendMessage.bind(this));\n }\n\n sendMessage(message: string) {\n if (!this.iframe || !this.iframe.nativeElement) return;\n this.iframe.nativeElement.contentWindow!.postMessage(message, '*');\n }\n}\n","import {Component, Input} from '@angular/core';\nimport {CoinflowIFrameComponent} from './coinflow-iframe.component';\nimport {\n CoinflowIFrameProps,\n CoinflowPurchaseProps,\n IFrameMessageHandlers,\n getHandlers,\n getWalletPubkey,\n CoinflowUtils,\n} from './common';\n\n@Component({\n selector: 'lib-coinflow-purchase',\n standalone: true,\n imports: [CoinflowIFrameComponent],\n template:\n ' <lib-coinflow-iframe ng-if=\"iframeProps && messageHandlers\" [iframeProps]=\"iframeProps!\" [messageHandlers]=\"messageHandlers!\"></lib-coinflow-iframe> ',\n})\nexport class CoinflowPurchaseComponent {\n @Input() purchaseProps!: CoinflowPurchaseProps;\n iframeProps?: CoinflowIFrameProps;\n messageHandlers?: IFrameMessageHandlers;\n\n ngOnInit() {\n const walletPubkey = getWalletPubkey(this.purchaseProps);\n this.messageHandlers = getHandlers(this.purchaseProps);\n this.messageHandlers.handleHeightChange =\n this.purchaseProps.handleHeightChange;\n\n this.iframeProps = {\n ...this.purchaseProps,\n walletPubkey,\n route: `/purchase/${this.purchaseProps?.merchantId}`,\n transaction: CoinflowUtils.getTransaction(this.purchaseProps),\n };\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-purchase-history',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-purchase-history works!</p> ',\n})\nexport class CoinflowPurchaseHistoryComponent {}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-purchase-protection',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-purchase-protection works!</p> ',\n})\nexport class CoinflowPurchaseProtectionComponent {}\n","import {Component, Input} from '@angular/core';\nimport {\n CoinflowIFrameProps,\n CoinflowWithdrawProps,\n IFrameMessageHandlers,\n getHandlers,\n getWalletPubkey,\n} from './common';\nimport {CoinflowIFrameComponent} from './coinflow-iframe.component';\n\n@Component({\n selector: 'lib-coinflow-withdraw',\n standalone: true,\n imports: [CoinflowIFrameComponent],\n template:\n ' <lib-coinflow-iframe ng-if=\"iframeProps && messageHandlers\" [iframeProps]=\"iframeProps!\" [messageHandlers]=\"messageHandlers!\"></lib-coinflow-iframe> ',\n})\nexport class CoinflowWithdrawComponent {\n @Input() withdrawProps!: CoinflowWithdrawProps;\n iframeProps?: CoinflowIFrameProps;\n messageHandlers?: IFrameMessageHandlers;\n\n ngOnInit() {\n const walletPubkey = getWalletPubkey(this.withdrawProps);\n this.messageHandlers = getHandlers(this.withdrawProps);\n this.messageHandlers.handleHeightChange =\n this.withdrawProps.handleHeightChange;\n\n this.iframeProps = {\n ...this.withdrawProps,\n walletPubkey,\n route: `/withdraw/${this.withdrawProps?.merchantId}`,\n transaction: undefined,\n };\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-withdraw-history',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-withdraw-history works!</p> ',\n})\nexport class CoinflowWithdrawHistoryComponent {}\n","/*\n * Public API Surface of coinflowlabs\n */\n\nexport * from './lib/coinflow-iframe.component';\nexport * from './lib/coinflow-purchase.component';\nexport * from './lib/coinflow-purchase-history.component';\nexport * from './lib/coinflow-purchase-protection.component';\nexport * from './lib/coinflow-withdraw.component';\nexport * from './lib/coinflow-withdraw-history.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAQA,IAAY,cAIX,CAAA;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,aAIX,CAAA;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA;;AClBD,IAAI,IAAkD,CAAC;AACvD,IAAI,MAAyC,CAAC;AAE9C,IAAI;AACF,IAAA,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAClC,IAAA,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAAC,OAAO,CAAC,EAAE;;MCEC,aAAa,CAAA;AAIxB,IAAA,WAAA,CAAY,GAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,2BAA2B,CAAC;AAC3D,aAAA,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,uBAAuB,CAAC;;YAC7D,IAAI,CAAC,GAAG,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,GAAG,gBAAgB,CAAC;KACzD;IAED,MAAM,iBAAiB,CAAC,UAAkB,EAAA;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA,eAAA,EAAkB,UAAU,CAAA,CAAE,CAAC;aACpD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;AACjC,aAAA,IAAI,CACH,CAAC,IAGA,KAAK,IAAI,CAAC,aAAa,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,CAChE;aACA,KAAK,CAAC,CAAC,IAAG;AACT,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjB,YAAA,OAAO,SAAS,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,MAAM,gBAAgB,CACpB,SAAiB,EACjB,UAAkB,EAClB,UAA6B,EAAA;AAE7B,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,IAAI,CAAC,GAAG,GAAG,CAAA,uBAAA,EAA0B,UAAU,CAAA,CAAE,EACjD;AACE,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;AACP,gBAAA,wBAAwB,EAAE,SAAS;AACnC,gBAAA,4BAA4B,EAAE,UAAU;AACzC,aAAA;AACF,SAAA,CACF,CAAC;QACF,MAAM,EAAC,OAAO,EAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AACxC,QAAA,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,kBAAkB,CAAC,GAAkB,EAAA;AAC1C,QAAA,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;AAAE,YAAA,OAAO,uBAAuB,CAAC;QAC3D,IAAI,GAAG,KAAK,OAAO;AAAE,YAAA,OAAO,uBAAuB,CAAC;QAEpD,OAAO,CAAA,QAAA,EAAW,GAAG,CAAA,cAAA,CAAgB,CAAC;KACvC;IAED,OAAO,iBAAiB,CAAC,GAAkB,EAAA;AACzC,QAAA,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;AAAE,YAAA,OAAO,2BAA2B,CAAC;QAC/D,IAAI,GAAG,KAAK,OAAO;AAAE,YAAA,OAAO,uBAAuB,CAAC;QAEpD,OAAO,CAAA,YAAA,EAAe,GAAG,CAAA,cAAA,CAAgB,CAAC;KAC3C;AAED,IAAA,OAAO,cAAc,CAAC,EACpB,YAAY,EACZ,KAAK,EACL,WAAW,EACX,GAAG,EACH,MAAM,EACN,WAAW,EACX,UAAU,EACV,6BAA6B,EAC7B,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EACxB,WAAW,EACX,KAAK,EACL,IAAI,EACJ,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,QAAQ,GACY,EAAA;QACpB,MAAM,MAAM,GAAG,WAAW;AACxB,cAAE,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,EAAI,UAAU,CAAE,CAAA;AACjC,cAAE,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE,CAAC;AACrB,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAa,CAAC,CAAC;QAEjD,IAAI,WAAW,EAAE;YACf,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;SACrD;QACD,IAAI,MAAM,EAAE;AACV,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;SACtD;QAED,IAAI,6BAA6B,EAAE;YACjC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;SAClE;QAED,IAAI,WAAW,EAAE;YACf,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,aAAa,EACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5D,CAAC;SACH;QAED,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,OAAO,EACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtD,CAAC;SACH;QAED,IAAI,YAAY,EAAE;YAChB,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,cAAc,EACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC7D,CAAC;SACH;QAED,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACzC;QAED,IAAI,KAAK,EAAE;AACT,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SACpD;QAED,IAAI,MAAM,EAAE;AACV,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;SACtD;QAED,IAAI,gBAAgB,EAAE;YACpB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;SAC/D;QAED,IAAI,kBAAkB,EAAE;YACtB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;SACpD;QAED,IAAI,uBAAuB,EAAE;YAC3B,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,yBAAyB,EACzB,uBAAuB,CACxB,CAAC;SACH;AAED,QAAA,IAAI,iBAAiB;AACnB,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,mBAAmB,EACnB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAClC,CAAC;AAEJ,QAAA,IAAI,WAAW;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAErE,QAAA,IAAI,wBAAwB;AAC1B,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,0BAA0B,EAC1B,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CACzC,CAAC;QACJ,IAAI,QAAQ,EAAE;YACZ,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;SAC/C;aAAM;AACL,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;;gBAGjC,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACjD,gBAAA,IAAI,QAAQ;oBAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;aAC7D;SACF;AAED,QAAA,IAAI,WAAW;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AACrE,QAAA,IAAI,KAAK;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnD,QAAA,IAAI,IAAI;AAAE,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpE,QAAA,IAAI,kBAAkB;AACpB,YAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,oBAAoB,EACpB,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CACvC,CAAC;AACJ,QAAA,IAAI,gBAAgB;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAC1E,QAAA,IAAI,QAAQ;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAE5D,QAAA,IAAI,eAAe;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AACxE,QAAA,IAAI,gBAAgB;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAC1E,QAAA,IAAI,cAAc;YAChB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAE5D,QAAA,IAAI,UAAU;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE9D,IAAI,SAAS,KAAK,KAAK;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACvE,QAAA,IAAI,iBAAiB;YACnB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QAClE,IAAI,QAAQ,KAAK,IAAI;YAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEnE,QAAA,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;KACvB;IAED,OAAO,cAAc,CAAC,KAA4B,EAAA;QAChD,IAAI,aAAa,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE;AAC7D,YAAA,MAAM,EAAC,WAAW,EAAC,GAAG,KAAK,CAAC;YAC5B,IAAI,IAAI,IAAI,WAAW,YAAY,IAAI,CAAC,WAAW,EAAE;AACnD,gBAAA,IAAI,CAAC,MAAM;AAAE,oBAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACvE,OAAO,MAAM,CAAC,MAAM;;;gBAGlB,WAAW,CAAC,SAAS,CAAC;AACpB,oBAAA,oBAAoB,EAAE,KAAK;AAC3B,oBAAA,gBAAgB,EAAE,KAAK;AACxB,iBAAA,CAAC,CACH,CAAC;aACH;YAED,IAAI,IAAI,IAAI,WAAW,YAAY,IAAI,CAAC,oBAAoB,EAAE;AAC5D,gBAAA,IAAI,CAAC,MAAM;AAAE,oBAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;;;gBAGvE,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;aAC/C;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;SAC1C;QAED,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;YACnD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3C;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,OAAO,YAAY,CACjB,UAA8B,EAC9B,IAAwD,EAAA;QAExD,QAAQ,UAAU;AAChB,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;AACxB,oBAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC,GAAG,CAAC;AAClB,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,YAAA;AACE,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAChD;KACF;AACF;;AC5PD,IAAK,oBAKJ,CAAA;AALD,CAAA,UAAK,oBAAoB,EAAA;AACvB,IAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC/B,CAAC,EALI,oBAAoB,KAApB,oBAAoB,GAKxB,EAAA,CAAA,CAAA,CAAA;AAEe,SAAA,eAAe,CAAC,EAC9B,MAAM,GACgC,EAAA;AACtC,IAAA,IAAI,WAAW,IAAI,MAAM,EAAE;AACzB,QAAA,OAAO,MAAM,CAAC,SAAU,CAAC,QAAQ,EAAE,CAAC;KACrC;AAED,IAAA,IAAI,SAAS,IAAI,MAAM,EAAE;QACvB,OAAO,MAAM,CAAC,OAAO,CAAC;KACvB;AAED,IAAA,IAAI,WAAW,IAAI,MAAM,EAAE;QACzB,OAAO,MAAM,CAAC,SAAS,CAAC;KACzB;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEe,SAAA,mBAAmB,CACjC,UAAkB,EAClB,QAA+B,EAAA;AAE/B,IAAA,IAAI,UAAsB,CAAC;AAC3B,IAAA,IAAI;AACF,QAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACpC,QAAA,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,IAAI,UAAU,CAAC;YAAE,OAAO;KAClE;IAAC,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO;KACR;AAED,IAAA,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,GAAG,UAAU,CAAC;IAClC,QAAQ,MAAM;QACZ,KAAK,oBAAoB,CAAC,WAAW;YACnC,IAAI,CAAC,QAAQ,CAAC,iBAAiB;gBAAE,OAAO;AACxC,YAAA,OAAO,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,oBAAoB,CAAC,eAAe;YACvC,IAAI,CAAC,QAAQ,CAAC,qBAAqB;gBAAE,OAAO;AAC5C,YAAA,OAAO,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC9C,KAAK,oBAAoB,CAAC,eAAe;AACvC,YAAA,OAAO,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC9C,KAAK,oBAAoB,CAAC,YAAY;YACpC,IAAI,CAAC,QAAQ,CAAC,kBAAkB;gBAAE,OAAO;AACzC,YAAA,OAAO,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;KAC5C;AAED,IAAA,OAAO,CAAC,IAAI,CACV,CAAA,sDAAA,EAAyD,MAAM,CAAkB,eAAA,EAAA,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA,CAAE,CACvH,CAAC;AACJ,CAAC;SAEe,WAAW,CAAC,EAC1B,MAAM,EACN,UAAU,GAC2C,EAAA;AAIrD,IAAA,OAAO,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE;QAC5C,MAAM,EAAE,MAAM,uBAAuB,CAAC,EAAC,MAAM,EAAC,CAAC;QAC/C,IAAI,EAAE,MAAM,qBAAqB,CAAC,EAAC,MAAM,EAAC,CAAC;QAC3C,GAAG,EAAE,MAAM,oBAAoB,CAAC,EAAC,MAAM,EAAC,CAAC;QACzC,OAAO,EAAE,MAAM,oBAAoB,CAAC,EAAC,MAAM,EAAC,CAAC;QAC7C,IAAI,EAAE,MAAM,oBAAoB,CAAC,EAAC,MAAM,EAAC,CAAC;AAC3C,KAAA,CAAC,EAAE,CAAC;AACP,CAAC;AAED,SAAS,uBAAuB,CAAC,EAC/B,MAAM,GACgC,EAAA;IAItC,OAAO;AACL,QAAA,qBAAqB,EAAE,OAAO,WAAmB,KAAI;AACnD,YAAA,MAAM,EAAE,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;AAC7C,YAAA,OAAQ,MAAuB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;SACrD;AACD,QAAA,iBAAiB,EAAE,OAAO,OAAe,KAAI;AAC3C,YAAA,MAAM,WAAW,GAAI,MAAuB,CAAC,WAAW,CAAC;YACzD,IAAI,CAAC,WAAW,EAAE;AAChB,gBAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;aAChE;AAED,YAAA,MAAM,aAAa,GAAG,MAAM,WAAW,CACrC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAClC,CAAC;AACF,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC5D,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SACrC;AACD,QAAA,qBAAqB,EAAE,OAAO,WAAmB,KAAI;AACnD,YAAA,MAAM,eAAe,GAAI,MAAuB,CAAC,eAAe,CAAC;YACjE,IAAI,CAAC,eAAe,EAAE;AACpB,gBAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;aACpE;AACD,YAAA,MAAM,EAAE,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;AAC7C,YAAA,MAAM,iBAAiB,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC5D,YAAA,OAAO,MAAM,CAAC,MAAM,CAClB,iBAAiB,CAAC,SAAS,CAAC;AAC1B,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,gBAAgB,EAAE,KAAK;AACxB,aAAA,CAAC,CACH,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAY,EAAA;AAEZ,IAAA,IAAI,CAAC,IAAI;AACP,QAAA,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;AAEJ,IAAA,IAAI,CAAC,MAAM;AACT,QAAA,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IAEJ,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACpE,IAAA,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC7E,IAAA,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,qBAAqB,CAAC,EAC7B,MAAM,GACgC,EAAA;IAItC,MAAM,UAAU,GAAG,MAAoB,CAAC;IACxC,OAAO;AACL,QAAA,qBAAqB,EAAE,OAAO,WAAmB,KAAI;AACnD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzE,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,gBAAgB;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AACnE,YAAA,MAAM,EAAC,WAAW,EAAE,iBAAiB,EAAC,GAAG,gBAAgB,CAAC;YAC1D,OAAO,iBAAiB,CAAC,IAAI,CAAC;SAC/B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,EAC5B,MAAM,GACgC,EAAA;IAItC,MAAM,SAAS,GAAG,MAAmB,CAAC;IACtC,OAAO;AACL,QAAA,qBAAqB,EAAE,OAAO,WAAmB,KAAI;AACnD,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrE,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AACnD,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,iBAAiB,EAAE,OAAO,OAAe,KAAI;AAC3C,YAAA,OAAO,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACvC;KACF,CAAC;AACJ;;MC9Ja,uBAAuB,CAAA;AAOlC,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;IAE/C,QAAQ,GAAA;QACN,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,UAAU;AACb,YAAA,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC;KAC9D;AAE2C,IAAA,aAAa,CAAC,KAAU,EAAA;AAClE,QAAA,IACE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CACpB,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CACvD;YAED,OAAO;AAET,QAAA,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,OAAO;YAAE,OAAO;AACrB,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAC3C;AAED,IAAA,WAAW,CAAC,OAAe,EAAA;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,OAAO;AACvD,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAc,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;KACpE;8GA/BU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAXxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;AASC,YAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEA,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAfnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;AASC,YAAA,CAAA;AACZ,iBAAA,CAAA;iFAEU,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAGe,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;gBAUyB,aAAa,EAAA,CAAA;sBAAxD,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC3B/B,yBAAyB,CAAA;IAKpC,QAAQ,GAAA;QACN,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,CAAC,kBAAkB;AACrC,YAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,IAAI,CAAC,aAAa;YACrB,YAAY;AACZ,YAAA,KAAK,EAAE,CAAa,UAAA,EAAA,IAAI,CAAC,aAAa,EAAE,UAAU,CAAE,CAAA;YACpD,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;SAC9D,CAAC;KACH;8GAjBU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFlC,wJAAwJ,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAFhJ,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAItB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,uBAAuB,CAAC;AAClC,oBAAA,QAAQ,EACN,wJAAwJ;AAC3J,iBAAA,CAAA;8BAEU,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MCXK,gCAAgC,CAAA;8GAAhC,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,yFAFjC,2CAA2C,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE1C,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAN5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,2CAA2C;AACtD,iBAAA,CAAA;;;MCCY,mCAAmC,CAAA;8GAAnC,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,4FAFpC,8CAA8C,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE7C,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAN/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,8CAA8C;AACzD,iBAAA,CAAA;;;MCUY,yBAAyB,CAAA;IAKpC,QAAQ,GAAA;QACN,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,CAAC,kBAAkB;AACrC,YAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,IAAI,CAAC,aAAa;YACrB,YAAY;AACZ,YAAA,KAAK,EAAE,CAAa,UAAA,EAAA,IAAI,CAAC,aAAa,EAAE,UAAU,CAAE,CAAA;AACpD,YAAA,WAAW,EAAE,SAAS;SACvB,CAAC;KACH;8GAjBU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFlC,yJAAyJ,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAFjJ,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAItB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,uBAAuB,CAAC;AAClC,oBAAA,QAAQ,EACN,yJAAyJ;AAC5J,iBAAA,CAAA;8BAEU,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MCVK,gCAAgC,CAAA;8GAAhC,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,yFAFjC,2CAA2C,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE1C,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAN5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,QAAQ,EAAE,2CAA2C;AACtD,iBAAA,CAAA;;;ACPD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"coinflowlabs-angular.mjs","sources":["../../../projects/coinflowlabs/src/lib/common/CoinflowTypes.ts","../../../projects/coinflowlabs/src/lib/common/CoinflowUtils.ts","../../../projects/coinflowlabs/src/lib/common/CoinflowLibMessageHandlers.ts","../../../projects/coinflowlabs/src/lib/coinflow-iframe.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase-history.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-purchase-protection.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-withdraw.component.ts","../../../projects/coinflowlabs/src/lib/coinflow-withdraw-history.component.ts","../../../projects/coinflowlabs/src/public-api.ts","../../../projects/coinflowlabs/src/coinflowlabs-angular.ts"],"sourcesContent":["import type {\n Connection,\n VersionedTransaction,\n PublicKey,\n Signer,\n Transaction,\n} from '@solana/web3.js';\n\nexport enum SettlementType {\n Credits = 'Credits',\n USDC = 'USDC',\n Bank = 'Bank',\n}\n\nexport enum MerchantStyle {\n Rounded = 'rounded',\n Sharp = 'sharp',\n Pill = 'pill',\n}\n\nexport type MerchantTheme = {\n primary?: string;\n background?: string;\n backgroundAccent?: string;\n backgroundAccent2?: string;\n textColor?: string;\n textColorAccent?: string;\n textColorAction?: string;\n font?: string;\n style?: MerchantStyle;\n};\n\nexport interface CustomerInfo {\n name?: string;\n verificationId?: string;\n displayName?: string;\n address?: string;\n city?: string;\n state?: string;\n zip?: string;\n country?: string;\n ip?: string;\n lat?: string;\n lng?: string;\n}\n\n/** Coinflow Types **/\nexport type CoinflowBlockchain = 'solana' | 'near' | 'eth' | 'polygon' | 'base';\nexport type CoinflowEnvs = 'prod' | 'staging' | 'sandbox' | 'local';\n\nexport interface CoinflowTypes {\n merchantId: string;\n env?: CoinflowEnvs;\n loaderBackground?: string;\n blockchain: CoinflowBlockchain;\n handleHeightChange?: (height: string) => void;\n theme?: MerchantTheme;\n}\n\nexport type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\nexport type OnSuccessMethod = (params: string) => void | Promise<void>;\n\n/** Wallets **/\nexport interface SolanaWallet {\n publicKey: PublicKey | null;\n signTransaction?: <T extends Transaction | VersionedTransaction>(\n transaction: T\n ) => Promise<T>;\n sendTransaction: <T extends Transaction | VersionedTransaction>(\n transaction: T\n ) => Promise<string>;\n signMessage?: (message: Uint8Array) => Promise<Uint8Array>;\n}\n\nexport interface NearWallet {\n accountId: string;\n signAndSendTransaction: (transaction: unknown) => Promise<{\n transaction: {hash: string};\n }>;\n}\n\ntype AccessList = Array<{address: string; storageKeys: Array<string>}>;\ntype AccessListish =\n | AccessList\n | Array<[string, Array<string>]>\n | Record<string, Array<string>>;\n\nexport type EthWallet = {\n address: string | null | undefined;\n sendTransaction: (transaction: {\n to: string;\n from?: string;\n nonce?: Bytes | bigint | string | number;\n\n gasLimit?: Bytes | bigint | string | number;\n gasPrice?: Bytes | bigint | string | number;\n\n data?: BytesLike;\n value?: Bytes | bigint | string | number;\n chainId?: number;\n\n type?: number;\n accessList?: AccessListish;\n\n maxPriorityFeePerGas?: Bytes | bigint | string | number;\n maxFeePerGas?: Bytes | bigint | string | number;\n\n customData?: Record<string, any>;\n ccipReadEnabled?: boolean;\n }) => Promise<{hash: string}>;\n signMessage: (message: string) => Promise<string>;\n};\n\n/** History **/\nexport interface CoinflowSolanaHistoryProps extends CoinflowTypes {\n wallet: SolanaWallet;\n connection: Connection;\n blockchain: 'solana';\n}\n\nexport interface CoinflowNearHistoryProps extends CoinflowTypes {\n wallet: NearWallet;\n blockchain: 'near';\n}\n\nexport interface CoinflowEvmHistoryProps extends CoinflowTypes {\n wallet: EthWallet;\n}\n\nexport interface CoinflowEthHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'eth';\n}\n\nexport interface CoinflowPolygonHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowBaseHistoryProps extends CoinflowEvmHistoryProps {\n blockchain: 'base';\n}\n\nexport type CoinflowHistoryProps =\n | CoinflowSolanaHistoryProps\n | CoinflowNearHistoryProps\n | CoinflowPolygonHistoryProps\n | CoinflowEthHistoryProps\n | CoinflowBaseHistoryProps;\n\n/** Transactions **/\n\nexport type NearFtTransferCallAction = {\n methodName: 'ft_transfer_call';\n args: object;\n gas: string;\n deposit: string;\n};\n\ntype Bytes = ArrayLike<number>;\ntype BytesLike = Bytes | string;\n\n/** Purchase **/\n\nexport type ChargebackProtectionData = ChargebackProtectionItem[];\n\nexport interface ChargebackProtectionItem {\n /**\n * The name of the product\n */\n productName: string;\n /**\n * The product type. Possible values include: inGameProduct, gameOfSkill, dataStorage, computingResources, sportsTicket, eSportsTicket, musicTicket, conferenceTicket, virtualSportsTicket, virtualESportsTicket, virtualMusicTicket, virtualConferenceTicket, alcohol, DLC, subscription, fundACause, realEstate, computingContract, digitalArt, topUp\n */\n productType:\n | 'inGameProduct'\n | 'gameOfSkill'\n | 'dataStorage'\n | 'computingResources'\n | 'sportsTicket'\n | 'eSportsTicket'\n | 'musicTicket'\n | 'conferenceTicket'\n | 'virtualSportsTicket'\n | 'virtualESportsTicket'\n | 'virtualMusicTicket'\n | 'virtualConferenceTicket'\n | 'alcohol'\n | 'DLC'\n | 'subscription'\n | 'fundACause'\n | 'realEstate'\n | 'computingContract'\n | 'digitalArt'\n | 'topUp'\n | 'ownershipContract';\n /**\n * The item's list price\n */\n /**\n * The number of units sold\n */\n quantity: number;\n /**\n * Any additional data that the store can provide on the product, e.g. description, link to image, etc.\n */\n rawProductData?: {[key: string]: any};\n}\n\nexport interface CoinflowCommonPurchaseProps extends CoinflowTypes {\n amount?: number;\n onSuccess?: OnSuccessMethod;\n webhookInfo?: object;\n email?: string;\n chargebackProtectionData?: ChargebackProtectionData;\n planCode?: string;\n disableApplePay?: boolean;\n disableGooglePay?: boolean;\n customerInfo?: CustomerInfo;\n settlementType?: SettlementType;\n authOnly?: boolean;\n deviceId?: string;\n}\n\nexport interface CoinflowSolanaPurchaseProps\n extends CoinflowCommonPurchaseProps {\n wallet: SolanaWallet;\n transaction?: Transaction | VersionedTransaction;\n partialSigners?: Signer[];\n debugTx?: boolean;\n connection: Connection;\n blockchain: 'solana';\n token?: PublicKey | string;\n supportsVersionedTransactions?: boolean;\n rent?: {lamports: string | number};\n nativeSolToConvert?: {lamports: string | number};\n}\n\nexport interface CoinflowNearPurchaseProps extends CoinflowCommonPurchaseProps {\n wallet: NearWallet;\n blockchain: 'near';\n action?: NearFtTransferCallAction;\n nearDeposit?: string;\n}\n\nexport interface CoinflowEvmPurchaseProps extends CoinflowCommonPurchaseProps {\n transaction?: EvmTransactionData;\n token?: string;\n wallet: EthWallet;\n}\n\nexport interface CoinflowPolygonPurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowEthPurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'eth';\n}\n\nexport interface CoinflowBasePurchaseProps extends CoinflowEvmPurchaseProps {\n blockchain: 'base';\n}\n\nexport type CoinflowPurchaseProps =\n | CoinflowSolanaPurchaseProps\n | CoinflowNearPurchaseProps\n | CoinflowPolygonPurchaseProps\n | CoinflowEthPurchaseProps\n | CoinflowBasePurchaseProps;\n\n/** Withdraw **/\n\nexport interface CoinflowCommonWithdrawProps extends CoinflowTypes {\n onSuccess?: OnSuccessMethod;\n tokens?: string[];\n lockDefaultToken?: boolean;\n amount?: number;\n email?: string;\n bankAccountLinkRedirect?: string;\n additionalWallets?: {\n wallet: string;\n blockchain: 'solana' | 'eth' | 'near' | 'polygon';\n }[];\n supportsVersionedTransactions?: boolean;\n lockAmount?: boolean;\n transactionSigner?: string;\n}\n\nexport interface CoinflowSolanaWithdrawProps\n extends CoinflowCommonWithdrawProps {\n wallet: SolanaWallet;\n connection: Connection;\n blockchain: 'solana';\n}\n\nexport interface CoinflowNearWithdrawProps extends CoinflowCommonWithdrawProps {\n wallet: NearWallet;\n blockchain: 'near';\n}\n\nexport interface CoinflowEvmWithdrawProps extends CoinflowCommonWithdrawProps {\n wallet: EthWallet;\n usePermit?: boolean;\n}\n\nexport interface CoinflowEthWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'eth';\n usePermit?: boolean;\n}\n\nexport interface CoinflowPolygonWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'polygon';\n}\n\nexport interface CoinflowBaseWithdrawProps extends CoinflowEvmWithdrawProps {\n blockchain: 'base';\n}\n\nexport type CoinflowWithdrawProps =\n | CoinflowSolanaWithdrawProps\n | CoinflowNearWithdrawProps\n | CoinflowEthWithdrawProps\n | CoinflowPolygonWithdrawProps\n | CoinflowBaseWithdrawProps;\n\nexport interface CommonEvmRedeem {\n waitForHash?: boolean;\n}\n\nexport interface NormalRedeem extends CommonEvmRedeem {\n transaction: {to: string; data: string};\n}\n\nexport interface KnownTokenIdRedeem extends NormalRedeem {\n nftContract: string;\n nftId: string;\n}\n\nexport interface SafeMintRedeem extends NormalRedeem {\n type: 'safeMint';\n nftContract?: string;\n}\n\nexport interface ReturnedTokenIdRedeem extends NormalRedeem {\n type: 'returned';\n nftContract?: string;\n}\n\ntype ReservoirNftIdItem = Omit<KnownTokenIdRedeem, keyof NormalRedeem>;\ninterface ReservoirOrderIdItem {\n orderId: string;\n}\ntype ReservoirItem = ReservoirNftIdItem | ReservoirOrderIdItem;\ntype ReservoirItems = ReservoirItem | ReservoirItem[];\n\nexport interface ReservoirRedeem extends CommonEvmRedeem {\n type: 'reservoir';\n items: ReservoirItems;\n}\n\nexport type EvmTransactionData =\n | SafeMintRedeem\n | ReturnedTokenIdRedeem\n | ReservoirRedeem\n | KnownTokenIdRedeem\n | NormalRedeem;\n\nexport interface CoinflowIFrameProps\n extends Omit<CoinflowTypes, 'merchantId'>,\n Pick<\n CoinflowCommonPurchaseProps,\n | 'chargebackProtectionData'\n | 'webhookInfo'\n | 'amount'\n | 'customerInfo'\n | 'settlementType'\n | 'email'\n | 'planCode'\n | 'deviceId'\n >,\n Pick<\n CoinflowCommonWithdrawProps,\n | 'bankAccountLinkRedirect'\n | 'additionalWallets'\n | 'transactionSigner'\n | 'lockAmount'\n | 'lockDefaultToken'\n >,\n Pick<CoinflowEvmPurchaseProps, 'authOnly'>,\n Pick<CoinflowSolanaPurchaseProps, 'rent' | 'nativeSolToConvert' | 'token'> {\n walletPubkey: string | null | undefined;\n route: string;\n routePrefix?: string;\n transaction?: string;\n tokens?: string[] | PublicKey[];\n supportsVersionedTransactions?: boolean;\n nearDeposit?: string;\n merchantCss?: string;\n color?: 'white' | 'black';\n disableApplePay?: boolean;\n disableGooglePay?: boolean;\n theme?: MerchantTheme;\n usePermit?: boolean;\n}\n","import {\n CoinflowBlockchain,\n CoinflowEnvs,\n CoinflowIFrameProps,\n CoinflowPurchaseProps,\n} from './CoinflowTypes';\nimport * as web3 from '@solana/web3.js';\nimport * as base58 from 'bs58';\n\nexport class CoinflowUtils {\n env: CoinflowEnvs;\n url: string;\n\n constructor(env?: CoinflowEnvs) {\n this.env = env ?? 'prod';\n if (this.env === 'prod') this.url = 'https://api.coinflow.cash';\n else if (this.env === 'local') this.url = 'http://localhost:5000';\n else this.url = `https://api-${this.env}.coinflow.cash`;\n }\n\n async getNSurePartnerId(merchantId: string): Promise<string | undefined> {\n return fetch(this.url + `/merchant/view/${merchantId}`)\n .then(response => response.json())\n .then(\n (json: {\n nSurePartnerId: string | undefined;\n nSureSettings: {nSurePartnerId: string | undefined};\n }) => json.nSureSettings?.nSurePartnerId || json.nSurePartnerId\n )\n .catch(e => {\n console.error(e);\n return undefined;\n });\n }\n\n async getCreditBalance(\n publicKey: string,\n merchantId: string,\n blockchain: 'solana' | 'near'\n ): Promise<{cents: number}> {\n const response = await fetch(\n this.url + `/api/customer/balances/${merchantId}`,\n {\n method: 'GET',\n headers: {\n 'x-coinflow-auth-wallet': publicKey,\n 'x-coinflow-auth-blockchain': blockchain,\n },\n }\n );\n const {credits} = await response.json();\n return credits;\n }\n\n static getCoinflowBaseUrl(env?: CoinflowEnvs): string {\n if (!env || env === 'prod') return 'https://coinflow.cash';\n if (env === 'local') return 'http://localhost:3000';\n\n return `https://${env}.coinflow.cash`;\n }\n\n static getCoinflowApiUrl(env?: CoinflowEnvs): string {\n if (!env || env === 'prod') return 'https://api.coinflow.cash';\n if (env === 'local') return 'http://localhost:5000';\n\n return `https://api-${env}.coinflow.cash`;\n }\n\n static getCoinflowUrl({\n walletPubkey,\n route,\n routePrefix,\n env,\n amount,\n transaction,\n blockchain,\n supportsVersionedTransactions,\n webhookInfo,\n email,\n loaderBackground,\n handleHeightChange,\n bankAccountLinkRedirect,\n additionalWallets,\n nearDeposit,\n chargebackProtectionData,\n merchantCss,\n color,\n rent,\n lockDefaultToken,\n token,\n tokens,\n planCode,\n disableApplePay,\n disableGooglePay,\n customerInfo,\n settlementType,\n lockAmount,\n nativeSolToConvert,\n theme,\n usePermit,\n transactionSigner,\n authOnly,\n deviceId,\n }: CoinflowIFrameProps): string {\n const prefix = routePrefix\n ? `/${routePrefix}/${blockchain}`\n : `/${blockchain}`;\n const url = new URL(prefix + route, CoinflowUtils.getCoinflowBaseUrl(env));\n url.searchParams.append('pubkey', walletPubkey!);\n\n if (transaction) {\n url.searchParams.append('transaction', transaction);\n }\n if (amount) {\n url.searchParams.append('amount', amount.toString());\n }\n\n if (supportsVersionedTransactions) {\n url.searchParams.append('supportsVersionedTransactions', 'true');\n }\n\n if (webhookInfo) {\n url.searchParams.append(\n 'webhookInfo',\n Buffer.from(JSON.stringify(webhookInfo)).toString('base64')\n );\n }\n\n if (theme) {\n url.searchParams.append(\n 'theme',\n Buffer.from(JSON.stringify(theme)).toString('base64')\n );\n }\n\n if (customerInfo) {\n url.searchParams.append(\n 'customerInfo',\n Buffer.from(JSON.stringify(customerInfo)).toString('base64')\n );\n }\n\n if (email) {\n url.searchParams.append('email', email);\n }\n\n if (token) {\n url.searchParams.append('token', token.toString());\n }\n\n if (tokens) {\n url.searchParams.append('tokens', tokens.toString());\n }\n\n if (loaderBackground) {\n url.searchParams.append('loaderBackground', loaderBackground);\n }\n\n if (handleHeightChange) {\n url.searchParams.append('useHeightChange', 'true');\n }\n\n if (bankAccountLinkRedirect) {\n url.searchParams.append(\n 'bankAccountLinkRedirect',\n bankAccountLinkRedirect\n );\n }\n\n if (additionalWallets)\n url.searchParams.append(\n 'additionalWallets',\n JSON.stringify(additionalWallets)\n );\n\n if (nearDeposit) url.searchParams.append('nearDeposit', nearDeposit);\n\n if (chargebackProtectionData)\n url.searchParams.append(\n 'chargebackProtectionData',\n JSON.stringify(chargebackProtectionData)\n );\n if (deviceId) {\n url.searchParams.append('deviceId', deviceId);\n } else {\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const deviceId = window?.nSureSDK?.getDeviceId();\n if (deviceId) url.searchParams.append('deviceId', deviceId);\n }\n }\n\n if (merchantCss) url.searchParams.append('merchantCss', merchantCss);\n if (color) url.searchParams.append('color', color);\n if (rent) url.searchParams.append('rent', rent.lamports.toString());\n if (nativeSolToConvert)\n url.searchParams.append(\n 'nativeSolToConvert',\n nativeSolToConvert.lamports.toString()\n );\n if (lockDefaultToken) url.searchParams.append('lockDefaultToken', 'true');\n if (planCode) url.searchParams.append('planCode', planCode);\n\n if (disableApplePay) url.searchParams.append('disableApplePay', 'true');\n if (disableGooglePay) url.searchParams.append('disableGooglePay', 'true');\n if (settlementType)\n url.searchParams.append('settlementType', settlementType);\n\n if (lockAmount) url.searchParams.append('lockAmount', 'true');\n\n if (usePermit === false) url.searchParams.append('usePermit', 'false');\n if (transactionSigner)\n url.searchParams.append('transactionSigner', transactionSigner);\n if (authOnly === true) url.searchParams.append('authOnly', 'true');\n\n return url.toString();\n }\n\n static getTransaction(props: CoinflowPurchaseProps): string | undefined {\n if ('transaction' in props && props.transaction !== undefined) {\n const {transaction} = props;\n if (web3 && transaction instanceof web3.Transaction) {\n if (!base58) throw new Error('bs58 dependency is required for Solana');\n return base58.encode(\n transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n })\n );\n }\n\n if (web3 && transaction instanceof web3.VersionedTransaction) {\n if (!base58) throw new Error('bs58 dependency is required for Solana');\n return base58.encode(transaction.serialize());\n }\n\n return btoa(JSON.stringify(transaction));\n }\n\n if ('action' in props && props.action !== undefined) {\n return btoa(JSON.stringify(props.action));\n }\n\n return undefined;\n }\n\n static byBlockchain<T>(\n blockchain: CoinflowBlockchain,\n args: {solana: T; near: T; eth?: T; polygon: T; base: T}\n ): T {\n switch (blockchain) {\n case 'solana':\n return args.solana;\n case 'near':\n return args.near;\n case 'polygon':\n return args.polygon;\n case 'eth':\n if (args.eth === undefined)\n throw new Error('blockchain not supported for this operation!');\n return args.eth;\n case 'base':\n return args.base;\n default:\n throw new Error('blockchain not supported!');\n }\n }\n}\n","import {\n CoinflowPurchaseProps,\n EthWallet,\n NearWallet,\n SolanaWallet,\n} from './CoinflowTypes';\nimport {CoinflowUtils} from './CoinflowUtils';\nimport {Transaction, VersionedTransaction} from '@solana/web3.js';\nimport * as web3 from '@solana/web3.js';\nimport base58 from 'bs58';\n\nexport type WalletCall = {method: IFrameMessageMethods; data: string};\n\nexport interface IFrameMessageHandlers {\n handleSendTransaction: (transaction: string) => Promise<string>;\n handleSignMessage?: (message: string) => Promise<string>;\n handleSignTransaction?: (transaction: string) => Promise<string>;\n handleHeightChange?: (height: string) => void;\n}\n\nenum IFrameMessageMethods {\n SignMessage = 'signMessage',\n SignTransaction = 'signTransaction',\n SendTransaction = 'sendTransaction',\n HeightChange = 'heightChange',\n}\n\nexport function getWalletPubkey({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): string | null | undefined {\n if ('publicKey' in wallet) {\n return wallet.publicKey!.toString();\n }\n\n if ('address' in wallet) {\n return wallet.address;\n }\n\n if ('accountId' in wallet) {\n return wallet.accountId;\n }\n\n return null;\n}\n\nexport function handleIFrameMessage(\n rawMessage: string,\n handlers: IFrameMessageHandlers\n): Promise<string> | void {\n let walletCall: WalletCall;\n try {\n walletCall = JSON.parse(rawMessage);\n if (!('method' in walletCall) || !('data' in walletCall)) return;\n } catch (e) {\n console.error('handleIFrameMessage JSON parse', e);\n return;\n }\n\n const {data, method} = walletCall;\n switch (method) {\n case IFrameMessageMethods.SignMessage:\n if (!handlers.handleSignMessage) return;\n return handlers.handleSignMessage(data);\n case IFrameMessageMethods.SignTransaction:\n if (!handlers.handleSignTransaction) return;\n return handlers.handleSignTransaction(data);\n case IFrameMessageMethods.SendTransaction:\n return handlers.handleSendTransaction(data);\n case IFrameMessageMethods.HeightChange:\n if (!handlers.handleHeightChange) return;\n return handlers.handleHeightChange(data);\n }\n\n console.warn(\n `Didn't expect to get here, handleIFrameMessage method:${method} is not one of ${Object.values(IFrameMessageMethods)}`\n );\n}\n\nexport function getHandlers({\n wallet,\n blockchain,\n}: Pick<CoinflowPurchaseProps, 'wallet' | 'blockchain'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n return CoinflowUtils.byBlockchain(blockchain, {\n solana: () => getSolanaWalletHandlers({wallet}),\n near: () => getNearWalletHandlers({wallet}),\n eth: () => getEvmWalletHandlers({wallet}),\n polygon: () => getEvmWalletHandlers({wallet}),\n base: () => getEvmWalletHandlers({wallet}),\n })();\n}\n\nfunction getSolanaWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n return {\n handleSendTransaction: async (transaction: string) => {\n const tx = getSolanaTransaction(transaction);\n return (wallet as SolanaWallet).sendTransaction(tx);\n },\n handleSignMessage: async (message: string) => {\n const signMessage = (wallet as SolanaWallet).signMessage;\n if (!signMessage) {\n throw new Error('signMessage is not supported by this wallet');\n }\n\n const signedMessage = await signMessage(\n new TextEncoder().encode(message)\n );\n return base58.encode(signedMessage);\n },\n handleSignTransaction: async (transaction: string) => {\n const signTransaction = (wallet as SolanaWallet).signTransaction;\n if (!signTransaction) {\n throw new Error('signTransaction is not supported by this wallet');\n }\n const tx = getSolanaTransaction(transaction);\n const signedTransaction = await signTransaction(tx);\n return base58.encode(\n signedTransaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n })\n );\n },\n };\n}\n\nfunction getSolanaTransaction(\n data: string\n): Transaction | VersionedTransaction {\n if (!web3)\n throw new Error(\n '@solana/web3.js is not defined. Please install @solana/web3.js into your project'\n );\n\n if (!base58)\n throw new Error(\n 'bs58 is not defined. Please install bs58 into your project'\n );\n\n const parsedUInt8Array = base58.decode(data);\n const vtx = web3.VersionedTransaction.deserialize(parsedUInt8Array);\n if (vtx.version === 'legacy') return web3.Transaction.from(parsedUInt8Array);\n return vtx;\n}\n\nfunction getNearWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n const nearWallet = wallet as NearWallet;\n return {\n handleSendTransaction: async (transaction: string) => {\n const action = JSON.parse(Buffer.from(transaction, 'base64').toString());\n const executionOutcome = await nearWallet.signAndSendTransaction(action);\n if (!executionOutcome) throw new Error('Transaction did not send');\n const {transaction: transactionResult} = executionOutcome;\n return transactionResult.hash;\n },\n };\n}\n\nfunction getEvmWalletHandlers({\n wallet,\n}: Pick<CoinflowPurchaseProps, 'wallet'>): Omit<\n IFrameMessageHandlers,\n 'handleHeightChange'\n> {\n const evmWallet = wallet as EthWallet;\n return {\n handleSendTransaction: async (transaction: string) => {\n const tx = JSON.parse(Buffer.from(transaction, 'base64').toString());\n const {hash} = await evmWallet.sendTransaction(tx);\n return hash;\n },\n handleSignMessage: async (message: string) => {\n return evmWallet.signMessage(message);\n },\n };\n}\n","import {\n Component,\n ElementRef,\n HostListener,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {\n CoinflowIFrameProps,\n CoinflowUtils,\n IFrameMessageHandlers,\n handleIFrameMessage,\n} from './common';\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\n\n@Component({\n selector: 'lib-coinflow-iframe',\n standalone: true,\n imports: [],\n template: ` <iframe\n width=\"100%\"\n height=\"100%\"\n #iframe\n scrolling=\"{{ iframeProps?.handleHeightChange ? 'no' : 'yes' }}\"\n allow=\"payment;camera\"\n title=\"withdraw\"\n frameBorder=\"0\"\n [src]=\"dynamicUrl\"\n ></iframe>`,\n})\nexport class CoinflowIFrameComponent {\n @Input() iframeProps!: CoinflowIFrameProps;\n @Input() messageHandlers!: IFrameMessageHandlers;\n\n dynamicUrl?: SafeResourceUrl;\n @ViewChild('iframe') iframe?: ElementRef<HTMLIFrameElement>;\n\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnInit() {\n const coinflowUrl = CoinflowUtils.getCoinflowUrl(this.iframeProps);\n this.dynamicUrl =\n this.sanitizer.bypassSecurityTrustResourceUrl(coinflowUrl);\n }\n\n @HostListener('window:message', ['$event']) onPostMessage(event: any) {\n if (\n !event.origin.includes(\n CoinflowUtils.getCoinflowBaseUrl(this.iframeProps.env)\n )\n )\n return;\n\n const promise = handleIFrameMessage(event.data, this.messageHandlers);\n if (!promise) return;\n promise.then(this.sendMessage.bind(this));\n }\n\n sendMessage(message: string) {\n if (!this.iframe || !this.iframe.nativeElement) return;\n this.iframe.nativeElement.contentWindow!.postMessage(message, '*');\n }\n}\n","import {Component, Input} from '@angular/core';\nimport {CoinflowIFrameComponent} from './coinflow-iframe.component';\nimport {\n CoinflowIFrameProps,\n CoinflowPurchaseProps,\n IFrameMessageHandlers,\n getHandlers,\n getWalletPubkey,\n CoinflowUtils,\n} from './common';\n\n@Component({\n selector: 'lib-coinflow-purchase',\n standalone: true,\n imports: [CoinflowIFrameComponent],\n template:\n ' <lib-coinflow-iframe ng-if=\"iframeProps && messageHandlers\" [iframeProps]=\"iframeProps!\" [messageHandlers]=\"messageHandlers!\"></lib-coinflow-iframe> ',\n})\nexport class CoinflowPurchaseComponent {\n @Input() purchaseProps!: CoinflowPurchaseProps;\n iframeProps?: CoinflowIFrameProps;\n messageHandlers?: IFrameMessageHandlers;\n\n ngOnInit() {\n const walletPubkey = getWalletPubkey(this.purchaseProps);\n this.messageHandlers = getHandlers(this.purchaseProps);\n this.messageHandlers.handleHeightChange =\n this.purchaseProps.handleHeightChange;\n\n this.iframeProps = {\n ...this.purchaseProps,\n walletPubkey,\n route: `/purchase/${this.purchaseProps?.merchantId}`,\n transaction: CoinflowUtils.getTransaction(this.purchaseProps),\n };\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-purchase-history',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-purchase-history works!</p> ',\n})\nexport class CoinflowPurchaseHistoryComponent {}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-purchase-protection',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-purchase-protection works!</p> ',\n})\nexport class CoinflowPurchaseProtectionComponent {}\n","import {Component, Input} from '@angular/core';\nimport {\n CoinflowIFrameProps,\n CoinflowWithdrawProps,\n IFrameMessageHandlers,\n getHandlers,\n getWalletPubkey,\n} from './common';\nimport {CoinflowIFrameComponent} from './coinflow-iframe.component';\n\n@Component({\n selector: 'lib-coinflow-withdraw',\n standalone: true,\n imports: [CoinflowIFrameComponent],\n template:\n ' <lib-coinflow-iframe ng-if=\"iframeProps && messageHandlers\" [iframeProps]=\"iframeProps!\" [messageHandlers]=\"messageHandlers!\"></lib-coinflow-iframe> ',\n})\nexport class CoinflowWithdrawComponent {\n @Input() withdrawProps!: CoinflowWithdrawProps;\n iframeProps?: CoinflowIFrameProps;\n messageHandlers?: IFrameMessageHandlers;\n\n ngOnInit() {\n const walletPubkey = getWalletPubkey(this.withdrawProps);\n this.messageHandlers = getHandlers(this.withdrawProps);\n this.messageHandlers.handleHeightChange =\n this.withdrawProps.handleHeightChange;\n\n this.iframeProps = {\n ...this.withdrawProps,\n walletPubkey,\n route: `/withdraw/${this.withdrawProps?.merchantId}`,\n transaction: undefined,\n };\n }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'lib-coinflow-withdraw-history',\n standalone: true,\n imports: [],\n template: ' <p>coinflow-withdraw-history works!</p> ',\n})\nexport class CoinflowWithdrawHistoryComponent {}\n","/*\n * Public API Surface of coinflowlabs\n */\n\nexport * from './lib/coinflow-iframe.component';\nexport * from './lib/coinflow-purchase.component';\nexport * from './lib/coinflow-purchase-history.component';\nexport * from './lib/coinflow-purchase-protection.component';\nexport * from './lib/coinflow-withdraw.component';\nexport * from './lib/coinflow-withdraw-history.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["base58"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinflowlabs/angular",
3
- "version": "0.0.5-sandbox2",
3
+ "version": "0.0.5",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.0",
6
6
  "@angular/core": "^17.3.0",
@@ -1,9 +0,0 @@
1
- let web3;
2
- let base58;
3
- try {
4
- web3 = require('@solana/web3.js');
5
- base58 = require('bs58');
6
- }
7
- catch (e) { }
8
- export { web3, base58 };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29sYW5hUGVlckRlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jb21tb24vU29sYW5hUGVlckRlcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxJQUFrRCxDQUFDO0FBQ3ZELElBQUksTUFBeUMsQ0FBQztBQUU5QyxJQUFJLENBQUM7SUFDSCxJQUFJLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7QUFFZCxPQUFPLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsibGV0IHdlYjM6IHR5cGVvZiBpbXBvcnQoJ0Bzb2xhbmEvd2ViMy5qcycpIHwgdW5kZWZpbmVkO1xubGV0IGJhc2U1ODogdHlwZW9mIGltcG9ydCgnYnM1OCcpIHwgdW5kZWZpbmVkO1xuXG50cnkge1xuICB3ZWIzID0gcmVxdWlyZSgnQHNvbGFuYS93ZWIzLmpzJyk7XG4gIGJhc2U1OCA9IHJlcXVpcmUoJ2JzNTgnKTtcbn0gY2F0Y2ggKGUpIHt9XG5cbmV4cG9ydCB7d2ViMywgYmFzZTU4fTtcbiJdfQ==
@@ -1,4 +0,0 @@
1
- /// <reference types="@solana/web3.js" />
2
- declare let web3: typeof import('@solana/web3.js') | undefined;
3
- declare let base58: typeof import('bs58') | undefined;
4
- export { web3, base58 };