@zkp2p/sdk 0.14.2-rc.4 → 0.14.3

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.
@@ -0,0 +1,12 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ // <define:__ZKP2P_SDK_BUILD_METADATA__>
8
+ var define_ZKP2P_SDK_BUILD_METADATA_default = { schemaVersion: 2, source: { repository: "zkp2p/zkp2p-clients", commitSha: "e848bb1cab3615498514e767e43ea50ec464a633", kind: "github", distributable: true }, sdkPackageVersion: "0.14.3", contractsPackageVersion: "0.4.2-rc.2", indexerSchemaPackageVersion: "0.22.0", activeDisputeStack: { base: { version: 2, selectionHash: "ba40c2954b408d0c658881a8d28e5bfcc9bade5cc3d953fd17eae1eca69d841c" }, baseStaging: { version: 2, selectionHash: "6c49c1ce51eec594a22385c4efcab08aa9926b6b63a725e14a0027ec5d2f4fc9" } } };
9
+
10
+ export { __export, define_ZKP2P_SDK_BUILD_METADATA_default };
11
+ //# sourceMappingURL=chunk-BY77PPIP.mjs.map
12
+ //# sourceMappingURL=chunk-BY77PPIP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["%3Cdefine:__ZKP2P_SDK_BUILD_METADATA__%3E"],"names":[],"mappings":";;;;;;;AAAA,IAAA,uCAAA,GAAA,EAAC,aAAA,EAAgB,CAAA,EAAE,MAAA,EAAS,EAAC,YAAa,qBAAA,EAAsB,SAAA,EAAY,0CAAA,EAA2C,IAAA,EAAO,UAAS,aAAA,EAAgB,IAAA,EAAI,EAAE,iBAAA,EAAoB,UAAS,uBAAA,EAA0B,YAAA,EAAa,2BAAA,EAA8B,QAAA,EAAS,oBAAqB,EAAC,IAAA,EAAO,EAAC,OAAA,EAAU,GAAE,aAAA,EAAgB,kEAAA,EAAkE,EAAE,WAAA,EAAc,EAAC,OAAA,EAAU,CAAA,EAAE,aAAA,EAAgB,kEAAA,IAAmE","file":"chunk-BY77PPIP.mjs","sourcesContent":["{\"schemaVersion\":2,\"source\":{\"repository\":\"zkp2p/zkp2p-clients\",\"commitSha\":\"e848bb1cab3615498514e767e43ea50ec464a633\",\"kind\":\"github\",\"distributable\":true},\"sdkPackageVersion\":\"0.14.3\",\"contractsPackageVersion\":\"0.4.2-rc.2\",\"indexerSchemaPackageVersion\":\"0.22.0\",\"activeDisputeStack\":{\"base\":{\"version\":2,\"selectionHash\":\"ba40c2954b408d0c658881a8d28e5bfcc9bade5cc3d953fd17eae1eca69d841c\"},\"baseStaging\":{\"version\":2,\"selectionHash\":\"6c49c1ce51eec594a22385c4efcab08aa9926b6b63a725e14a0027ec5d2f4fc9\"}}}"]}
@@ -1,4 +1,4 @@
1
1
  export { Currency, currencyInfo, getCurrencyCodeFromHash, getCurrencyInfoFromCountryCode, getCurrencyInfoFromHash, isSupportedCurrencyHash, mapConversionRatesToOnchain, mapConversionRatesToOnchainMinRate } from './chunk-ZB22BZLZ.mjs';
2
- import './chunk-U555K2CU.mjs';
3
- //# sourceMappingURL=currency-54OSWCWH.mjs.map
4
- //# sourceMappingURL=currency-54OSWCWH.mjs.map
2
+ import './chunk-BY77PPIP.mjs';
3
+ //# sourceMappingURL=currency-GXJH7J2W.mjs.map
4
+ //# sourceMappingURL=currency-GXJH7J2W.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"currency-54OSWCWH.mjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"currency-GXJH7J2W.mjs"}
package/dist/index.cjs CHANGED
@@ -21,7 +21,7 @@ var __export = (target, all) => {
21
21
  var define_ZKP2P_SDK_BUILD_METADATA_default;
22
22
  var init_define_ZKP2P_SDK_BUILD_METADATA = __esm({
23
23
  "<define:__ZKP2P_SDK_BUILD_METADATA__>"() {
24
- define_ZKP2P_SDK_BUILD_METADATA_default = { schemaVersion: 2, source: { repository: "zkp2p/zkp2p-clients", commitSha: "8f8238e57dadbf8c2dddc5e6a1db1bfaf2d21df2", kind: "github", distributable: true }, sdkPackageVersion: "0.14.2-rc.4", contractsPackageVersion: "0.4.2-rc.2", indexerSchemaPackageVersion: "0.22.0", activeDisputeStack: { base: { version: 2, selectionHash: "ba40c2954b408d0c658881a8d28e5bfcc9bade5cc3d953fd17eae1eca69d841c" }, baseStaging: { version: 2, selectionHash: "6c49c1ce51eec594a22385c4efcab08aa9926b6b63a725e14a0027ec5d2f4fc9" } } };
24
+ define_ZKP2P_SDK_BUILD_METADATA_default = { schemaVersion: 2, source: { repository: "zkp2p/zkp2p-clients", commitSha: "e848bb1cab3615498514e767e43ea50ec464a633", kind: "github", distributable: true }, sdkPackageVersion: "0.14.3", contractsPackageVersion: "0.4.2-rc.2", indexerSchemaPackageVersion: "0.22.0", activeDisputeStack: { base: { version: 2, selectionHash: "ba40c2954b408d0c658881a8d28e5bfcc9bade5cc3d953fd17eae1eca69d841c" }, baseStaging: { version: 2, selectionHash: "6c49c1ce51eec594a22385c4efcab08aa9926b6b63a725e14a0027ec5d2f4fc9" } } };
25
25
  }
26
26
  });
27
27
 
@@ -105153,7 +105153,7 @@ var getRateManagerReadFunction = (abi, functionName) => Array.isArray(abi) && ab
105153
105153
 
105154
105154
  // src/client/AccessPolicyOperations.ts
105155
105155
  init_define_ZKP2P_SDK_BUILD_METADATA();
105156
- var PEER_PAY_MERCHANT_GROUP_ID_BY_ENVIRONMENT = {
105156
+ var DEPOSIT_WHITELIST_GROUP_ID_BY_ENVIRONMENT = {
105157
105157
  production: "0x174b8a29536721a3eae290bfd55651b85a53fc334b971d993fa93ed8dde15e48",
105158
105158
  preproduction: "0x174b8a29536721a3eae290bfd55651b85a53fc334b971d993fa93ed8dde15e48",
105159
105159
  staging: "0xc82c20c00033046a2f017b65532d7148a337282f17c73296663a530e49ba00f7"
@@ -105185,6 +105185,13 @@ var AccessPolicyOperations = class {
105185
105185
  if (!address || !abi) throw new AccessPolicyUnsupportedError("AddressGroupRegistry");
105186
105186
  return { address, abi };
105187
105187
  }
105188
+ depositWhitelistGroupId() {
105189
+ const runtimeEnv = this.config.getRuntimeEnv?.();
105190
+ if (!runtimeEnv) {
105191
+ throw new Error("Runtime environment is required for the Peer Pay deposit whitelist.");
105192
+ }
105193
+ return DEPOSIT_WHITELIST_GROUP_ID_BY_ENVIRONMENT[runtimeEnv];
105194
+ }
105188
105195
  /* ============ Reads ============ */
105189
105196
  async isEnabled(params) {
105190
105197
  const { address, abi } = this.requirePolicy();
@@ -105195,6 +105202,15 @@ var AccessPolicyOperations = class {
105195
105202
  args: [params.escrow, params.depositId, params.paymentMethod]
105196
105203
  });
105197
105204
  }
105205
+ /** True only when this deposit enables the current environment's whitelist group. */
105206
+ async isDepositWhitelistConfigured(params) {
105207
+ const depositWhitelistGroupId = this.depositWhitelistGroupId();
105208
+ const [enabled, groups] = await Promise.all([
105209
+ this.isEnabled(params),
105210
+ this.getAllowedGroups(params)
105211
+ ]);
105212
+ return enabled && groups.some((group) => group.toLowerCase() === depositWhitelistGroupId);
105213
+ }
105198
105214
  /** Groups are enumerable onchain; direct addresses deliberately are not. */
105199
105215
  async getAllowedGroups(params) {
105200
105216
  const { address, abi } = this.requirePolicy();
@@ -105256,16 +105272,12 @@ var AccessPolicyOperations = class {
105256
105272
  txOverrides
105257
105273
  });
105258
105274
  }
105259
- /** Configure the fixed Peer Pay merchant default while creating a sell deposit. */
105275
+ /** Configure the fixed Peer Pay deposit whitelist for a sell deposit. */
105260
105276
  prepareConfigurePeerPayMerchantDeposit(params) {
105261
- const runtimeEnv = this.config.getRuntimeEnv?.();
105262
- if (!runtimeEnv) {
105263
- throw new Error("Runtime environment is required to configure the Peer Pay merchant policy.");
105264
- }
105265
- const merchantGroupId = PEER_PAY_MERCHANT_GROUP_ID_BY_ENVIRONMENT[runtimeEnv];
105277
+ const depositWhitelistGroupId = this.depositWhitelistGroupId();
105266
105278
  return this.preparePolicyCall(
105267
105279
  "configureDeposit",
105268
- [params.escrow, params.depositId, params.paymentMethod, true, [merchantGroupId], []],
105280
+ [params.escrow, params.depositId, params.paymentMethod, true, [depositWhitelistGroupId], []],
105269
105281
  params.txOverrides
105270
105282
  );
105271
105283
  }
@@ -111566,6 +111578,77 @@ var getDelegationRoute = (_client, _escrow) => "v2";
111566
111578
  // src/venmoGmail.ts
111567
111579
  init_define_ZKP2P_SDK_BUILD_METADATA();
111568
111580
  init_errors();
111581
+
111582
+ // src/venmoGmailAppearance.ts
111583
+ init_define_ZKP2P_SDK_BUILD_METADATA();
111584
+ init_errors();
111585
+ var color = (value) => typeof value === "string" && /^#(?:[\da-f]{3}|[\da-f]{6})$/i.test(value);
111586
+ var pixels = (min, max) => (value) => typeof value === "number" && Number.isFinite(value) && value >= min && value <= max;
111587
+ var font = (value) => typeof value === "string" && value.length <= 160 && /^[\w\s,"'-]+$/.test(value);
111588
+ var transform = (value) => value === "none" || value === "uppercase";
111589
+ var assetUrl = (value) => {
111590
+ if (typeof value !== "string" || value.length > 2048) return false;
111591
+ try {
111592
+ const url = new URL(value);
111593
+ return !url.username && !url.password && (url.protocol === "https:" || url.protocol === "http:" && url.hostname === "localhost");
111594
+ } catch {
111595
+ return false;
111596
+ }
111597
+ };
111598
+ var fields = {
111599
+ logoUrl: assetUrl,
111600
+ logoBackgroundColor: color,
111601
+ logoBorderColor: color,
111602
+ logoAlt: (value) => typeof value === "string" && value.length <= 80,
111603
+ fontUrl: assetUrl,
111604
+ fontFamily: font,
111605
+ headingFontFamily: font,
111606
+ backgroundColor: color,
111607
+ cardBackgroundColor: color,
111608
+ textColor: color,
111609
+ secondaryTextColor: color,
111610
+ buttonColor: color,
111611
+ buttonTextColor: color,
111612
+ buttonHoverColor: color,
111613
+ focusColor: color,
111614
+ borderColor: color,
111615
+ successColor: color,
111616
+ errorColor: color,
111617
+ fontSize: pixels(12, 24),
111618
+ headingFontSize: pixels(20, 48),
111619
+ headingTextTransform: transform,
111620
+ buttonTextTransform: transform,
111621
+ buttonBorderRadius: pixels(0, 40),
111622
+ buttonHeight: pixels(44, 80),
111623
+ cardBorderRadius: pixels(0, 40),
111624
+ contentWidth: pixels(280, 960),
111625
+ padding: pixels(16, 64),
111626
+ gap: pixels(12, 48),
111627
+ logoHeight: pixels(24, 80)
111628
+ };
111629
+ function parseVenmoGmailAppearance(value) {
111630
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
111631
+ throw new exports.ValidationError("Expected a Venmo appearance object", "appearance");
111632
+ }
111633
+ const entries = Object.entries(value).filter(
111634
+ ([key]) => Object.prototype.hasOwnProperty.call(fields, key)
111635
+ );
111636
+ for (const [key, item] of entries) {
111637
+ if (!fields[key](item)) {
111638
+ throw new exports.ValidationError(`Invalid Venmo appearance option: ${key}`, `appearance.${key}`);
111639
+ }
111640
+ }
111641
+ return Object.fromEntries(entries);
111642
+ }
111643
+ function getVenmoGmailPopupSize(popup = {}) {
111644
+ const { width = 500, height = 700 } = popup;
111645
+ if (!pixels(320, 1200)(width) || !pixels(480, 1600)(height)) {
111646
+ throw new exports.ValidationError("Popup width must be 320\u20131200 and height 480\u20131600 pixels", "popup");
111647
+ }
111648
+ return { width, height };
111649
+ }
111650
+
111651
+ // src/venmoGmail.ts
111569
111652
  var VenmoGmailConnectError = class extends Error {
111570
111653
  constructor(code, message) {
111571
111654
  super(message);
@@ -111575,7 +111658,9 @@ var VenmoGmailConnectError = class extends Error {
111575
111658
  };
111576
111659
  function getVenmoGmailConnectUrl({
111577
111660
  payeeDetails,
111578
- peerOrigin = "https://app.peer.xyz"
111661
+ peerOrigin = "https://app.peer.xyz",
111662
+ appearance,
111663
+ returnUrl
111579
111664
  }) {
111580
111665
  if (!/^0x[0-9a-f]{64}$/i.test(payeeDetails)) {
111581
111666
  throw new exports.ValidationError("Expected a Venmo payee hash", "payeeDetails");
@@ -111590,18 +111675,29 @@ function getVenmoGmailConnectUrl({
111590
111675
  throw new exports.ValidationError("Expected an HTTPS Peer web origin", "peerOrigin");
111591
111676
  }
111592
111677
  const url = new URL("/connect/venmo", origin);
111678
+ if (returnUrl) {
111679
+ try {
111680
+ new URL(returnUrl);
111681
+ } catch {
111682
+ throw new exports.ValidationError("Expected an absolute app callback URI", "returnUrl");
111683
+ }
111684
+ url.searchParams.set("returnUrl", returnUrl);
111685
+ }
111686
+ if (appearance)
111687
+ url.searchParams.set("appearance", JSON.stringify(parseVenmoGmailAppearance(appearance)));
111593
111688
  url.hash = payeeDetails;
111594
111689
  return url.toString();
111595
111690
  }
111596
111691
  function openVenmoGmailConnect(options) {
111597
111692
  const url = new URL(getVenmoGmailConnectUrl(options));
111693
+ const { width, height } = getVenmoGmailPopupSize(options.popup);
111598
111694
  const requestId = window.crypto.randomUUID();
111599
111695
  url.searchParams.set("requestId", requestId);
111600
111696
  url.searchParams.set("hostOrigin", window.location.origin);
111601
111697
  return new Promise((resolve, reject) => {
111602
111698
  let popup;
111603
111699
  try {
111604
- const features = window.matchMedia("(max-width: 600px)").matches ? void 0 : "popup,width=500,height=700";
111700
+ const features = window.matchMedia("(max-width: 600px)").matches ? void 0 : `popup,width=${width},height=${height}`;
111605
111701
  popup = window.open(url.toString(), "_blank", features);
111606
111702
  } catch {
111607
111703
  popup = null;
@@ -111773,6 +111869,7 @@ exports.openVenmoGmailConnect = openVenmoGmailConnect;
111773
111869
  exports.parseDepositView = parseDepositView;
111774
111870
  exports.parseIntentView = parseIntentView;
111775
111871
  exports.parseReferrerFeeConfig = parseReferrerFeeConfig;
111872
+ exports.parseVenmoGmailAppearance = parseVenmoGmailAppearance;
111776
111873
  exports.peerExtensionSdk = peerExtensionSdk;
111777
111874
  exports.readDisputeAttestationConfig = readDisputeAttestationConfig;
111778
111875
  exports.referrerFeeConfigToPreciseUnits = referrerFeeConfigToPreciseUnits;