@solana-mobile/dapp-store-cli 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/commands/create/app.js +7 -5
- package/lib/esm/commands/create/app.js.map +1 -1
- package/lib/esm/commands/create/publisher.js +7 -5
- package/lib/esm/commands/create/publisher.js.map +1 -1
- package/lib/esm/commands/create/release.js +7 -5
- package/lib/esm/commands/create/release.js.map +1 -1
- package/lib/esm/commands/publish/remove.js +2 -2
- package/lib/esm/commands/publish/remove.js.map +1 -1
- package/lib/esm/commands/publish/submit.js +2 -2
- package/lib/esm/commands/publish/submit.js.map +1 -1
- package/lib/esm/commands/publish/support.js +2 -2
- package/lib/esm/commands/publish/support.js.map +1 -1
- package/lib/esm/commands/publish/update.js +2 -2
- package/lib/esm/commands/publish/update.js.map +1 -1
- package/lib/esm/commands/validate.js +2 -2
- package/lib/esm/commands/validate.js.map +1 -1
- package/lib/esm/generated/config_obj.json +1 -1
- package/lib/esm/generated/config_schema.json +1 -1
- package/lib/esm/index.js +18 -8
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/package.json +2 -2
- package/lib/esm/utils.js +55 -16
- package/lib/esm/utils.js.map +1 -1
- package/lib/types/commands/create/app.d.ts.map +1 -1
- package/lib/types/commands/create/publisher.d.ts.map +1 -1
- package/lib/types/commands/create/release.d.ts.map +1 -1
- package/lib/types/utils.d.ts +2 -2
- package/lib/types/utils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/commands/create/app.ts +7 -5
- package/src/commands/create/publisher.ts +7 -5
- package/src/commands/create/release.ts +7 -5
- package/src/commands/publish/remove.ts +2 -2
- package/src/commands/publish/submit.ts +2 -2
- package/src/commands/publish/support.ts +2 -2
- package/src/commands/publish/update.ts +2 -2
- package/src/commands/validate.ts +2 -2
- package/src/index.ts +25 -10
- package/src/prebuild_schema/publishing_source.yaml +7 -5
- package/src/prebuild_schema/schemagen.js +7 -0
- package/src/utils.ts +77 -23
- package/src/config/schema.json +0 -195
- package/src/generated/config_obj.json +0 -1
- package/src/generated/config_schema.json +0 -1
package/lib/esm/utils.js
CHANGED
|
@@ -17,7 +17,7 @@ const runImgSize = util.promisify(imageSize);
|
|
|
17
17
|
const runExec = util.promisify(exec);
|
|
18
18
|
export class Constants {
|
|
19
19
|
}
|
|
20
|
-
Constants.CLI_VERSION = "0.
|
|
20
|
+
Constants.CLI_VERSION = "0.4.0";
|
|
21
21
|
Constants.CONFIG_FILE_NAME = "config.yaml";
|
|
22
22
|
export const debug = debugModule("CLI");
|
|
23
23
|
export const checkForSelfUpdate = async () => {
|
|
@@ -46,7 +46,7 @@ export const parseKeypair = (pathToKeypairFile) => {
|
|
|
46
46
|
return Keypair.fromSecretKey(Buffer.from(JSON.parse(keypairFile)));
|
|
47
47
|
}
|
|
48
48
|
catch (e) {
|
|
49
|
-
|
|
49
|
+
showMessage("KeyPair Error", "Something went wrong when attempting to retrieve the keypair at " + pathToKeypairFile, "error");
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
52
|
const AaptPrefixes = {
|
|
@@ -56,10 +56,9 @@ const AaptPrefixes = {
|
|
|
56
56
|
verCodePrefix: "versionCode=",
|
|
57
57
|
verNamePrefix: "versionName=",
|
|
58
58
|
sdkPrefix: "sdkVersion:",
|
|
59
|
-
permissionPrefix: "uses-permission: name=",
|
|
60
59
|
localePrefix: "locales: ",
|
|
61
60
|
};
|
|
62
|
-
export const
|
|
61
|
+
export const getConfigWithChecks = async (buildToolsDir = null) => {
|
|
63
62
|
const configFilePath = `${process.cwd()}/${Constants.CONFIG_FILE_NAME}`;
|
|
64
63
|
const config = await getConfig(configFilePath);
|
|
65
64
|
if (buildToolsDir && fs.lstatSync(buildToolsDir).isDirectory()) {
|
|
@@ -99,6 +98,14 @@ export const getConfigFile = async (buildToolsDir = null) => {
|
|
|
99
98
|
throw new Error(`Invalid media path or file type: ${item.uri}. Please ensure the file is a jpeg, png, or webp file.`);
|
|
100
99
|
}
|
|
101
100
|
});
|
|
101
|
+
validateLocalizableResources(config);
|
|
102
|
+
const googlePkg = config.solana_mobile_dapp_publisher_portal.google_store_package;
|
|
103
|
+
if (googlePkg?.length) {
|
|
104
|
+
const pkgCompare = new RegExp("[a-zA-Z0-9_]+(\\.[a-zA-Z0-9_]+)+").exec(googlePkg);
|
|
105
|
+
if (!pkgCompare?.length) {
|
|
106
|
+
throw new Error("Please provide a valid Google store package name in the Publisher Portal section of your configuration file.");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
102
109
|
return config;
|
|
103
110
|
};
|
|
104
111
|
const checkIconCompatibility = async (path, typeString) => {
|
|
@@ -116,6 +123,27 @@ const checkImageExtension = (uri) => {
|
|
|
116
123
|
fileExt == ".jpeg" ||
|
|
117
124
|
fileExt == ".webp");
|
|
118
125
|
};
|
|
126
|
+
/**
|
|
127
|
+
* We need to pre-check some things in the localized resources before we move forward
|
|
128
|
+
*/
|
|
129
|
+
const validateLocalizableResources = (config) => {
|
|
130
|
+
if (!config.release.catalog["en-US"]) {
|
|
131
|
+
throw new Error("Please ensure you have the en-US locale strings in your configuration file.");
|
|
132
|
+
}
|
|
133
|
+
const baselineSize = Object.keys(config.release.catalog["en-US"]).length;
|
|
134
|
+
Object.keys(config.release.catalog).forEach((locale) => {
|
|
135
|
+
const size = Object.keys(config.release.catalog[locale]).length;
|
|
136
|
+
if (size != baselineSize) {
|
|
137
|
+
throw new Error("Please ensure you have included all localized strings for all locales in your configuration file.");
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
const descsWrongLength = Object.values(config.release.catalog)
|
|
141
|
+
.map((x) => x.short_description)
|
|
142
|
+
.filter((desc) => !desc?.length || desc.length > 50);
|
|
143
|
+
if (descsWrongLength.length > 0) {
|
|
144
|
+
throw new Error("Please ensure all translations of short_description are between 0 and 50 characters");
|
|
145
|
+
}
|
|
146
|
+
};
|
|
119
147
|
export const isDevnet = (rpcUrl) => {
|
|
120
148
|
return rpcUrl.indexOf("devnet") != -1;
|
|
121
149
|
};
|
|
@@ -140,16 +168,25 @@ export const generateNetworkSuffix = (rpcUrl) => {
|
|
|
140
168
|
}
|
|
141
169
|
return suffix;
|
|
142
170
|
};
|
|
143
|
-
export const showMessage = (titleMessage = "", contentMessage = "",
|
|
144
|
-
|
|
171
|
+
export const showMessage = (titleMessage = "", contentMessage = "", type = "standard") => {
|
|
172
|
+
let color = "cyan";
|
|
173
|
+
if (type == "error") {
|
|
174
|
+
color = "redBright";
|
|
175
|
+
}
|
|
176
|
+
else if (type == "warning") {
|
|
177
|
+
color = "yellow";
|
|
178
|
+
}
|
|
179
|
+
const msg = boxen(contentMessage, {
|
|
145
180
|
title: titleMessage,
|
|
146
181
|
padding: 1,
|
|
147
182
|
margin: 1,
|
|
148
183
|
borderStyle: 'single',
|
|
149
|
-
borderColor:
|
|
184
|
+
borderColor: color,
|
|
150
185
|
textAlignment: "left",
|
|
151
|
-
titleAlignment: "center"
|
|
152
|
-
})
|
|
186
|
+
titleAlignment: "center",
|
|
187
|
+
});
|
|
188
|
+
console.log(msg);
|
|
189
|
+
return msg;
|
|
153
190
|
};
|
|
154
191
|
const checkIconDimensions = async (iconPath) => {
|
|
155
192
|
const size = await runImgSize(iconPath);
|
|
@@ -161,28 +198,30 @@ const getAndroidDetails = async (aaptDir, apkPath) => {
|
|
|
161
198
|
const versionCode = new RegExp(AaptPrefixes.verCodePrefix + AaptPrefixes.quoteRegex).exec(stdout);
|
|
162
199
|
const versionName = new RegExp(AaptPrefixes.verNamePrefix + AaptPrefixes.quoteRegex).exec(stdout);
|
|
163
200
|
const minSdk = new RegExp(AaptPrefixes.sdkPrefix + AaptPrefixes.quoteRegex).exec(stdout);
|
|
164
|
-
const permissions =
|
|
201
|
+
const permissions = [...stdout.matchAll(/uses-permission: name='(.*)'/g)];
|
|
165
202
|
const locales = new RegExp(AaptPrefixes.localePrefix + AaptPrefixes.quoteNonLazyRegex).exec(stdout);
|
|
166
|
-
let permissionArray = Array.from(permissions?.values() ?? []);
|
|
167
|
-
if (permissionArray.length >= 2) {
|
|
168
|
-
permissionArray = permissionArray.slice(1);
|
|
169
|
-
}
|
|
170
203
|
let localeArray = Array.from(locales?.values() ?? []);
|
|
171
204
|
if (localeArray.length == 2) {
|
|
172
205
|
const localesSrc = localeArray[1];
|
|
173
206
|
localeArray = ["en-US"].concat(localesSrc.split("' '").slice(1));
|
|
174
207
|
}
|
|
208
|
+
if (localeArray.length >= 60) {
|
|
209
|
+
showMessage("The bundle apk claims supports for following locales", "Claim for supported locales::\n" +
|
|
210
|
+
localeArray +
|
|
211
|
+
"\nIf this release does not support all these locales the release may be rejected" +
|
|
212
|
+
"\nSee details at https://developer.android.com/guide/topics/resources/multilingual-support#design for configuring the supported locales", "warning");
|
|
213
|
+
}
|
|
175
214
|
return {
|
|
176
215
|
android_package: appPackage?.[1] ?? "",
|
|
177
216
|
min_sdk: parseInt(minSdk?.[1] ?? "0", 10),
|
|
178
217
|
version_code: parseInt(versionCode?.[1] ?? "0", 10),
|
|
179
218
|
version: versionName?.[1] ?? "0",
|
|
180
|
-
permissions:
|
|
219
|
+
permissions: permissions.flatMap(permission => permission[1]),
|
|
181
220
|
locales: localeArray,
|
|
182
221
|
};
|
|
183
222
|
};
|
|
184
223
|
export const saveToConfig = async ({ publisher, app, release, }) => {
|
|
185
|
-
const currentConfig = await
|
|
224
|
+
const currentConfig = await getConfigWithChecks();
|
|
186
225
|
delete currentConfig.publisher.icon;
|
|
187
226
|
delete currentConfig.app.icon;
|
|
188
227
|
const newConfig = {
|
package/lib/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../src/commands/create/app.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EAGR,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../src/commands/create/app.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EAGR,MAAM,iBAAiB,CAAC;AAkDzB,KAAK,qBAAqB,GAAG;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,gBAAgB,mDAK1B,qBAAqB;;EAqBvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../../../src/commands/create/publisher.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EAER,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../../../src/commands/create/publisher.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EAER,MAAM,iBAAiB,CAAC;AA+CzB,eAAO,MAAM,sBAAsB;YAKzB,OAAO;SACV,MAAM;YACH,OAAO;;;EAmBhB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../../src/commands/create/release.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,OAAO,EAGR,MAAM,iBAAiB,CAAC;AASzB,KAAK,yBAAyB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../../src/commands/create/release.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,OAAO,EAGR,MAAM,iBAAiB,CAAC;AASzB,KAAK,yBAAyB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAkDF,eAAO,MAAM,oBAAoB,6DAM9B,yBAAyB;;cAuB3B,CAAC"}
|
package/lib/types/utils.d.ts
CHANGED
|
@@ -12,12 +12,12 @@ export declare const debug: debugModule.Debugger;
|
|
|
12
12
|
export declare const checkForSelfUpdate: () => Promise<void>;
|
|
13
13
|
export declare const checkMintedStatus: (conn: Connection, pubAddr: string, appAddr: string, releaseAddr: string) => Promise<void>;
|
|
14
14
|
export declare const parseKeypair: (pathToKeypairFile: string) => Keypair | undefined;
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const getConfigWithChecks: (buildToolsDir?: string | null) => Promise<CLIConfig>;
|
|
16
16
|
export declare const isDevnet: (rpcUrl: string) => boolean;
|
|
17
17
|
export declare const isTestnet: (rpcUrl: string) => boolean;
|
|
18
18
|
export declare const checkSubmissionNetwork: (rpcUrl: string) => void;
|
|
19
19
|
export declare const generateNetworkSuffix: (rpcUrl: string) => string;
|
|
20
|
-
export declare const showMessage: (titleMessage?: string, contentMessage?: string,
|
|
20
|
+
export declare const showMessage: (titleMessage?: string, contentMessage?: string, type?: "standard" | "error" | "warning") => string;
|
|
21
21
|
type SaveToConfigArgs = {
|
|
22
22
|
publisher?: Pick<Publisher, "address">;
|
|
23
23
|
app?: Pick<App, "address">;
|
package/lib/types/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,GAAG,EAAE,SAAS,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,GAAG,EAAE,SAAS,EAAE,OAAO,EAAuB,MAAM,4CAA4C,CAAC;AAC/H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAa,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,WAAW,MAAM,OAAO,CAAC;AAKhC,OAAO,EAAwC,QAAQ,EAAkB,MAAM,yBAAyB,CAAC;AAYzG,qBAAa,SAAS;IACpB,MAAM,CAAC,WAAW,SAAW;IAC7B,MAAM,CAAC,gBAAgB,SAAiB;CACzC;AAED,eAAO,MAAM,KAAK,sBAAqB,CAAC;AAExC,eAAO,MAAM,kBAAkB,qBAU9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAgB,UAAU,WAAW,MAAM,WAAW,MAAM,eAAe,MAAM,kBAW9G,CAAC;AAEF,eAAO,MAAM,YAAY,sBAAuB,MAAM,wBAYrD,CAAC;AAYF,eAAO,MAAO,mBAAmB,mBAChB,MAAM,GAAG,IAAI,KAC3B,QAAQ,SAAS,CA6EnB,CAAC;AAiDF,eAAO,MAAM,QAAQ,WAAY,MAAM,KAAG,OAEzC,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,MAAM,KAAG,OAE1C,CAAC;AAEF,eAAO,MAAM,sBAAsB,WAAY,MAAM,SAIpD,CAAC;AAEF,eAAO,MAAM,qBAAqB,WAAY,MAAM,KAAG,MAYtD,CAAC;AAEF,eAAO,MAAM,WAAW,0DAGhB,UAAU,GAAG,OAAO,GAAG,SAAS,KACrC,MAoBF,CAAC;AA0DF,KAAK,gBAAgB,GAAG;IACtB,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,YAAY,iCAItB,gBAAgB,kBAyBlB,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAClB,UAAU,WACb,OAAO,aAoBjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solana-mobile/dapp-store-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"shx": "^0.3.4"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@solana-mobile/dapp-store-publishing-tools": "0.
|
|
39
|
+
"@solana-mobile/dapp-store-publishing-tools": "0.4.0",
|
|
40
40
|
"@solana/web3.js": "1.68.0",
|
|
41
41
|
"@types/semver": "^7.3.13",
|
|
42
42
|
"ajv": "^8.11.0",
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "@solana/web3.js";
|
|
9
9
|
|
|
10
10
|
import {
|
|
11
|
-
|
|
11
|
+
getConfigWithChecks,
|
|
12
12
|
getMetaplexInstance,
|
|
13
13
|
saveToConfig,
|
|
14
14
|
} from "../../utils.js";
|
|
@@ -38,15 +38,17 @@ const createAppNft = async (
|
|
|
38
38
|
{ metaplex, publisher }
|
|
39
39
|
);
|
|
40
40
|
|
|
41
|
-
const blockhash = await connection.
|
|
42
|
-
const tx = txBuilder.toTransaction(blockhash);
|
|
41
|
+
const blockhash = await connection.getLatestBlockhashAndContext();
|
|
42
|
+
const tx = txBuilder.toTransaction(blockhash.value);
|
|
43
43
|
tx.sign(mintAddress, publisher);
|
|
44
44
|
|
|
45
45
|
if (!dryRun) {
|
|
46
46
|
const txSig = await sendAndConfirmTransaction(connection, tx, [
|
|
47
47
|
publisher,
|
|
48
48
|
mintAddress,
|
|
49
|
-
]
|
|
49
|
+
], {
|
|
50
|
+
minContextSlot: blockhash.context.slot
|
|
51
|
+
});
|
|
50
52
|
console.info({ txSig, mintAddress: mintAddress.publicKey.toBase58() });
|
|
51
53
|
}
|
|
52
54
|
|
|
@@ -69,7 +71,7 @@ export const createAppCommand = async ({
|
|
|
69
71
|
const connection = new Connection(url);
|
|
70
72
|
|
|
71
73
|
const { app: appDetails, publisher: publisherDetails } =
|
|
72
|
-
await
|
|
74
|
+
await getConfigWithChecks();
|
|
73
75
|
|
|
74
76
|
const { appAddress } = await createAppNft(
|
|
75
77
|
{
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "@solana/web3.js";
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
|
-
|
|
10
|
+
getConfigWithChecks,
|
|
11
11
|
getMetaplexInstance,
|
|
12
12
|
saveToConfig,
|
|
13
13
|
} from "../../utils.js";
|
|
@@ -34,15 +34,17 @@ const createPublisherNft = async (
|
|
|
34
34
|
{ metaplex, publisher }
|
|
35
35
|
);
|
|
36
36
|
|
|
37
|
-
const blockhash = await connection.
|
|
38
|
-
const tx = txBuilder.toTransaction(blockhash);
|
|
37
|
+
const blockhash = await connection.getLatestBlockhashAndContext();
|
|
38
|
+
const tx = txBuilder.toTransaction(blockhash.value);
|
|
39
39
|
tx.sign(mintAddress, publisher);
|
|
40
40
|
|
|
41
41
|
if (!dryRun) {
|
|
42
42
|
const txSig = await sendAndConfirmTransaction(connection, tx, [
|
|
43
43
|
publisher,
|
|
44
44
|
mintAddress,
|
|
45
|
-
]
|
|
45
|
+
], {
|
|
46
|
+
minContextSlot: blockhash.context.slot
|
|
47
|
+
});
|
|
46
48
|
console.info({ txSig, mintAddress: mintAddress.publicKey.toBase58() });
|
|
47
49
|
}
|
|
48
50
|
|
|
@@ -60,7 +62,7 @@ export const createPublisherCommand = async ({
|
|
|
60
62
|
}) => {
|
|
61
63
|
const connection = new Connection(url);
|
|
62
64
|
|
|
63
|
-
const { publisher: publisherDetails } = await
|
|
65
|
+
const { publisher: publisherDetails } = await getConfigWithChecks();
|
|
64
66
|
|
|
65
67
|
const { publisherAddress } = await createPublisherNft(
|
|
66
68
|
{
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
import { CachedStorageDriver } from "../../upload/CachedStorageDriver.js";
|
|
14
14
|
|
|
15
15
|
import {
|
|
16
|
-
|
|
16
|
+
getConfigWithChecks,
|
|
17
17
|
getMetaplexInstance,
|
|
18
18
|
saveToConfig,
|
|
19
19
|
} from "../../utils.js";
|
|
@@ -56,14 +56,16 @@ const createReleaseNft = async ({
|
|
|
56
56
|
{ metaplex, publisher }
|
|
57
57
|
);
|
|
58
58
|
|
|
59
|
-
const blockhash = await connection.
|
|
60
|
-
const tx = txBuilder.toTransaction(blockhash);
|
|
59
|
+
const blockhash = await connection.getLatestBlockhashAndContext();
|
|
60
|
+
const tx = txBuilder.toTransaction(blockhash.value);
|
|
61
61
|
tx.sign(releaseMintAddress, publisher);
|
|
62
62
|
|
|
63
63
|
const txSig = await sendAndConfirmTransaction(connection, tx, [
|
|
64
64
|
publisher,
|
|
65
65
|
releaseMintAddress,
|
|
66
|
-
]
|
|
66
|
+
], {
|
|
67
|
+
minContextSlot: blockhash.context.slot
|
|
68
|
+
});
|
|
67
69
|
console.info({
|
|
68
70
|
txSig,
|
|
69
71
|
releaseMintAddress: releaseMintAddress.publicKey.toBase58(),
|
|
@@ -81,7 +83,7 @@ export const createReleaseCommand = async ({
|
|
|
81
83
|
}: CreateReleaseCommandInput) => {
|
|
82
84
|
const connection = new Connection(url);
|
|
83
85
|
|
|
84
|
-
const { release, app, publisher } = await
|
|
86
|
+
const { release, app, publisher } = await getConfigWithChecks(buildToolsPath);
|
|
85
87
|
|
|
86
88
|
if (!dryRun) {
|
|
87
89
|
const { releaseAddress } = await createReleaseNft({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection, Keypair } from "@solana/web3.js";
|
|
2
2
|
import type { SignWithPublisherKeypair } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
3
|
import { publishRemove } from "@solana-mobile/dapp-store-publishing-tools";
|
|
4
|
-
import { checkMintedStatus,
|
|
4
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
5
5
|
import nacl from "tweetnacl";
|
|
6
6
|
|
|
7
7
|
type PublishRemoveCommandInput = {
|
|
@@ -35,7 +35,7 @@ export const publishRemoveCommand = async ({
|
|
|
35
35
|
publisher: publisherDetails,
|
|
36
36
|
app: appDetails,
|
|
37
37
|
release: releaseDetails,
|
|
38
|
-
} = await
|
|
38
|
+
} = await getConfigWithChecks();
|
|
39
39
|
|
|
40
40
|
const sign = ((buf: Buffer) =>
|
|
41
41
|
nacl.sign(buf, signer.secretKey)) as SignWithPublisherKeypair;
|
|
@@ -2,7 +2,7 @@ import { AccountInfo, Connection, Keypair, PublicKey } from "@solana/web3.js";
|
|
|
2
2
|
import type { SignWithPublisherKeypair } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
3
|
import { publishSubmit } from "@solana-mobile/dapp-store-publishing-tools";
|
|
4
4
|
import nacl from "tweetnacl";
|
|
5
|
-
import { checkMintedStatus,
|
|
5
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
6
6
|
import { Buffer } from "buffer";
|
|
7
7
|
|
|
8
8
|
type PublishSubmitCommandInput = {
|
|
@@ -42,7 +42,7 @@ export const publishSubmitCommand = async ({
|
|
|
42
42
|
app: appDetails,
|
|
43
43
|
release: releaseDetails,
|
|
44
44
|
solana_mobile_dapp_publisher_portal: solanaMobileDappPublisherPortalDetails,
|
|
45
|
-
} = await
|
|
45
|
+
} = await getConfigWithChecks();
|
|
46
46
|
|
|
47
47
|
const sign = ((buf: Buffer) =>
|
|
48
48
|
nacl.sign(buf, signer.secretKey)) as SignWithPublisherKeypair;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection, Keypair } from "@solana/web3.js";
|
|
2
2
|
import type { SignWithPublisherKeypair } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
3
|
import { publishSupport } from "@solana-mobile/dapp-store-publishing-tools";
|
|
4
|
-
import { checkMintedStatus,
|
|
4
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
5
5
|
import nacl from "tweetnacl";
|
|
6
6
|
|
|
7
7
|
type PublishSupportCommandInput = {
|
|
@@ -35,7 +35,7 @@ export const publishSupportCommand = async ({
|
|
|
35
35
|
publisher: publisherDetails,
|
|
36
36
|
app: appDetails,
|
|
37
37
|
release: releaseDetails,
|
|
38
|
-
} = await
|
|
38
|
+
} = await getConfigWithChecks();
|
|
39
39
|
|
|
40
40
|
const sign = ((buf: Buffer) =>
|
|
41
41
|
nacl.sign(buf, signer.secretKey)) as SignWithPublisherKeypair;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection, Keypair } from "@solana/web3.js";
|
|
2
2
|
import type { SignWithPublisherKeypair } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
3
|
import { publishUpdate } from "@solana-mobile/dapp-store-publishing-tools";
|
|
4
|
-
import { checkMintedStatus,
|
|
4
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
5
5
|
import nacl from "tweetnacl";
|
|
6
6
|
|
|
7
7
|
type PublishUpdateCommandInput = {
|
|
@@ -43,7 +43,7 @@ export const publishUpdateCommand = async ({
|
|
|
43
43
|
app: appDetails,
|
|
44
44
|
release: releaseDetails,
|
|
45
45
|
solana_mobile_dapp_publisher_portal: solanaMobileDappPublisherPortalDetails,
|
|
46
|
-
} = await
|
|
46
|
+
} = await getConfigWithChecks();
|
|
47
47
|
|
|
48
48
|
const sign = ((buf: Buffer) =>
|
|
49
49
|
nacl.sign(buf, signer.secretKey)) as SignWithPublisherKeypair;
|
package/src/commands/validate.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
validateRelease,
|
|
8
8
|
metaplexFileReplacer,
|
|
9
9
|
} from "@solana-mobile/dapp-store-publishing-tools";
|
|
10
|
-
import { debug,
|
|
10
|
+
import { debug, getConfigWithChecks } from "../utils.js";
|
|
11
11
|
|
|
12
12
|
import type { Keypair } from "@solana/web3.js";
|
|
13
13
|
import type { MetaplexFile } from "@metaplex-foundation/js";
|
|
@@ -24,7 +24,7 @@ export const validateCommand = async ({
|
|
|
24
24
|
publisher: publisherDetails,
|
|
25
25
|
app: appDetails,
|
|
26
26
|
release: releaseDetails,
|
|
27
|
-
} = await
|
|
27
|
+
} = await getConfigWithChecks(buildToolsPath);
|
|
28
28
|
|
|
29
29
|
debug({ publisherDetails, appDetails, releaseDetails });
|
|
30
30
|
|
package/src/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
checkSubmissionNetwork,
|
|
13
13
|
Constants,
|
|
14
14
|
generateNetworkSuffix,
|
|
15
|
-
|
|
15
|
+
getConfigWithChecks,
|
|
16
16
|
parseKeypair,
|
|
17
17
|
showMessage
|
|
18
18
|
} from "./utils.js";
|
|
@@ -45,13 +45,24 @@ function resolveBuildToolsPath(buildToolsPath: string | undefined) {
|
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
/**
|
|
49
|
+
* This method should be updated with each new release of the CLI, and just do nothing when there isn't anything to report
|
|
50
|
+
*/
|
|
51
|
+
function latestReleaseMessage() {
|
|
52
|
+
showMessage(
|
|
53
|
+
`Publishing Tools Version ${ Constants.CLI_VERSION }`,
|
|
54
|
+
"- Bug fixes, including enforcing \`short_description\` maximum length of 50 characters.",
|
|
55
|
+
"warning"
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
|
|
48
59
|
async function tryWithErrorMessage(block: () => Promise<any>) {
|
|
49
60
|
try {
|
|
50
61
|
await block()
|
|
51
62
|
} catch (e) {
|
|
52
63
|
const errorMsg = (e as Error | null)?.message ?? "";
|
|
53
64
|
|
|
54
|
-
showMessage("Error", errorMsg,
|
|
65
|
+
showMessage("Error", errorMsg, "error");
|
|
55
66
|
}
|
|
56
67
|
}
|
|
57
68
|
|
|
@@ -59,7 +70,7 @@ async function main() {
|
|
|
59
70
|
program
|
|
60
71
|
.name("dapp-store")
|
|
61
72
|
.version(Constants.CLI_VERSION)
|
|
62
|
-
.description("CLI to assist with publishing to the Saga Dapp Store")
|
|
73
|
+
.description("CLI to assist with publishing to the Saga Dapp Store")
|
|
63
74
|
|
|
64
75
|
const initCommand = program
|
|
65
76
|
.command("init")
|
|
@@ -74,7 +85,7 @@ async function main() {
|
|
|
74
85
|
|
|
75
86
|
const createCommand = program
|
|
76
87
|
.command("create")
|
|
77
|
-
.description("Create a `publisher`, `app`, or `release`")
|
|
88
|
+
.description("Create a `publisher`, `app`, or `release`")
|
|
78
89
|
|
|
79
90
|
createCommand
|
|
80
91
|
.command("publisher")
|
|
@@ -87,6 +98,7 @@ async function main() {
|
|
|
87
98
|
.option("-d, --dry-run", "Flag for dry run. Doesn't mint an NFT")
|
|
88
99
|
.action(async ({ keypair, url, dryRun }) => {
|
|
89
100
|
tryWithErrorMessage(async () => {
|
|
101
|
+
latestReleaseMessage();
|
|
90
102
|
await checkForSelfUpdate();
|
|
91
103
|
|
|
92
104
|
const signer = parseKeypair(keypair);
|
|
@@ -116,9 +128,10 @@ async function main() {
|
|
|
116
128
|
.option("-d, --dry-run", "Flag for dry run. Doesn't mint an NFT")
|
|
117
129
|
.action(async ({ publisherMintAddress, keypair, url, dryRun }) => {
|
|
118
130
|
tryWithErrorMessage(async () => {
|
|
131
|
+
latestReleaseMessage();
|
|
119
132
|
await checkForSelfUpdate();
|
|
120
133
|
|
|
121
|
-
const config = await
|
|
134
|
+
const config = await getConfigWithChecks();
|
|
122
135
|
|
|
123
136
|
if (!hasAddressInConfig(config.publisher) && !publisherMintAddress) {
|
|
124
137
|
throw new Error("Either specify a publisher mint address in the config file or specify as a CLI argument to this command.")
|
|
@@ -160,6 +173,7 @@ async function main() {
|
|
|
160
173
|
)
|
|
161
174
|
.action(async ({ appMintAddress, keypair, url, dryRun, buildToolsPath }) => {
|
|
162
175
|
tryWithErrorMessage(async () => {
|
|
176
|
+
latestReleaseMessage();
|
|
163
177
|
await checkForSelfUpdate();
|
|
164
178
|
|
|
165
179
|
const resolvedBuildToolsPath = resolveBuildToolsPath(buildToolsPath);
|
|
@@ -167,7 +181,7 @@ async function main() {
|
|
|
167
181
|
throw new Error("Please specify an Android build tools directory in the .env file or via the command line argument.")
|
|
168
182
|
}
|
|
169
183
|
|
|
170
|
-
const config = await
|
|
184
|
+
const config = await getConfigWithChecks();
|
|
171
185
|
if (!hasAddressInConfig(config.app) && !appMintAddress) {
|
|
172
186
|
throw new Error("Either specify an app mint address in the config file or specify as a CLI argument to this command")
|
|
173
187
|
}
|
|
@@ -204,6 +218,7 @@ async function main() {
|
|
|
204
218
|
)
|
|
205
219
|
.action(async ({ keypair, buildToolsPath }) => {
|
|
206
220
|
tryWithErrorMessage(async () => {
|
|
221
|
+
latestReleaseMessage();
|
|
207
222
|
await checkForSelfUpdate();
|
|
208
223
|
|
|
209
224
|
const resolvedBuildToolsPath = resolveBuildToolsPath(buildToolsPath);
|
|
@@ -271,7 +286,7 @@ async function main() {
|
|
|
271
286
|
await checkForSelfUpdate();
|
|
272
287
|
await checkSubmissionNetwork(url);
|
|
273
288
|
|
|
274
|
-
const config = await
|
|
289
|
+
const config = await getConfigWithChecks();
|
|
275
290
|
|
|
276
291
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
277
292
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.")
|
|
@@ -342,7 +357,7 @@ async function main() {
|
|
|
342
357
|
await checkForSelfUpdate();
|
|
343
358
|
await checkSubmissionNetwork(url);
|
|
344
359
|
|
|
345
|
-
const config = await
|
|
360
|
+
const config = await getConfigWithChecks();
|
|
346
361
|
|
|
347
362
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
348
363
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.")
|
|
@@ -409,7 +424,7 @@ async function main() {
|
|
|
409
424
|
await checkForSelfUpdate();
|
|
410
425
|
await checkSubmissionNetwork(url);
|
|
411
426
|
|
|
412
|
-
const config = await
|
|
427
|
+
const config = await getConfigWithChecks();
|
|
413
428
|
|
|
414
429
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
415
430
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.")
|
|
@@ -469,7 +484,7 @@ async function main() {
|
|
|
469
484
|
await checkForSelfUpdate();
|
|
470
485
|
await checkSubmissionNetwork(url);
|
|
471
486
|
|
|
472
|
-
const config = await
|
|
487
|
+
const config = await getConfigWithChecks();
|
|
473
488
|
|
|
474
489
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
475
490
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.")
|
|
@@ -30,15 +30,17 @@ release:
|
|
|
30
30
|
uri: <<RELATIVE_PATH_TO_APK>>
|
|
31
31
|
catalog:
|
|
32
32
|
en-US:
|
|
33
|
-
name:
|
|
33
|
+
name: >-
|
|
34
34
|
<<APP_NAME>>
|
|
35
|
-
|
|
35
|
+
short_description: >-
|
|
36
|
+
<<SHORT_APP_DESCRIPTION>>
|
|
37
|
+
long_description: >-
|
|
36
38
|
<<LONG_APP_DESCRIPTION>>
|
|
37
|
-
new_in_version:
|
|
39
|
+
new_in_version: >-
|
|
38
40
|
<<WHATS_NEW_IN_THIS_VERSION>>
|
|
39
|
-
saga_features:
|
|
41
|
+
saga_features: >-
|
|
40
42
|
<<ANY_FEATURES_ONLY_AVAILBLE_WHEN_RUNNING_ON_SAGA>>
|
|
41
43
|
solana_mobile_dapp_publisher_portal:
|
|
42
44
|
google_store_package: <<ANDROID_PACKAGE_NAME_OF_GOOGLE_PLAY_STORE_VERSION_IF_DIFFERENT>>
|
|
43
|
-
testing_instructions:
|
|
45
|
+
testing_instructions: >-
|
|
44
46
|
<<TESTING_INSTRUCTIONS>>
|
|
@@ -8,6 +8,13 @@ try {
|
|
|
8
8
|
fs.writeFileSync('./src/generated/config_obj.json', Buffer.from(JSON.stringify(convertedYaml)), 'utf-8');
|
|
9
9
|
|
|
10
10
|
const schema = generateSchema.json('result', convertedYaml);
|
|
11
|
+
// CLI 0.3.0: Adding requirement for `short_description` so validation will catch
|
|
12
|
+
schema["properties"]
|
|
13
|
+
["release"]
|
|
14
|
+
["properties"]
|
|
15
|
+
["catalog"]
|
|
16
|
+
["properties"]
|
|
17
|
+
["en-US"].required = ["short_description"];
|
|
11
18
|
|
|
12
19
|
// Generator adds some keys/values we don't need & mess up validation
|
|
13
20
|
delete schema.$schema;
|