@solana-mobile/dapp-store-publishing-tools 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/lib/esm/create/release.js +15 -20
  2. package/lib/esm/create/release.js.map +1 -1
  3. package/lib/esm/publish/dapp_publisher_portal.js +1 -0
  4. package/lib/esm/publish/dapp_publisher_portal.js.map +1 -1
  5. package/lib/esm/publish/remove.js +9 -4
  6. package/lib/esm/publish/remove.js.map +1 -1
  7. package/lib/esm/publish/submit.js +9 -4
  8. package/lib/esm/publish/submit.js.map +1 -1
  9. package/lib/esm/publish/support.js +9 -4
  10. package/lib/esm/publish/support.js.map +1 -1
  11. package/lib/esm/publish/update.js +9 -4
  12. package/lib/esm/publish/update.js.map +1 -1
  13. package/lib/esm/validate/index.js +22 -4
  14. package/lib/esm/validate/index.js.map +1 -1
  15. package/lib/esm/validate/schemas/releaseJsonMetadata.json +8 -2
  16. package/lib/types/create/release.d.ts +1 -14
  17. package/lib/types/create/release.d.ts.map +1 -1
  18. package/lib/types/publish/dapp_publisher_portal.d.ts +1 -0
  19. package/lib/types/publish/dapp_publisher_portal.d.ts.map +1 -1
  20. package/lib/types/publish/remove.d.ts +2 -1
  21. package/lib/types/publish/remove.d.ts.map +1 -1
  22. package/lib/types/publish/submit.d.ts +2 -1
  23. package/lib/types/publish/submit.d.ts.map +1 -1
  24. package/lib/types/publish/support.d.ts +2 -1
  25. package/lib/types/publish/support.d.ts.map +1 -1
  26. package/lib/types/publish/update.d.ts +2 -1
  27. package/lib/types/publish/update.d.ts.map +1 -1
  28. package/lib/types/types.d.ts +13 -1
  29. package/lib/types/types.d.ts.map +1 -1
  30. package/lib/types/validate/index.d.ts +2 -2
  31. package/lib/types/validate/index.d.ts.map +1 -1
  32. package/package.json +4 -1
  33. package/src/create/release.ts +16 -30
  34. package/src/publish/dapp_publisher_portal.ts +1 -0
  35. package/src/publish/remove.ts +10 -0
  36. package/src/publish/submit.ts +10 -0
  37. package/src/publish/support.ts +10 -0
  38. package/src/publish/update.ts +10 -0
  39. package/src/types.ts +10 -1
  40. package/src/validate/index.ts +28 -6
  41. package/src/validate/schemas/releaseJsonMetadata.json +8 -2
@@ -4,7 +4,7 @@ import { createHash } from "crypto";
4
4
  import mime from "mime";
5
5
  import debugModule from "debug";
6
6
  import { toMetaplexFile } from "@metaplex-foundation/js";
7
- import { mintNft, truncateAddress } from "../utils.js";
7
+ import { mintNft } from "../utils.js";
8
8
  import * as util from "util";
9
9
  import { validateRelease } from "../validate/index.js";
10
10
  import { imageSize } from "image-size";
@@ -16,7 +16,7 @@ const getFileMetadata = async (item) => {
16
16
  // TODO(jon): This stuff should be probably be in `packages/cli`
17
17
  const mediaBuffer = await fs.promises.readFile(file);
18
18
  const size = (await fs.promises.stat(file)).size;
19
- const hash = createHash("sha256").update(mediaBuffer).digest("base64");
19
+ const hash = createHash("sha256").update(mediaBuffer).digest("hex");
20
20
  const metadata = {
21
21
  purpose: item.purpose,
22
22
  uri: toMetaplexFile(mediaBuffer, item.uri),
@@ -36,8 +36,6 @@ const getMediaMetadata = async (item) => {
36
36
  };
37
37
  };
38
38
  export const createReleaseJson = async ({ releaseDetails, appDetails, publisherDetails, }, publisherAddress) => {
39
- const truncatedAppMintAddress = truncateAddress(appDetails.address);
40
- const releaseName = `${Object.values(releaseDetails.catalog)[0].name} ${releaseDetails.android_details.version}`;
41
39
  const media = [];
42
40
  debug({ media: releaseDetails.media });
43
41
  for await (const item of releaseDetails.media || []) {
@@ -50,10 +48,9 @@ export const createReleaseJson = async ({ releaseDetails, appDetails, publisherD
50
48
  }
51
49
  const releaseMetadata = {
52
50
  schema_version: "0.2.4",
53
- name: releaseName,
54
- description: Object.values(releaseDetails.catalog)[0].short_description,
55
- // TODO(jon): Figure out where to get this image
56
- image: "",
51
+ name: "Release: " + appDetails.name,
52
+ description: `Release NFT for ${appDetails.name} version ${releaseDetails.android_details.version}`,
53
+ image: appDetails.icon,
57
54
  external_url: appDetails.urls.website,
58
55
  properties: {
59
56
  category: "dApp",
@@ -66,6 +63,7 @@ export const createReleaseJson = async ({ releaseDetails, appDetails, publisherD
66
63
  },
67
64
  extensions: {
68
65
  solana_dapp_store: {
66
+ // @ts-expect-error
69
67
  publisher_details: {
70
68
  name: publisherDetails.name,
71
69
  website: publisherDetails.website,
@@ -77,16 +75,13 @@ export const createReleaseJson = async ({ releaseDetails, appDetails, publisherD
77
75
  copyright_url: appDetails.urls.copyright_url,
78
76
  privacy_policy_url: appDetails.urls.privacy_policy_url,
79
77
  localized_resources: {
80
- short_description: "1",
81
- long_description: "2",
82
- new_in_version: "3",
83
- saga_features: "4",
84
- name: "5",
78
+ long_description: "1",
79
+ new_in_version: "2",
80
+ saga_features: "3",
81
+ name: "4",
85
82
  },
86
83
  },
87
- // @ts-expect-error It's a bit of a headache to modify the deeply-nested extension.solana_dapp_store.media.uri type
88
84
  media,
89
- // @ts-expect-error It's a bit of a headache to modify the deeply-nested extension.solana_dapp_store.files.uri type
90
85
  files,
91
86
  android_details: releaseDetails.android_details,
92
87
  },
@@ -94,12 +89,12 @@ export const createReleaseJson = async ({ releaseDetails, appDetails, publisherD
94
89
  },
95
90
  };
96
91
  for (const [locale, strings] of Object.entries(releaseDetails.catalog)) {
92
+ // @ts-expect-error
97
93
  releaseMetadata.extensions.i18n[locale] = {
98
- "1": strings.short_description,
99
- "2": strings.long_description,
100
- "3": strings.new_in_version,
101
- "4": strings.saga_features,
102
- "5": strings.name,
94
+ "1": strings.long_description,
95
+ "2": strings.new_in_version,
96
+ "3": strings.saga_features,
97
+ "4": strings.name,
103
98
  };
104
99
  }
105
100
  return releaseMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"release.js","sourceRoot":"","sources":["../../../src/create/release.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../../src/create/release.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export const TICKET_PROPERTY_CONTENT = "content"; // string
9
9
  export const TICKET_PROPERTY_ATTESTATION_PAYLOAD = "attestation_payload"; // base64-encoded string
10
10
  export const TICKET_PROPERTY_AUTHORIZED_REQUEST = "requestor_is_authorized_to_submit_this_request"; // boolean
11
11
  export const TICKET_PROPERTY_CRITICAL_UPDATE = "critical_update"; // boolean
12
+ export const TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS = "dapp_collection_account_address"; // base58-encoded string
12
13
  export const TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS = "dapp_release_account_address"; // base58-encoded string
13
14
  export const TICKET_PROPERTY_GOOGLE_PLAY_STORE_PACKAGE_NAME = "google_play_store_package_name"; // string
14
15
  export const TICKET_PROPERTY_POLICY_COMPLIANT = "complies_with_solana_dapp_store_policies"; // boolean
@@ -1 +1 @@
1
- {"version":3,"file":"dapp_publisher_portal.js","sourceRoot":"","sources":["../../../src/publish/dapp_publisher_portal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dapp_publisher_portal.js","sourceRoot":"","sources":["../../../src/publish/dapp_publisher_portal.ts"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AACvC,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC,CAAC,SAAS;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC,CAAC,SAAS;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC,CAAC,SAAS;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AACtC,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC,CAAC,SAAS;AAC3D,MAAM,CAAC,MAAM,mCAAmC,GAAG,qBAAqB,CAAC,CAAC,wBAAwB;AAClG,MAAM,CAAC,MAAM,kCAAkC,GAAG,gDAAgD,CAAC,CAAC,UAAU;AAC9G,MAAM,CAAC,MAAM,+BAA+B,GAAG,iBAAiB,CAAC,CAAC,UAAU;AAC5E,MAAM,CAAC,MAAM,+CAA+C,GAAG,iCAAiC,CAAC,CAAC,wBAAwB;AAC1H,MAAM,CAAC,MAAM,4CAA4C,GAAG,8BAA8B,CAAC,CAAC,wBAAwB;AACpH,MAAM,CAAC,MAAM,8CAA8C,GAAG,gCAAgC,CAAC,CAAC,SAAS;AACzG,MAAM,CAAC,MAAM,gCAAgC,GAAG,0CAA0C,CAAC,CAAC,UAAU;AACtG,MAAM,CAAC,MAAM,iCAAiC,GAAG,mBAAmB,CAAC,CAAC,6BAA6B;AACnG,MAAM,CAAC,MAAM,oCAAoC,GAAG,sBAAsB,CAAC,CAAC,SAAS;AAErF,MAAM,CAAC,MAAM,WAAW,GAAG,sCAAsC,CAAC;AAClE,MAAM,CAAC,MAAM,WAAW,GAAG,sCAAsC,CAAC;AAClE,MAAM,CAAC,MAAM,WAAW,GAAG,sCAAsC,CAAC;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,sCAAsC,CAAC;AAEnE,MAAM,CAAC,MAAM,eAAe,GAAG,6DAA6D,SAAS,IAAI,WAAW,EAAE,CAAA;AACtH,MAAM,CAAC,MAAM,eAAe,GAAG,6DAA6D,SAAS,IAAI,WAAW,EAAE,CAAA;AACtH,MAAM,CAAC,MAAM,eAAe,GAAG,6DAA6D,SAAS,IAAI,WAAW,EAAE,CAAA;AACtH,MAAM,CAAC,MAAM,gBAAgB,GAAG,6DAA6D,SAAS,IAAI,YAAY,EAAE,CAAA;AAExH,MAAM,CAAC,MAAM,wCAAwC,GAAG,KAAK,EAC3D,OAAY,EACZ,GAAW,EACX,MAAe,EACf,EAAE;IACF,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,GAAG;QACR,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KACR,CAAC;IAExB,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,MAAM,CAAC,CAAC;IAE/D,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,KAAK,CAAC,MAAM,CAAC;aAChB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,OAAO,CAAC,KAAK,CAAC,6DAA6D,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC5H;iBAAM,IAAI,KAAK,CAAC,OAAO,EAAE;gBACxB,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;aACzF;iBAAM;gBACL,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;aACxD;QACH,CAAC,CAAC,CAAC;KACN;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;KAChF;AACH,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { createAttestationPayload } from "./attestation.js";
2
- import { CONTACT_OBJECT_ID, CONTACT_PROPERTY_COMPANY, CONTACT_PROPERTY_EMAIL, CONTACT_PROPERTY_WEBSITE, submitRequestToSolanaDappPublisherPortal, TICKET_OBJECT_ID, TICKET_PROPERTY_ATTESTATION_PAYLOAD, TICKET_PROPERTY_AUTHORIZED_REQUEST, TICKET_PROPERTY_CRITICAL_UPDATE, TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS, TICKET_PROPERTY_REQUEST_UNIQUE_ID, URL_FORM_REMOVE } from "./dapp_publisher_portal.js";
3
- const createRemoveRequest = async (connection, sign, releaseMintAddress, publisherDetails, requestorIsAuthorized, criticalUpdate) => {
2
+ import { CONTACT_OBJECT_ID, CONTACT_PROPERTY_COMPANY, CONTACT_PROPERTY_EMAIL, CONTACT_PROPERTY_WEBSITE, submitRequestToSolanaDappPublisherPortal, TICKET_OBJECT_ID, TICKET_PROPERTY_ATTESTATION_PAYLOAD, TICKET_PROPERTY_AUTHORIZED_REQUEST, TICKET_PROPERTY_CRITICAL_UPDATE, TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS, TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS, TICKET_PROPERTY_REQUEST_UNIQUE_ID, URL_FORM_REMOVE } from "./dapp_publisher_portal.js";
3
+ const createRemoveRequest = async (connection, sign, appMintAddress, releaseMintAddress, publisherDetails, requestorIsAuthorized, criticalUpdate) => {
4
4
  const { attestationPayload, requestUniqueId } = await createAttestationPayload(connection, sign);
5
5
  const request = {
6
6
  fields: [
@@ -24,6 +24,11 @@ const createRemoveRequest = async (connection, sign, releaseMintAddress, publish
24
24
  name: TICKET_PROPERTY_ATTESTATION_PAYLOAD,
25
25
  value: attestationPayload
26
26
  },
27
+ {
28
+ objectTypeId: TICKET_OBJECT_ID,
29
+ name: TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
30
+ value: appMintAddress
31
+ },
27
32
  {
28
33
  objectTypeId: TICKET_OBJECT_ID,
29
34
  name: TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
@@ -50,8 +55,8 @@ const createRemoveRequest = async (connection, sign, releaseMintAddress, publish
50
55
  }
51
56
  return request;
52
57
  };
53
- export const publishRemove = async (publishSolanaNetworkInput, { releaseMintAddress, publisherDetails, requestorIsAuthorized, criticalUpdate, }, dryRun) => {
54
- const removeRequest = await createRemoveRequest(publishSolanaNetworkInput.connection, publishSolanaNetworkInput.sign, releaseMintAddress, publisherDetails, requestorIsAuthorized, criticalUpdate);
58
+ export const publishRemove = async (publishSolanaNetworkInput, { appMintAddress, releaseMintAddress, publisherDetails, requestorIsAuthorized, criticalUpdate, }, dryRun) => {
59
+ const removeRequest = await createRemoveRequest(publishSolanaNetworkInput.connection, publishSolanaNetworkInput.sign, appMintAddress, releaseMintAddress, publisherDetails, requestorIsAuthorized, criticalUpdate);
55
60
  return submitRequestToSolanaDappPublisherPortal(removeRequest, URL_FORM_REMOVE, dryRun);
56
61
  };
57
62
  //# sourceMappingURL=remove.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/publish/remove.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,wCAAwC,EACxC,gBAAgB,EAChB,mCAAmC,EACnC,kCAAkC,EAClC,+BAA+B,EAC/B,4CAA4C,EAC5C,iCAAiC,EACjC,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,mBAAmB,GAAG,KAAK,EAC/B,UAAsB,EACtB,IAA8B,EAC9B,kBAA0B,EAC1B,gBAA2B,EAC3B,qBAA8B,EAC9B,cAAuB,EACvB,EAAE;IACF,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,MAAM,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEjG,MAAM,OAAO,GAAG;QACd,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,IAAI;aAC7B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,gBAAgB,CAAC,KAAK;aAC9B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,OAAO;aAChC;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,mCAAmC;gBACzC,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,4CAA4C;gBAClD,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,iCAAiC;gBACvC,KAAK,EAAE,eAAe;aACvB;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,kCAAkC;gBACxC,KAAK,EAAE,qBAAqB;aAC7B;SACF;KACF,CAAC;IAEF,IAAI,cAAc,EAAE;QAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB;YACE,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,cAAc;SACtB,CACF,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,yBAAoD,EACpD,EACE,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,GACM,EACtB,MAAe,EACf,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAC7C,yBAAyB,CAAC,UAAU,EACpC,yBAAyB,CAAC,IAAI,EAC9B,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,CAAC,CAAC;IAElB,OAAO,wCAAwC,CAAC,aAAa,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAC1F,CAAC,CAAC"}
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/publish/remove.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,wCAAwC,EACxC,gBAAgB,EAChB,mCAAmC,EACnC,kCAAkC,EAClC,+BAA+B,EAC/B,+CAA+C,EAC/C,4CAA4C,EAC5C,iCAAiC,EACjC,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,mBAAmB,GAAG,KAAK,EAC/B,UAAsB,EACtB,IAA8B,EAC9B,cAAsB,EACtB,kBAA0B,EAC1B,gBAA2B,EAC3B,qBAA8B,EAC9B,cAAuB,EACvB,EAAE;IACF,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,MAAM,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEjG,MAAM,OAAO,GAAG;QACd,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,IAAI;aAC7B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,gBAAgB,CAAC,KAAK;aAC9B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,OAAO;aAChC;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,mCAAmC;gBACzC,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,+CAA+C;gBACrD,KAAK,EAAE,cAAc;aACtB;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,4CAA4C;gBAClD,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,iCAAiC;gBACvC,KAAK,EAAE,eAAe;aACvB;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,kCAAkC;gBACxC,KAAK,EAAE,qBAAqB;aAC7B;SACF;KACF,CAAC;IAEF,IAAI,cAAc,EAAE;QAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB;YACE,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,cAAc;SACtB,CACF,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,yBAAoD,EACpD,EACE,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,GACM,EACtB,MAAe,EACf,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAC7C,yBAAyB,CAAC,UAAU,EACpC,yBAAyB,CAAC,IAAI,EAC9B,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,CAAC,CAAC;IAElB,OAAO,wCAAwC,CAAC,aAAa,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAC1F,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { createAttestationPayload } from "./attestation.js";
2
- import { CONTACT_OBJECT_ID, CONTACT_PROPERTY_COMPANY, CONTACT_PROPERTY_EMAIL, CONTACT_PROPERTY_WEBSITE, submitRequestToSolanaDappPublisherPortal, TICKET_OBJECT_ID, TICKET_PROPERTY_ATTESTATION_PAYLOAD, TICKET_PROPERTY_AUTHORIZED_REQUEST, TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS, TICKET_PROPERTY_GOOGLE_PLAY_STORE_PACKAGE_NAME, TICKET_PROPERTY_POLICY_COMPLIANT, TICKET_PROPERTY_REQUEST_UNIQUE_ID, TICKET_PROPERTY_TESTING_INSTRUCTIONS, URL_FORM_SUBMIT } from "./dapp_publisher_portal.js";
3
- const createSubmitRequest = async (connection, sign, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized) => {
2
+ import { CONTACT_OBJECT_ID, CONTACT_PROPERTY_COMPANY, CONTACT_PROPERTY_EMAIL, CONTACT_PROPERTY_WEBSITE, submitRequestToSolanaDappPublisherPortal, TICKET_OBJECT_ID, TICKET_PROPERTY_ATTESTATION_PAYLOAD, TICKET_PROPERTY_AUTHORIZED_REQUEST, TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS, TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS, TICKET_PROPERTY_GOOGLE_PLAY_STORE_PACKAGE_NAME, TICKET_PROPERTY_POLICY_COMPLIANT, TICKET_PROPERTY_REQUEST_UNIQUE_ID, TICKET_PROPERTY_TESTING_INSTRUCTIONS, URL_FORM_SUBMIT } from "./dapp_publisher_portal.js";
3
+ const createSubmitRequest = async (connection, sign, appMintAddress, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized) => {
4
4
  const { attestationPayload, requestUniqueId } = await createAttestationPayload(connection, sign);
5
5
  const request = {
6
6
  fields: [
@@ -24,6 +24,11 @@ const createSubmitRequest = async (connection, sign, releaseMintAddress, publish
24
24
  name: TICKET_PROPERTY_ATTESTATION_PAYLOAD,
25
25
  value: attestationPayload
26
26
  },
27
+ {
28
+ objectTypeId: TICKET_OBJECT_ID,
29
+ name: TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
30
+ value: appMintAddress
31
+ },
27
32
  {
28
33
  objectTypeId: TICKET_OBJECT_ID,
29
34
  name: TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
@@ -62,8 +67,8 @@ const createSubmitRequest = async (connection, sign, releaseMintAddress, publish
62
67
  }
63
68
  return request;
64
69
  };
65
- export const publishSubmit = async (publishSolanaNetworkInput, { releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, }, dryRun) => {
66
- const submitRequest = await createSubmitRequest(publishSolanaNetworkInput.connection, publishSolanaNetworkInput.sign, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized);
70
+ export const publishSubmit = async (publishSolanaNetworkInput, { appMintAddress, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, }, dryRun) => {
71
+ const submitRequest = await createSubmitRequest(publishSolanaNetworkInput.connection, publishSolanaNetworkInput.sign, appMintAddress, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized);
67
72
  return submitRequestToSolanaDappPublisherPortal(submitRequest, URL_FORM_SUBMIT, dryRun);
68
73
  };
69
74
  //# sourceMappingURL=submit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/publish/submit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,wCAAwC,EACxC,gBAAgB,EAChB,mCAAmC,EACnC,kCAAkC,EAClC,4CAA4C,EAC5C,8CAA8C,EAC9C,gCAAgC,EAChC,iCAAiC,EACjC,oCAAoC,EACpC,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,mBAAmB,GAAG,KAAK,EAC/B,UAAsB,EACtB,IAA8B,EAC9B,kBAA0B,EAC1B,gBAA2B,EAC3B,sCAAuE,EACvE,mCAA4C,EAC5C,qBAA8B,EAC9B,EAAE;IACF,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,MAAM,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEjG,MAAM,OAAO,GAAG;QACd,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,IAAI;aAC7B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,gBAAgB,CAAC,KAAK;aAC9B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,OAAO;aAChC;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,mCAAmC;gBACzC,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,4CAA4C;gBAClD,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,iCAAiC;gBACvC,KAAK,EAAE,eAAe;aACvB;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,kCAAkC;gBACxC,KAAK,EAAE,qBAAqB;aAC7B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,gCAAgC;gBACtC,KAAK,EAAE,mCAAmC;aAC3C;SACF;KACF,CAAC;IAEF,IAAI,sCAAsC,CAAC,oBAAoB,KAAK,SAAS,EAAE;QAC7E,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YAClB,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,8CAA8C;YACpD,KAAK,EAAE,sCAAsC,CAAC,oBAAoB;SACnE,CAAC,CAAC;KACJ;IAED,IAAI,sCAAsC,CAAC,oBAAoB,KAAK,SAAS,EAAE;QAC7E,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB;YACE,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,oCAAoC;YAC1C,KAAK,EAAE,sCAAsC,CAAC,oBAAoB;SACnE,CACF,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,yBAAoD,EACpD,EACE,kBAAkB,EAClB,gBAAgB,EAChB,sCAAsC,EACtC,mCAAmC,EACnC,qBAAqB,GACD,EACtB,MAAe,EACf,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAC7C,yBAAyB,CAAC,UAAU,EACpC,yBAAyB,CAAC,IAAI,EAC9B,kBAAkB,EAClB,gBAAgB,EAChB,sCAAsC,EACtC,mCAAmC,EACnC,qBAAqB,CAAC,CAAC;IAEzB,OAAO,wCAAwC,CAAC,aAAa,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAC1F,CAAC,CAAC"}
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/publish/submit.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { createAttestationPayload } from "./attestation.js";
2
- import { CONTACT_OBJECT_ID, CONTACT_PROPERTY_COMPANY, CONTACT_PROPERTY_EMAIL, CONTACT_PROPERTY_WEBSITE, submitRequestToSolanaDappPublisherPortal, TICKET_OBJECT_ID, TICKET_PROPERTY_ATTESTATION_PAYLOAD, TICKET_PROPERTY_AUTHORIZED_REQUEST, TICKET_PROPERTY_CONTENT, TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS, TICKET_PROPERTY_REQUEST_UNIQUE_ID, URL_FORM_SUPPORT } from "./dapp_publisher_portal.js";
3
- const createSupportRequest = async (connection, sign, releaseMintAddress, publisherDetails, requestorIsAuthorized, requestDetails) => {
2
+ import { CONTACT_OBJECT_ID, CONTACT_PROPERTY_COMPANY, CONTACT_PROPERTY_EMAIL, CONTACT_PROPERTY_WEBSITE, submitRequestToSolanaDappPublisherPortal, TICKET_OBJECT_ID, TICKET_PROPERTY_ATTESTATION_PAYLOAD, TICKET_PROPERTY_AUTHORIZED_REQUEST, TICKET_PROPERTY_CONTENT, TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS, TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS, TICKET_PROPERTY_REQUEST_UNIQUE_ID, URL_FORM_SUPPORT } from "./dapp_publisher_portal.js";
3
+ const createSupportRequest = async (connection, sign, appMintAddress, releaseMintAddress, publisherDetails, requestorIsAuthorized, requestDetails) => {
4
4
  const { attestationPayload, requestUniqueId } = await createAttestationPayload(connection, sign);
5
5
  return {
6
6
  fields: [
@@ -29,6 +29,11 @@ const createSupportRequest = async (connection, sign, releaseMintAddress, publis
29
29
  name: TICKET_PROPERTY_CONTENT,
30
30
  value: requestDetails
31
31
  },
32
+ {
33
+ objectTypeId: TICKET_OBJECT_ID,
34
+ name: TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
35
+ value: appMintAddress
36
+ },
32
37
  {
33
38
  objectTypeId: TICKET_OBJECT_ID,
34
39
  name: TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
@@ -47,8 +52,8 @@ const createSupportRequest = async (connection, sign, releaseMintAddress, publis
47
52
  ]
48
53
  };
49
54
  };
50
- export const publishSupport = async (publishSolanaNetworkInput, { releaseMintAddress, publisherDetails, requestorIsAuthorized, requestDetails, }, dryRun) => {
51
- const supportRequest = await createSupportRequest(publishSolanaNetworkInput.connection, publishSolanaNetworkInput.sign, releaseMintAddress, publisherDetails, requestorIsAuthorized, requestDetails);
55
+ export const publishSupport = async (publishSolanaNetworkInput, { appMintAddress, releaseMintAddress, publisherDetails, requestorIsAuthorized, requestDetails, }, dryRun) => {
56
+ const supportRequest = await createSupportRequest(publishSolanaNetworkInput.connection, publishSolanaNetworkInput.sign, appMintAddress, releaseMintAddress, publisherDetails, requestorIsAuthorized, requestDetails);
52
57
  return submitRequestToSolanaDappPublisherPortal(supportRequest, URL_FORM_SUPPORT, dryRun);
53
58
  };
54
59
  //# sourceMappingURL=support.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"support.js","sourceRoot":"","sources":["../../../src/publish/support.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,wCAAwC,EACxC,gBAAgB,EAChB,mCAAmC,EACnC,kCAAkC,EAClC,uBAAuB,EACvB,4CAA4C,EAC5C,iCAAiC,EACjC,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,oBAAoB,GAAG,KAAK,EAChC,UAAsB,EACtB,IAA8B,EAC9B,kBAA0B,EAC1B,gBAA2B,EAC3B,qBAA8B,EAC9B,cAAsB,EACtB,EAAE;IACF,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,MAAM,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEjG,OAAO;QACL,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,IAAI;aAC7B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,gBAAgB,CAAC,KAAK;aAC9B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,OAAO;aAChC;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,mCAAmC;gBACzC,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,cAAc;aACtB;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,4CAA4C;gBAClD,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,iCAAiC;gBACvC,KAAK,EAAE,eAAe;aACvB;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,kCAAkC;gBACxC,KAAK,EAAE,qBAAqB;aAC7B;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,yBAAoD,EACpD,EACE,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,GACO,EACvB,MAAe,EACf,EAAE;IACF,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAC/C,yBAAyB,CAAC,UAAU,EACpC,yBAAyB,CAAC,IAAI,EAC9B,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,CAAC,CAAC;IAElB,OAAO,wCAAwC,CAAC,cAAc,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAC5F,CAAC,CAAC"}
1
+ {"version":3,"file":"support.js","sourceRoot":"","sources":["../../../src/publish/support.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,wCAAwC,EACxC,gBAAgB,EAChB,mCAAmC,EACnC,kCAAkC,EAClC,uBAAuB,EACvB,+CAA+C,EAC/C,4CAA4C,EAC5C,iCAAiC,EACjC,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,oBAAoB,GAAG,KAAK,EAChC,UAAsB,EACtB,IAA8B,EAC9B,cAAsB,EACtB,kBAA0B,EAC1B,gBAA2B,EAC3B,qBAA8B,EAC9B,cAAsB,EACtB,EAAE;IACF,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,MAAM,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEjG,OAAO;QACL,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,IAAI;aAC7B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,gBAAgB,CAAC,KAAK;aAC9B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,OAAO;aAChC;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,mCAAmC;gBACzC,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,cAAc;aACtB;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,+CAA+C;gBACrD,KAAK,EAAE,cAAc;aACtB;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,4CAA4C;gBAClD,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,iCAAiC;gBACvC,KAAK,EAAE,eAAe;aACvB;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,kCAAkC;gBACxC,KAAK,EAAE,qBAAqB;aAC7B;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,yBAAoD,EACpD,EACE,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,GACO,EACvB,MAAe,EACf,EAAE;IACF,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAC/C,yBAAyB,CAAC,UAAU,EACpC,yBAAyB,CAAC,IAAI,EAC9B,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,CAAC,CAAC;IAElB,OAAO,wCAAwC,CAAC,cAAc,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAC5F,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { createAttestationPayload } from "./attestation.js";
2
- import { CONTACT_OBJECT_ID, CONTACT_PROPERTY_COMPANY, CONTACT_PROPERTY_EMAIL, CONTACT_PROPERTY_WEBSITE, submitRequestToSolanaDappPublisherPortal, TICKET_OBJECT_ID, TICKET_PROPERTY_ATTESTATION_PAYLOAD, TICKET_PROPERTY_AUTHORIZED_REQUEST, TICKET_PROPERTY_CRITICAL_UPDATE, TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS, TICKET_PROPERTY_POLICY_COMPLIANT, TICKET_PROPERTY_REQUEST_UNIQUE_ID, TICKET_PROPERTY_TESTING_INSTRUCTIONS, URL_FORM_UPDATE } from "./dapp_publisher_portal.js";
3
- const createUpdateRequest = async (connection, sign, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, criticalUpdate) => {
2
+ import { CONTACT_OBJECT_ID, CONTACT_PROPERTY_COMPANY, CONTACT_PROPERTY_EMAIL, CONTACT_PROPERTY_WEBSITE, submitRequestToSolanaDappPublisherPortal, TICKET_OBJECT_ID, TICKET_PROPERTY_ATTESTATION_PAYLOAD, TICKET_PROPERTY_AUTHORIZED_REQUEST, TICKET_PROPERTY_CRITICAL_UPDATE, TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS, TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS, TICKET_PROPERTY_POLICY_COMPLIANT, TICKET_PROPERTY_REQUEST_UNIQUE_ID, TICKET_PROPERTY_TESTING_INSTRUCTIONS, URL_FORM_UPDATE } from "./dapp_publisher_portal.js";
3
+ const createUpdateRequest = async (connection, sign, appMintAddress, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, criticalUpdate) => {
4
4
  const { attestationPayload, requestUniqueId } = await createAttestationPayload(connection, sign);
5
5
  const request = {
6
6
  fields: [
@@ -24,6 +24,11 @@ const createUpdateRequest = async (connection, sign, releaseMintAddress, publish
24
24
  name: TICKET_PROPERTY_ATTESTATION_PAYLOAD,
25
25
  value: attestationPayload
26
26
  },
27
+ {
28
+ objectTypeId: TICKET_OBJECT_ID,
29
+ name: TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
30
+ value: appMintAddress
31
+ },
27
32
  {
28
33
  objectTypeId: TICKET_OBJECT_ID,
29
34
  name: TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
@@ -62,8 +67,8 @@ const createUpdateRequest = async (connection, sign, releaseMintAddress, publish
62
67
  }
63
68
  return request;
64
69
  };
65
- export const publishUpdate = async (publishSolanaNetworkInput, { releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, criticalUpdate, }, dryRun) => {
66
- const updateRequest = await createUpdateRequest(publishSolanaNetworkInput.connection, publishSolanaNetworkInput.sign, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, criticalUpdate);
70
+ export const publishUpdate = async (publishSolanaNetworkInput, { appMintAddress, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, criticalUpdate, }, dryRun) => {
71
+ const updateRequest = await createUpdateRequest(publishSolanaNetworkInput.connection, publishSolanaNetworkInput.sign, appMintAddress, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, criticalUpdate);
67
72
  submitRequestToSolanaDappPublisherPortal(updateRequest, URL_FORM_UPDATE, dryRun);
68
73
  };
69
74
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/publish/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,wCAAwC,EACxC,gBAAgB,EAChB,mCAAmC,EACnC,kCAAkC,EAClC,+BAA+B,EAC/B,4CAA4C,EAC5C,gCAAgC,EAChC,iCAAiC,EACjC,oCAAoC,EACpC,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,mBAAmB,GAAG,KAAK,EAC/B,UAAsB,EACtB,IAA8B,EAC9B,kBAA0B,EAC1B,gBAA2B,EAC3B,sCAAuE,EACvE,mCAA4C,EAC5C,qBAA8B,EAC9B,cAAuB,EACvB,EAAE;IACF,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,MAAM,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEjG,MAAM,OAAO,GAAG;QACd,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,IAAI;aAC7B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,gBAAgB,CAAC,KAAK;aAC9B;YACD;gBACE,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,gBAAgB,CAAC,OAAO;aAChC;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,mCAAmC;gBACzC,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,4CAA4C;gBAClD,KAAK,EAAE,kBAAkB;aAC1B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,iCAAiC;gBACvC,KAAK,EAAE,eAAe;aACvB;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,kCAAkC;gBACxC,KAAK,EAAE,qBAAqB;aAC7B;YACD;gBACE,YAAY,EAAE,gBAAgB;gBAC9B,IAAI,EAAE,gCAAgC;gBACtC,KAAK,EAAE,mCAAmC;aAC3C;SACF;KACF,CAAC;IAEF,IAAI,cAAc,EAAE;QAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB;YACE,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,cAAc;SACtB,CACF,CAAC;KACH;IAED,IAAI,sCAAsC,CAAC,oBAAoB,KAAK,SAAS,EAAE;QAC7E,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB;YACE,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,oCAAoC;YAC1C,KAAK,EAAE,sCAAsC,CAAC,oBAAoB;SACnE,CACF,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAWF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,yBAAoD,EACpD,EACE,kBAAkB,EAClB,gBAAgB,EAChB,sCAAsC,EACtC,mCAAmC,EACnC,qBAAqB,EACrB,cAAc,GACM,EACtB,MAAe,EACf,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAC7C,yBAAyB,CAAC,UAAU,EACpC,yBAAyB,CAAC,IAAI,EAC9B,kBAAkB,EAClB,gBAAgB,EAChB,sCAAsC,EACtC,mCAAmC,EACnC,qBAAqB,EACrB,cAAc,CAAC,CAAC;IAElB,wCAAwC,CAAC,aAAa,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AACnF,CAAC,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/publish/update.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import Ajv from "ajv";
2
2
  // eslint-disable-next-line require-extensions/require-extensions
3
- import publisherSchema from "./schemas/publisherJsonMetadata.json";
3
+ import publisherSchema from "./schemas/publisherJsonMetadata.json" assert { type: "json" };
4
4
  // eslint-disable-next-line require-extensions/require-extensions
5
- import appSchema from "./schemas/appJsonMetadata.json";
5
+ import appSchema from "./schemas/appJsonMetadata.json" assert { type: "json" };
6
6
  // eslint-disable-next-line require-extensions/require-extensions
7
- import releaseSchema from "./schemas/releaseJsonMetadata.json";
7
+ import releaseSchema from "./schemas/releaseJsonMetadata.json" assert { type: "json" };
8
8
  export const validatePublisher = (publisherJson) => {
9
9
  const jsonToValidate = { ...publisherJson };
10
10
  if (typeof jsonToValidate.image !== "string") {
@@ -34,9 +34,27 @@ export const validateApp = (appJson) => {
34
34
  return valid;
35
35
  };
36
36
  export const validateRelease = (releaseJson) => {
37
+ const jsonToValidate = { ...releaseJson };
38
+ if (typeof jsonToValidate.image !== "string") {
39
+ jsonToValidate.image = jsonToValidate.image?.fileName;
40
+ }
41
+ // We need to replace media MetaplexFile instances with strings for validation
42
+ jsonToValidate.extensions.solana_dapp_store.media.forEach((media, index) => {
43
+ if (typeof media.uri !== "string") {
44
+ // @ts-ignore Ignoring hard type override from Metaplex to string
45
+ jsonToValidate.extensions.solana_dapp_store.media[index].uri = media.uri.fileName;
46
+ }
47
+ });
48
+ // We need to replace file MetaplexFile instances with strings for validation
49
+ jsonToValidate.extensions.solana_dapp_store.files.forEach((file, index) => {
50
+ if (typeof file.uri !== "string") {
51
+ // @ts-ignore
52
+ jsonToValidate.extensions.solana_dapp_store.files[index].uri = file.uri.fileName;
53
+ }
54
+ });
37
55
  const ajv = new Ajv({ strictTuples: false });
38
56
  const validate = ajv.compile(releaseSchema);
39
- const valid = validate(releaseJson);
57
+ const valid = validate(jsonToValidate);
40
58
  if (!valid) {
41
59
  console.error(validate.errors);
42
60
  throw new Error("Release JSON not valid");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validate/index.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,KAAK,CAAC;AAQtB,iEAAiE;AACjE,OAAO,eAAe,MAAM,sCAAsC,CAAC;AACnE,iEAAiE;AACjE,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,iEAAiE;AACjE,OAAO,aAAa,MAAM,oCAAoC,CAAC;AAE/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAAgC,EAAE,EAAE;IACpE,MAAM,cAAc,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;IAC5C,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE;QAC5C,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC;KACvD;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC7C;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAoB,EAAE,EAAE;IAClD,MAAM,cAAc,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IACtC,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE;QAC5C,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC;KACvD;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;KACvC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,WAAgC,EAAE,EAAE;IAClE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC3C;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validate/index.ts"],"names":[],"mappings":"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"}
@@ -107,6 +107,9 @@
107
107
  "purpose": {
108
108
  "type": "string"
109
109
  },
110
+ "uri": {
111
+ "type": "string"
112
+ },
110
113
  "width": {
111
114
  "type": "integer"
112
115
  },
@@ -117,7 +120,7 @@
117
120
  "type": "string"
118
121
  }
119
122
  },
120
- "required": ["mime", "purpose", "width", "height", "sha256"]
123
+ "required": ["mime", "purpose", "uri", "width", "height", "sha256"]
121
124
  }
122
125
  },
123
126
  "files": {
@@ -134,11 +137,14 @@
134
137
  "size": {
135
138
  "type": "integer"
136
139
  },
140
+ "uri": {
141
+ "type": "string"
142
+ },
137
143
  "sha256": {
138
144
  "type": "string"
139
145
  }
140
146
  },
141
- "required": ["mime", "purpose", "size", "sha256"]
147
+ "required": ["mime", "purpose", "size", "uri", "sha256"]
142
148
  }
143
149
  },
144
150
  "android_details": {
@@ -1,18 +1,5 @@
1
- import type { MetaplexFile } from "@metaplex-foundation/js";
2
1
  import type { Keypair, PublicKey } from "@solana/web3.js";
3
- import type { App, Context, Publisher, Release, ReleaseJsonMetadata } from "../types.js";
4
- declare type MetaplexFileReleaseJsonMetadata = ReleaseJsonMetadata & {
5
- extensions: {
6
- solana_dapp_store: {
7
- media: {
8
- uri: MetaplexFile;
9
- }[];
10
- files: {
11
- uri: MetaplexFile;
12
- }[];
13
- };
14
- };
15
- };
2
+ import type { App, Context, MetaplexFileReleaseJsonMetadata, Publisher, Release } from "../types.js";
16
3
  export declare const createReleaseJson: ({ releaseDetails, appDetails, publisherDetails, }: {
17
4
  releaseDetails: Release;
18
5
  appDetails: App;
@@ -1 +1 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../src/create/release.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAO5D,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EACV,GAAG,EACH,OAAO,EACP,SAAS,EACT,OAAO,EACP,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAsCrB,aAAK,+BAA+B,GAAG,mBAAmB,GAAG;IAC3D,UAAU,EAAE;QACV,iBAAiB,EAAE;YACjB,KAAK,EAAE;gBAAE,GAAG,EAAE,YAAY,CAAA;aAAE,EAAE,CAAC;YAC/B,KAAK,EAAE;gBAAE,GAAG,EAAE,YAAY,CAAA;aAAE,EAAE,CAAC;SAChC,CAAC;KACH,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,iBAAiB;oBAKP,OAAO;gBAAc,GAAG;sBAAoB,SAAS;qBACxD,SAAS,KAC1B,QAAQ,+BAA+B,CA0EzC,CAAC;AAEF,aAAK,kBAAkB,GAAG;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,UAAU,EAAE,GAAG,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,aAAa,0FAOrB,kBAAkB,2BACI,OAAO;;;EA4BjC,CAAC"}
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../src/create/release.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EACV,GAAG,EACH,OAAO,EACP,+BAA+B,EAC/B,SAAS,EACT,OAAO,EAER,MAAM,aAAa,CAAC;AAsCrB,eAAO,MAAM,iBAAiB;oBAKP,OAAO;gBAAc,GAAG;sBAAoB,SAAS;qBACxD,SAAS,KAC1B,QAAQ,+BAA+B,CAoEzC,CAAC;AAEF,aAAK,kBAAkB,GAAG;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,UAAU,EAAE,GAAG,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,aAAa,0FAOrB,kBAAkB,2BACI,OAAO;;;EA4BjC,CAAC"}
@@ -8,6 +8,7 @@ export declare const TICKET_PROPERTY_CONTENT = "content";
8
8
  export declare const TICKET_PROPERTY_ATTESTATION_PAYLOAD = "attestation_payload";
9
9
  export declare const TICKET_PROPERTY_AUTHORIZED_REQUEST = "requestor_is_authorized_to_submit_this_request";
10
10
  export declare const TICKET_PROPERTY_CRITICAL_UPDATE = "critical_update";
11
+ export declare const TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS = "dapp_collection_account_address";
11
12
  export declare const TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS = "dapp_release_account_address";
12
13
  export declare const TICKET_PROPERTY_GOOGLE_PLAY_STORE_PACKAGE_NAME = "google_play_store_package_name";
13
14
  export declare const TICKET_PROPERTY_POLICY_COMPLIANT = "complies_with_solana_dapp_store_policies";
@@ -1 +1 @@
1
- {"version":3,"file":"dapp_publisher_portal.d.ts","sourceRoot":"","sources":["../../../src/publish/dapp_publisher_portal.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAC9C,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAElD,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,mCAAmC,wBAAwB,CAAC;AACzE,eAAO,MAAM,kCAAkC,mDAAmD,CAAC;AACnG,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AACjE,eAAO,MAAM,4CAA4C,iCAAiC,CAAC;AAC3F,eAAO,MAAM,8CAA8C,mCAAmC,CAAC;AAC/F,eAAO,MAAM,gCAAgC,6CAA6C,CAAC;AAC3F,eAAO,MAAM,iCAAiC,sBAAsB,CAAC;AACrE,eAAO,MAAM,oCAAoC,yBAAyB,CAAC;AAE3E,eAAO,MAAM,WAAW,yCAAyC,CAAC;AAClE,eAAO,MAAM,WAAW,yCAAyC,CAAC;AAClE,eAAO,MAAM,WAAW,yCAAyC,CAAC;AAClE,eAAO,MAAM,YAAY,yCAAyC,CAAC;AAEnE,eAAO,MAAM,eAAe,QAA0F,CAAA;AACtH,eAAO,MAAM,eAAe,QAA0F,CAAA;AACtH,eAAO,MAAM,eAAe,QAA0F,CAAA;AACtH,eAAO,MAAM,gBAAgB,QAA2F,CAAA;AAExH,eAAO,MAAM,wCAAwC,YAC1C,GAAG,OACP,MAAM,UACH,OAAO,kBA8BhB,CAAC"}
1
+ {"version":3,"file":"dapp_publisher_portal.d.ts","sourceRoot":"","sources":["../../../src/publish/dapp_publisher_portal.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAC9C,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAElD,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,mCAAmC,wBAAwB,CAAC;AACzE,eAAO,MAAM,kCAAkC,mDAAmD,CAAC;AACnG,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AACjE,eAAO,MAAM,+CAA+C,oCAAoC,CAAC;AACjG,eAAO,MAAM,4CAA4C,iCAAiC,CAAC;AAC3F,eAAO,MAAM,8CAA8C,mCAAmC,CAAC;AAC/F,eAAO,MAAM,gCAAgC,6CAA6C,CAAC;AAC3F,eAAO,MAAM,iCAAiC,sBAAsB,CAAC;AACrE,eAAO,MAAM,oCAAoC,yBAAyB,CAAC;AAE3E,eAAO,MAAM,WAAW,yCAAyC,CAAC;AAClE,eAAO,MAAM,WAAW,yCAAyC,CAAC;AAClE,eAAO,MAAM,WAAW,yCAAyC,CAAC;AAClE,eAAO,MAAM,YAAY,yCAAyC,CAAC;AAEnE,eAAO,MAAM,eAAe,QAA0F,CAAA;AACtH,eAAO,MAAM,eAAe,QAA0F,CAAA;AACtH,eAAO,MAAM,eAAe,QAA0F,CAAA;AACtH,eAAO,MAAM,gBAAgB,QAA2F,CAAA;AAExH,eAAO,MAAM,wCAAwC,YAC1C,GAAG,OACP,MAAM,UACH,OAAO,kBA8BhB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import type { Publisher } from "../types.js";
2
2
  import { PublishSolanaNetworkInput } from "./types.js";
3
3
  export declare type PublishRemoveInput = {
4
+ appMintAddress: string;
4
5
  releaseMintAddress: string;
5
6
  publisherDetails: Publisher;
6
7
  requestorIsAuthorized: boolean;
7
8
  criticalUpdate: boolean;
8
9
  };
9
- export declare const publishRemove: (publishSolanaNetworkInput: PublishSolanaNetworkInput, { releaseMintAddress, publisherDetails, requestorIsAuthorized, criticalUpdate, }: PublishRemoveInput, dryRun: boolean) => Promise<void>;
10
+ export declare const publishRemove: (publishSolanaNetworkInput: PublishSolanaNetworkInput, { appMintAddress, releaseMintAddress, publisherDetails, requestorIsAuthorized, criticalUpdate, }: PublishRemoveInput, dryRun: boolean) => Promise<void>;
10
11
  //# sourceMappingURL=remove.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/publish/remove.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAgB7C,OAAO,EAAE,yBAAyB,EAA4B,MAAM,YAAY,CAAC;AAiEjF,oBAAY,kBAAkB,GAAG;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,aAAa,8BACG,yBAAyB,oFAMhD,kBAAkB,UACd,OAAO,kBAWhB,CAAC"}
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/publish/remove.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiB7C,OAAO,EAAE,yBAAyB,EAA4B,MAAM,YAAY,CAAC;AAuEjF,oBAAY,kBAAkB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,aAAa,8BACG,yBAAyB,oGAOhD,kBAAkB,UACd,OAAO,kBAYhB,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import type { Publisher, SolanaMobileDappPublisherPortal } from "../types.js";
2
2
  import { PublishSolanaNetworkInput } from "./types.js";
3
3
  export declare type PublishSubmitInput = {
4
+ appMintAddress: string;
4
5
  releaseMintAddress: string;
5
6
  publisherDetails: Publisher;
6
7
  solanaMobileDappPublisherPortalDetails: SolanaMobileDappPublisherPortal;
7
8
  compliesWithSolanaDappStorePolicies: boolean;
8
9
  requestorIsAuthorized: boolean;
9
10
  };
10
- export declare const publishSubmit: (publishSolanaNetworkInput: PublishSolanaNetworkInput, { releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, }: PublishSubmitInput, dryRun: boolean) => Promise<void>;
11
+ export declare const publishSubmit: (publishSolanaNetworkInput: PublishSolanaNetworkInput, { appMintAddress, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, }: PublishSubmitInput, dryRun: boolean) => Promise<void>;
11
12
  //# sourceMappingURL=submit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../../src/publish/submit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAkB9E,OAAO,EAAE,yBAAyB,EAA4B,MAAM,YAAY,CAAC;AA+EjF,oBAAY,kBAAkB,GAAG;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,sCAAsC,EAAE,+BAA+B,CAAC;IACxE,mCAAmC,EAAE,OAAO,CAAC;IAC7C,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,aAAa,8BACG,yBAAyB,iJAOhD,kBAAkB,UACd,OAAO,kBAYhB,CAAC"}
1
+ {"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../../src/publish/submit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAmB9E,OAAO,EAAE,yBAAyB,EAA4B,MAAM,YAAY,CAAC;AAqFjF,oBAAY,kBAAkB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,sCAAsC,EAAE,+BAA+B,CAAC;IACxE,mCAAmC,EAAE,OAAO,CAAC;IAC7C,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,aAAa,8BACG,yBAAyB,iKAQhD,kBAAkB,UACd,OAAO,kBAahB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import type { Publisher } from "../types.js";
2
2
  import { PublishSolanaNetworkInput } from "./types.js";
3
3
  export declare type PublishSupportInput = {
4
+ appMintAddress: string;
4
5
  releaseMintAddress: string;
5
6
  publisherDetails: Publisher;
6
7
  requestorIsAuthorized: boolean;
7
8
  requestDetails: string;
8
9
  };
9
- export declare const publishSupport: (publishSolanaNetworkInput: PublishSolanaNetworkInput, { releaseMintAddress, publisherDetails, requestorIsAuthorized, requestDetails, }: PublishSupportInput, dryRun: boolean) => Promise<void>;
10
+ export declare const publishSupport: (publishSolanaNetworkInput: PublishSolanaNetworkInput, { appMintAddress, releaseMintAddress, publisherDetails, requestorIsAuthorized, requestDetails, }: PublishSupportInput, dryRun: boolean) => Promise<void>;
10
11
  //# sourceMappingURL=support.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../../src/publish/support.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAgB7C,OAAO,EAAE,yBAAyB,EAA4B,MAAM,YAAY,CAAC;AA0DjF,oBAAY,mBAAmB,GAAG;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,cAAc,8BACE,yBAAyB,oFAMhD,mBAAmB,UACf,OAAO,kBAWhB,CAAC"}
1
+ {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../../src/publish/support.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiB7C,OAAO,EAAE,yBAAyB,EAA4B,MAAM,YAAY,CAAC;AAgEjF,oBAAY,mBAAmB,GAAG;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,cAAc,8BACE,yBAAyB,oGAOhD,mBAAmB,UACf,OAAO,kBAYhB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { Publisher, SolanaMobileDappPublisherPortal } from "../types.js";
2
2
  import { PublishSolanaNetworkInput } from "./types.js";
3
3
  export declare type PublishUpdateInput = {
4
+ appMintAddress: string;
4
5
  releaseMintAddress: string;
5
6
  publisherDetails: Publisher;
6
7
  solanaMobileDappPublisherPortalDetails: SolanaMobileDappPublisherPortal;
@@ -8,5 +9,5 @@ export declare type PublishUpdateInput = {
8
9
  requestorIsAuthorized: boolean;
9
10
  criticalUpdate: boolean;
10
11
  };
11
- export declare const publishUpdate: (publishSolanaNetworkInput: PublishSolanaNetworkInput, { releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, criticalUpdate, }: PublishUpdateInput, dryRun: boolean) => Promise<void>;
12
+ export declare const publishUpdate: (publishSolanaNetworkInput: PublishSolanaNetworkInput, { appMintAddress, releaseMintAddress, publisherDetails, solanaMobileDappPublisherPortalDetails, compliesWithSolanaDappStorePolicies, requestorIsAuthorized, criticalUpdate, }: PublishUpdateInput, dryRun: boolean) => Promise<void>;
12
13
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/publish/update.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAkB9E,OAAO,EAAE,yBAAyB,EAA4B,MAAM,YAAY,CAAC;AAkFjF,oBAAY,kBAAkB,GAAG;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,sCAAsC,EAAE,+BAA+B,CAAC;IACxE,mCAAmC,EAAE,OAAO,CAAC;IAC7C,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,aAAa,8BACG,yBAAyB,iKAQhD,kBAAkB,UACd,OAAO,kBAahB,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/publish/update.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAmB9E,OAAO,EAAE,yBAAyB,EAA4B,MAAM,YAAY,CAAC;AAwFjF,oBAAY,kBAAkB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,sCAAsC,EAAE,+BAA+B,CAAC;IACxE,mCAAmC,EAAE,OAAO,CAAC;IAC7C,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,aAAa,8BACG,yBAAyB,iLAShD,kBAAkB,UACd,OAAO,kBAchB,CAAC"}
@@ -8,6 +8,19 @@ export declare type PublisherMetadata = Omit<PublisherJsonMetadata, "image"> & {
8
8
  export declare type AppMetadata = Omit<AppJsonMetadata, "image"> & {
9
9
  image: string | MetaplexFile;
10
10
  };
11
+ export declare type MetaplexFileReleaseJsonMetadata = Omit<ReleaseJsonMetadata, "image"> & {
12
+ image: string | MetaplexFile;
13
+ extensions: {
14
+ solana_dapp_store: {
15
+ media: {
16
+ uri: MetaplexFile;
17
+ }[];
18
+ files: {
19
+ uri: MetaplexFile;
20
+ }[];
21
+ };
22
+ };
23
+ };
11
24
  export declare type Context = {
12
25
  publisher: Keypair;
13
26
  metaplex: Metaplex;
@@ -49,7 +62,6 @@ export declare type Release = {
49
62
  catalog: {
50
63
  [locale: string]: {
51
64
  name: string;
52
- short_description: string;
53
65
  long_description: string;
54
66
  new_in_version: string;
55
67
  saga_features: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,oBAAY,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,GAAG;IACrE,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;CAC9B,CAAC;AAEF,oBAAY,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG;IACzD,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;CAC9B,CAAC;AAEF,oBAAY,OAAO,GAAG;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,oBAAY,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC;CACxE,CAAC;AAEF,oBAAY,GAAG,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC;CACxE,CAAC;AAIF,oBAAY,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC;IACvE,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC;IACvE,eAAe,EAAE,cAAc,CAAC;IAChC,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,iBAAiB,EAAE,MAAM,CAAC;YAC1B,gBAAgB,EAAE,MAAM,CAAC;YACzB,cAAc,EAAE,MAAM,CAAC;YACvB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,oBAAY,+BAA+B,GAAG;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,oBAAY,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,GAAG;IACrE,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;CAC9B,CAAC;AAEF,oBAAY,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG;IACzD,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;CAC9B,CAAC;AAEF,oBAAY,+BAA+B,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAAG;IACjF,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,UAAU,EAAE;QACV,iBAAiB,EAAE;YACjB,KAAK,EAAE;gBAAE,GAAG,EAAE,YAAY,CAAA;aAAE,EAAE,CAAC;YAC/B,KAAK,EAAE;gBAAE,GAAG,EAAE,YAAY,CAAA;aAAE,EAAE,CAAC;SAChC,CAAC;KACH,CAAC;CACH,CAAC;AAEF,oBAAY,OAAO,GAAG;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,oBAAY,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC;CACxE,CAAC;AAEF,oBAAY,GAAG,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC;CACxE,CAAC;AAIF,oBAAY,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC;IACvE,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC;IACvE,eAAe,EAAE,cAAc,CAAC;IAChC,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,gBAAgB,EAAE,MAAM,CAAC;YACzB,cAAc,EAAE,MAAM,CAAC;YACvB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,oBAAY,+BAA+B,GAAG;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { AppMetadata, PublisherMetadata, ReleaseJsonMetadata } from "../types.js";
1
+ import type { AppMetadata, MetaplexFileReleaseJsonMetadata, PublisherMetadata } from "../types.js";
2
2
  export declare const validatePublisher: (publisherJson: PublisherMetadata) => true;
3
3
  export declare const validateApp: (appJson: AppMetadata) => true;
4
- export declare const validateRelease: (releaseJson: ReleaseJsonMetadata) => true;
4
+ export declare const validateRelease: (releaseJson: MetaplexFileReleaseJsonMetadata) => true;
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validate/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AASrB,eAAO,MAAM,iBAAiB,kBAAmB,iBAAiB,SAejE,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,WAAW,SAe/C,CAAC;AAEF,eAAO,MAAM,eAAe,gBAAiB,mBAAmB,SAU/D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validate/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,+BAA+B,EAC/B,iBAAiB,EAElB,MAAM,aAAa,CAAC;AASrB,eAAO,MAAM,iBAAiB,kBAAmB,iBAAiB,SAejE,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,WAAW,SAe/C,CAAC;AAEF,eAAO,MAAM,eAAe,gBAAiB,+BAA+B,SA+B3E,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,15 @@
1
1
  {
2
2
  "name": "@solana-mobile/dapp-store-publishing-tools",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "main": "./lib/cjs/index.js",
8
8
  "module": "./lib/esm/index.js",
9
9
  "types": "./lib/types/index.d.ts",
10
+ "engines": {
11
+ "node": ">=18"
12
+ },
10
13
  "exports": {
11
14
  "import": "./lib/esm/index.js",
12
15
  "require": "./lib/cjs/index.js",
@@ -14,9 +14,10 @@ import type { Keypair, PublicKey } from "@solana/web3.js";
14
14
  import type {
15
15
  App,
16
16
  Context,
17
+ MetaplexFileReleaseJsonMetadata,
17
18
  Publisher,
18
19
  Release,
19
- ReleaseJsonMetadata,
20
+ ReleaseJsonMetadata
20
21
  } from "../types.js";
21
22
 
22
23
  const runImgSize = util.promisify(imageSize);
@@ -32,7 +33,7 @@ const getFileMetadata = async (item: Media | File) => {
32
33
  // TODO(jon): This stuff should be probably be in `packages/cli`
33
34
  const mediaBuffer = await fs.promises.readFile(file);
34
35
  const size = (await fs.promises.stat(file)).size;
35
- const hash = createHash("sha256").update(mediaBuffer).digest("base64");
36
+ const hash = createHash("sha256").update(mediaBuffer).digest("hex");
36
37
  const metadata = {
37
38
  purpose: item.purpose,
38
39
  uri: toMetaplexFile(mediaBuffer, item.uri),
@@ -55,15 +56,6 @@ const getMediaMetadata = async (item: Media) => {
55
56
  };
56
57
  };
57
58
 
58
- type MetaplexFileReleaseJsonMetadata = ReleaseJsonMetadata & {
59
- extensions: {
60
- solana_dapp_store: {
61
- media: { uri: MetaplexFile }[];
62
- files: { uri: MetaplexFile }[];
63
- };
64
- };
65
- };
66
-
67
59
  export const createReleaseJson = async (
68
60
  {
69
61
  releaseDetails,
@@ -72,9 +64,6 @@ export const createReleaseJson = async (
72
64
  }: { releaseDetails: Release; appDetails: App; publisherDetails: Publisher },
73
65
  publisherAddress: PublicKey
74
66
  ): Promise<MetaplexFileReleaseJsonMetadata> => {
75
- const truncatedAppMintAddress = truncateAddress(appDetails.address);
76
-
77
- const releaseName = `${Object.values(releaseDetails.catalog)[0].name} ${releaseDetails.android_details.version}`;
78
67
 
79
68
  const media = [];
80
69
  debug({ media: releaseDetails.media });
@@ -90,10 +79,9 @@ export const createReleaseJson = async (
90
79
 
91
80
  const releaseMetadata: MetaplexFileReleaseJsonMetadata = {
92
81
  schema_version: "0.2.4",
93
- name: releaseName,
94
- description: Object.values(releaseDetails.catalog)[0].short_description,
95
- // TODO(jon): Figure out where to get this image
96
- image: "",
82
+ name: "Release: " + appDetails.name,
83
+ description: `Release NFT for ${appDetails.name} version ${releaseDetails.android_details.version}`,
84
+ image: appDetails.icon!,
97
85
  external_url: appDetails.urls.website,
98
86
  properties: {
99
87
  category: "dApp",
@@ -106,6 +94,7 @@ export const createReleaseJson = async (
106
94
  },
107
95
  extensions: {
108
96
  solana_dapp_store: {
97
+ // @ts-expect-error
109
98
  publisher_details: {
110
99
  name: publisherDetails.name,
111
100
  website: publisherDetails.website,
@@ -117,16 +106,13 @@ export const createReleaseJson = async (
117
106
  copyright_url: appDetails.urls.copyright_url,
118
107
  privacy_policy_url: appDetails.urls.privacy_policy_url,
119
108
  localized_resources: {
120
- short_description: "1",
121
- long_description: "2",
122
- new_in_version: "3",
123
- saga_features: "4",
124
- name: "5",
109
+ long_description: "1",
110
+ new_in_version: "2",
111
+ saga_features: "3",
112
+ name: "4",
125
113
  },
126
114
  },
127
- // @ts-expect-error It's a bit of a headache to modify the deeply-nested extension.solana_dapp_store.media.uri type
128
115
  media,
129
- // @ts-expect-error It's a bit of a headache to modify the deeply-nested extension.solana_dapp_store.files.uri type
130
116
  files,
131
117
  android_details: releaseDetails.android_details,
132
118
  },
@@ -135,12 +121,12 @@ export const createReleaseJson = async (
135
121
  };
136
122
 
137
123
  for (const [locale, strings] of Object.entries(releaseDetails.catalog)) {
124
+ // @ts-expect-error
138
125
  releaseMetadata.extensions.i18n[locale] = {
139
- "1": strings.short_description,
140
- "2": strings.long_description,
141
- "3": strings.new_in_version,
142
- "4": strings.saga_features,
143
- "5": strings.name,
126
+ "1": strings.long_description,
127
+ "2": strings.new_in_version,
128
+ "3": strings.saga_features,
129
+ "4": strings.name,
144
130
  };
145
131
  }
146
132
 
@@ -12,6 +12,7 @@ export const TICKET_PROPERTY_CONTENT = "content"; // string
12
12
  export const TICKET_PROPERTY_ATTESTATION_PAYLOAD = "attestation_payload"; // base64-encoded string
13
13
  export const TICKET_PROPERTY_AUTHORIZED_REQUEST = "requestor_is_authorized_to_submit_this_request"; // boolean
14
14
  export const TICKET_PROPERTY_CRITICAL_UPDATE = "critical_update"; // boolean
15
+ export const TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS = "dapp_collection_account_address"; // base58-encoded string
15
16
  export const TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS = "dapp_release_account_address"; // base58-encoded string
16
17
  export const TICKET_PROPERTY_GOOGLE_PLAY_STORE_PACKAGE_NAME = "google_play_store_package_name"; // string
17
18
  export const TICKET_PROPERTY_POLICY_COMPLIANT = "complies_with_solana_dapp_store_policies"; // boolean
@@ -11,6 +11,7 @@ import {
11
11
  TICKET_PROPERTY_ATTESTATION_PAYLOAD,
12
12
  TICKET_PROPERTY_AUTHORIZED_REQUEST,
13
13
  TICKET_PROPERTY_CRITICAL_UPDATE,
14
+ TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
14
15
  TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
15
16
  TICKET_PROPERTY_REQUEST_UNIQUE_ID,
16
17
  URL_FORM_REMOVE
@@ -20,6 +21,7 @@ import { PublishSolanaNetworkInput, SignWithPublisherKeypair } from "./types.js"
20
21
  const createRemoveRequest = async (
21
22
  connection: Connection,
22
23
  sign: SignWithPublisherKeypair,
24
+ appMintAddress: string,
23
25
  releaseMintAddress: string,
24
26
  publisherDetails: Publisher,
25
27
  requestorIsAuthorized: boolean,
@@ -49,6 +51,11 @@ const createRemoveRequest = async (
49
51
  name: TICKET_PROPERTY_ATTESTATION_PAYLOAD,
50
52
  value: attestationPayload
51
53
  },
54
+ {
55
+ objectTypeId: TICKET_OBJECT_ID,
56
+ name: TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
57
+ value: appMintAddress
58
+ },
52
59
  {
53
60
  objectTypeId: TICKET_OBJECT_ID,
54
61
  name: TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
@@ -81,6 +88,7 @@ const createRemoveRequest = async (
81
88
  };
82
89
 
83
90
  export type PublishRemoveInput = {
91
+ appMintAddress: string;
84
92
  releaseMintAddress: string;
85
93
  publisherDetails: Publisher;
86
94
  requestorIsAuthorized: boolean;
@@ -90,6 +98,7 @@ export type PublishRemoveInput = {
90
98
  export const publishRemove = async (
91
99
  publishSolanaNetworkInput: PublishSolanaNetworkInput,
92
100
  {
101
+ appMintAddress,
93
102
  releaseMintAddress,
94
103
  publisherDetails,
95
104
  requestorIsAuthorized,
@@ -100,6 +109,7 @@ export const publishRemove = async (
100
109
  const removeRequest = await createRemoveRequest(
101
110
  publishSolanaNetworkInput.connection,
102
111
  publishSolanaNetworkInput.sign,
112
+ appMintAddress,
103
113
  releaseMintAddress,
104
114
  publisherDetails,
105
115
  requestorIsAuthorized,
@@ -10,6 +10,7 @@ import {
10
10
  TICKET_OBJECT_ID,
11
11
  TICKET_PROPERTY_ATTESTATION_PAYLOAD,
12
12
  TICKET_PROPERTY_AUTHORIZED_REQUEST,
13
+ TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
13
14
  TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
14
15
  TICKET_PROPERTY_GOOGLE_PLAY_STORE_PACKAGE_NAME,
15
16
  TICKET_PROPERTY_POLICY_COMPLIANT,
@@ -22,6 +23,7 @@ import { PublishSolanaNetworkInput, SignWithPublisherKeypair } from "./types.js"
22
23
  const createSubmitRequest = async (
23
24
  connection: Connection,
24
25
  sign: SignWithPublisherKeypair,
26
+ appMintAddress: string,
25
27
  releaseMintAddress: string,
26
28
  publisherDetails: Publisher,
27
29
  solanaMobileDappPublisherPortalDetails: SolanaMobileDappPublisherPortal,
@@ -52,6 +54,11 @@ const createSubmitRequest = async (
52
54
  name: TICKET_PROPERTY_ATTESTATION_PAYLOAD,
53
55
  value: attestationPayload
54
56
  },
57
+ {
58
+ objectTypeId: TICKET_OBJECT_ID,
59
+ name: TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
60
+ value: appMintAddress
61
+ },
55
62
  {
56
63
  objectTypeId: TICKET_OBJECT_ID,
57
64
  name: TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
@@ -97,6 +104,7 @@ const createSubmitRequest = async (
97
104
  };
98
105
 
99
106
  export type PublishSubmitInput = {
107
+ appMintAddress: string;
100
108
  releaseMintAddress: string;
101
109
  publisherDetails: Publisher;
102
110
  solanaMobileDappPublisherPortalDetails: SolanaMobileDappPublisherPortal;
@@ -107,6 +115,7 @@ export type PublishSubmitInput = {
107
115
  export const publishSubmit = async (
108
116
  publishSolanaNetworkInput: PublishSolanaNetworkInput,
109
117
  {
118
+ appMintAddress,
110
119
  releaseMintAddress,
111
120
  publisherDetails,
112
121
  solanaMobileDappPublisherPortalDetails,
@@ -118,6 +127,7 @@ export const publishSubmit = async (
118
127
  const submitRequest = await createSubmitRequest(
119
128
  publishSolanaNetworkInput.connection,
120
129
  publishSolanaNetworkInput.sign,
130
+ appMintAddress,
121
131
  releaseMintAddress,
122
132
  publisherDetails,
123
133
  solanaMobileDappPublisherPortalDetails,
@@ -11,6 +11,7 @@ import {
11
11
  TICKET_PROPERTY_ATTESTATION_PAYLOAD,
12
12
  TICKET_PROPERTY_AUTHORIZED_REQUEST,
13
13
  TICKET_PROPERTY_CONTENT,
14
+ TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
14
15
  TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
15
16
  TICKET_PROPERTY_REQUEST_UNIQUE_ID,
16
17
  URL_FORM_SUPPORT
@@ -20,6 +21,7 @@ import { PublishSolanaNetworkInput, SignWithPublisherKeypair } from "./types.js"
20
21
  const createSupportRequest = async (
21
22
  connection: Connection,
22
23
  sign: SignWithPublisherKeypair,
24
+ appMintAddress: string,
23
25
  releaseMintAddress: string,
24
26
  publisherDetails: Publisher,
25
27
  requestorIsAuthorized: boolean,
@@ -54,6 +56,11 @@ const createSupportRequest = async (
54
56
  name: TICKET_PROPERTY_CONTENT,
55
57
  value: requestDetails
56
58
  },
59
+ {
60
+ objectTypeId: TICKET_OBJECT_ID,
61
+ name: TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
62
+ value: appMintAddress
63
+ },
57
64
  {
58
65
  objectTypeId: TICKET_OBJECT_ID,
59
66
  name: TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
@@ -74,6 +81,7 @@ const createSupportRequest = async (
74
81
  };
75
82
 
76
83
  export type PublishSupportInput = {
84
+ appMintAddress: string;
77
85
  releaseMintAddress: string;
78
86
  publisherDetails: Publisher;
79
87
  requestorIsAuthorized: boolean;
@@ -83,6 +91,7 @@ export type PublishSupportInput = {
83
91
  export const publishSupport = async (
84
92
  publishSolanaNetworkInput: PublishSolanaNetworkInput,
85
93
  {
94
+ appMintAddress,
86
95
  releaseMintAddress,
87
96
  publisherDetails,
88
97
  requestorIsAuthorized,
@@ -93,6 +102,7 @@ export const publishSupport = async (
93
102
  const supportRequest = await createSupportRequest(
94
103
  publishSolanaNetworkInput.connection,
95
104
  publishSolanaNetworkInput.sign,
105
+ appMintAddress,
96
106
  releaseMintAddress,
97
107
  publisherDetails,
98
108
  requestorIsAuthorized,
@@ -11,6 +11,7 @@ import {
11
11
  TICKET_PROPERTY_ATTESTATION_PAYLOAD,
12
12
  TICKET_PROPERTY_AUTHORIZED_REQUEST,
13
13
  TICKET_PROPERTY_CRITICAL_UPDATE,
14
+ TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
14
15
  TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
15
16
  TICKET_PROPERTY_POLICY_COMPLIANT,
16
17
  TICKET_PROPERTY_REQUEST_UNIQUE_ID,
@@ -22,6 +23,7 @@ import { PublishSolanaNetworkInput, SignWithPublisherKeypair } from "./types.js"
22
23
  const createUpdateRequest = async (
23
24
  connection: Connection,
24
25
  sign: SignWithPublisherKeypair,
26
+ appMintAddress: string,
25
27
  releaseMintAddress: string,
26
28
  publisherDetails: Publisher,
27
29
  solanaMobileDappPublisherPortalDetails: SolanaMobileDappPublisherPortal,
@@ -53,6 +55,11 @@ const createUpdateRequest = async (
53
55
  name: TICKET_PROPERTY_ATTESTATION_PAYLOAD,
54
56
  value: attestationPayload
55
57
  },
58
+ {
59
+ objectTypeId: TICKET_OBJECT_ID,
60
+ name: TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS,
61
+ value: appMintAddress
62
+ },
56
63
  {
57
64
  objectTypeId: TICKET_OBJECT_ID,
58
65
  name: TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS,
@@ -100,6 +107,7 @@ const createUpdateRequest = async (
100
107
  };
101
108
 
102
109
  export type PublishUpdateInput = {
110
+ appMintAddress: string;
103
111
  releaseMintAddress: string;
104
112
  publisherDetails: Publisher;
105
113
  solanaMobileDappPublisherPortalDetails: SolanaMobileDappPublisherPortal;
@@ -111,6 +119,7 @@ export type PublishUpdateInput = {
111
119
  export const publishUpdate = async (
112
120
  publishSolanaNetworkInput: PublishSolanaNetworkInput,
113
121
  {
122
+ appMintAddress,
114
123
  releaseMintAddress,
115
124
  publisherDetails,
116
125
  solanaMobileDappPublisherPortalDetails,
@@ -123,6 +132,7 @@ export const publishUpdate = async (
123
132
  const updateRequest = await createUpdateRequest(
124
133
  publishSolanaNetworkInput.connection,
125
134
  publishSolanaNetworkInput.sign,
135
+ appMintAddress,
126
136
  releaseMintAddress,
127
137
  publisherDetails,
128
138
  solanaMobileDappPublisherPortalDetails,
package/src/types.ts CHANGED
@@ -16,6 +16,16 @@ export type AppMetadata = Omit<AppJsonMetadata, "image"> & {
16
16
  image: string | MetaplexFile;
17
17
  };
18
18
 
19
+ export type MetaplexFileReleaseJsonMetadata = Omit<ReleaseJsonMetadata, "image"> & {
20
+ image: string | MetaplexFile;
21
+ extensions: {
22
+ solana_dapp_store: {
23
+ media: { uri: MetaplexFile }[];
24
+ files: { uri: MetaplexFile }[];
25
+ };
26
+ };
27
+ };
28
+
19
29
  export type Context = {
20
30
  publisher: Keypair;
21
31
  metaplex: Metaplex;
@@ -63,7 +73,6 @@ export type Release = {
63
73
  catalog: {
64
74
  [locale: string]: {
65
75
  name: string;
66
- short_description: string;
67
76
  long_description: string;
68
77
  new_in_version: string;
69
78
  saga_features: string;
@@ -3,16 +3,17 @@ import Ajv from "ajv";
3
3
 
4
4
  import type {
5
5
  AppMetadata,
6
+ MetaplexFileReleaseJsonMetadata,
6
7
  PublisherMetadata,
7
- ReleaseJsonMetadata,
8
+ ReleaseJsonMetadata
8
9
  } from "../types.js";
9
10
 
10
11
  // eslint-disable-next-line require-extensions/require-extensions
11
- import publisherSchema from "./schemas/publisherJsonMetadata.json";
12
+ import publisherSchema from "./schemas/publisherJsonMetadata.json" assert { type: "json" };
12
13
  // eslint-disable-next-line require-extensions/require-extensions
13
- import appSchema from "./schemas/appJsonMetadata.json";
14
+ import appSchema from "./schemas/appJsonMetadata.json" assert { type: "json" };
14
15
  // eslint-disable-next-line require-extensions/require-extensions
15
- import releaseSchema from "./schemas/releaseJsonMetadata.json";
16
+ import releaseSchema from "./schemas/releaseJsonMetadata.json" assert { type: "json" };
16
17
 
17
18
  export const validatePublisher = (publisherJson: PublisherMetadata) => {
18
19
  const jsonToValidate = { ...publisherJson };
@@ -48,11 +49,32 @@ export const validateApp = (appJson: AppMetadata) => {
48
49
  return valid;
49
50
  };
50
51
 
51
- export const validateRelease = (releaseJson: ReleaseJsonMetadata) => {
52
+ export const validateRelease = (releaseJson: MetaplexFileReleaseJsonMetadata) => {
53
+ const jsonToValidate = { ...releaseJson };
54
+ if (typeof jsonToValidate.image !== "string") {
55
+ jsonToValidate.image = jsonToValidate.image?.fileName;
56
+ }
57
+
58
+ // We need to replace media MetaplexFile instances with strings for validation
59
+ jsonToValidate.extensions.solana_dapp_store.media.forEach((media, index) => {
60
+ if (typeof media.uri !== "string") {
61
+ // @ts-ignore Ignoring hard type override from Metaplex to string
62
+ jsonToValidate.extensions.solana_dapp_store.media[index].uri = media.uri.fileName;
63
+ }
64
+ });
65
+
66
+ // We need to replace file MetaplexFile instances with strings for validation
67
+ jsonToValidate.extensions.solana_dapp_store.files.forEach((file, index) => {
68
+ if (typeof file.uri !== "string") {
69
+ // @ts-ignore
70
+ jsonToValidate.extensions.solana_dapp_store.files[index].uri = file.uri.fileName;
71
+ }
72
+ });
73
+
52
74
  const ajv = new Ajv({ strictTuples: false });
53
75
  const validate = ajv.compile(releaseSchema);
54
76
 
55
- const valid = validate(releaseJson);
77
+ const valid = validate(jsonToValidate);
56
78
  if (!valid) {
57
79
  console.error(validate.errors);
58
80
  throw new Error("Release JSON not valid");
@@ -107,6 +107,9 @@
107
107
  "purpose": {
108
108
  "type": "string"
109
109
  },
110
+ "uri": {
111
+ "type": "string"
112
+ },
110
113
  "width": {
111
114
  "type": "integer"
112
115
  },
@@ -117,7 +120,7 @@
117
120
  "type": "string"
118
121
  }
119
122
  },
120
- "required": ["mime", "purpose", "width", "height", "sha256"]
123
+ "required": ["mime", "purpose", "uri", "width", "height", "sha256"]
121
124
  }
122
125
  },
123
126
  "files": {
@@ -134,11 +137,14 @@
134
137
  "size": {
135
138
  "type": "integer"
136
139
  },
140
+ "uri": {
141
+ "type": "string"
142
+ },
137
143
  "sha256": {
138
144
  "type": "string"
139
145
  }
140
146
  },
141
- "required": ["mime", "purpose", "size", "sha256"]
147
+ "required": ["mime", "purpose", "size", "uri", "sha256"]
142
148
  }
143
149
  },
144
150
  "android_details": {