@prosopo/scripts 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +133 -0
  2. package/dist/cli/index.d.ts +2 -0
  3. package/dist/cli/index.d.ts.map +1 -0
  4. package/dist/cli/index.js +145 -0
  5. package/dist/cli/index.js.map +1 -0
  6. package/dist/contract/deploy/dapp.d.ts +3 -0
  7. package/dist/contract/deploy/dapp.d.ts.map +1 -0
  8. package/dist/contract/deploy/dapp.js +41 -0
  9. package/dist/contract/deploy/dapp.js.map +1 -0
  10. package/dist/contract/deploy/index.d.ts +3 -0
  11. package/dist/contract/deploy/index.d.ts.map +1 -0
  12. package/dist/contract/deploy/index.js +16 -0
  13. package/dist/contract/deploy/index.js.map +1 -0
  14. package/dist/contract/deploy/protocol.d.ts +3 -0
  15. package/dist/contract/deploy/protocol.d.ts.map +1 -0
  16. package/dist/contract/deploy/protocol.js +53 -0
  17. package/dist/contract/deploy/protocol.js.map +1 -0
  18. package/dist/contract/import.d.ts +4 -0
  19. package/dist/contract/import.d.ts.map +1 -0
  20. package/dist/contract/import.js +21 -0
  21. package/dist/contract/import.js.map +1 -0
  22. package/dist/contract/index.d.ts +3 -0
  23. package/dist/contract/index.d.ts.map +1 -0
  24. package/dist/contract/index.js +16 -0
  25. package/dist/contract/index.js.map +1 -0
  26. package/dist/index.d.ts +5 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +18 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/scripts/addCopyrightNotice.d.ts +2 -0
  31. package/dist/scripts/addCopyrightNotice.d.ts.map +1 -0
  32. package/dist/scripts/addCopyrightNotice.js +103 -0
  33. package/dist/scripts/addCopyrightNotice.js.map +1 -0
  34. package/dist/scripts/bytesToHex.d.ts +2 -0
  35. package/dist/scripts/bytesToHex.d.ts.map +1 -0
  36. package/dist/scripts/bytesToHex.js +22 -0
  37. package/dist/scripts/bytesToHex.js.map +1 -0
  38. package/dist/scripts/convertAccount.d.ts +2 -0
  39. package/dist/scripts/convertAccount.d.ts.map +1 -0
  40. package/dist/scripts/convertAccount.js +37 -0
  41. package/dist/scripts/convertAccount.js.map +1 -0
  42. package/dist/scripts/encodeDecode.d.ts +2 -0
  43. package/dist/scripts/encodeDecode.d.ts.map +1 -0
  44. package/dist/scripts/encodeDecode.js +64 -0
  45. package/dist/scripts/encodeDecode.js.map +1 -0
  46. package/dist/scripts/generateMnemonic.d.ts +2 -0
  47. package/dist/scripts/generateMnemonic.d.ts.map +1 -0
  48. package/dist/scripts/generateMnemonic.js +28 -0
  49. package/dist/scripts/generateMnemonic.js.map +1 -0
  50. package/dist/scripts/getBalance.d.ts +2 -0
  51. package/dist/scripts/getBalance.d.ts.map +1 -0
  52. package/dist/scripts/getBalance.js +15 -0
  53. package/dist/scripts/getBalance.js.map +1 -0
  54. package/dist/scripts/getBlock.d.ts +2 -0
  55. package/dist/scripts/getBlock.d.ts.map +1 -0
  56. package/dist/scripts/getBlock.js +31 -0
  57. package/dist/scripts/getBlock.js.map +1 -0
  58. package/dist/scripts/getContractInfoOf.d.ts +2 -0
  59. package/dist/scripts/getContractInfoOf.d.ts.map +1 -0
  60. package/dist/scripts/getContractInfoOf.js +52 -0
  61. package/dist/scripts/getContractInfoOf.js.map +1 -0
  62. package/dist/scripts/getExistentialDeposit.d.ts +2 -0
  63. package/dist/scripts/getExistentialDeposit.d.ts.map +1 -0
  64. package/dist/scripts/getExistentialDeposit.js +39 -0
  65. package/dist/scripts/getExistentialDeposit.js.map +1 -0
  66. package/dist/scripts/getRandomProvider.d.ts +2 -0
  67. package/dist/scripts/getRandomProvider.d.ts.map +1 -0
  68. package/dist/scripts/getRandomProvider.js +38 -0
  69. package/dist/scripts/getRandomProvider.js.map +1 -0
  70. package/dist/scripts/getStorage.d.ts +2 -0
  71. package/dist/scripts/getStorage.d.ts.map +1 -0
  72. package/dist/scripts/getStorage.js +33 -0
  73. package/dist/scripts/getStorage.js.map +1 -0
  74. package/dist/scripts/getValidators.d.ts +2 -0
  75. package/dist/scripts/getValidators.d.ts.map +1 -0
  76. package/dist/scripts/getValidators.js +31 -0
  77. package/dist/scripts/getValidators.js.map +1 -0
  78. package/dist/scripts/hash.d.ts +2 -0
  79. package/dist/scripts/hash.d.ts.map +1 -0
  80. package/dist/scripts/hash.js +55 -0
  81. package/dist/scripts/hash.js.map +1 -0
  82. package/dist/scripts/hexToBytes.d.ts +2 -0
  83. package/dist/scripts/hexToBytes.d.ts.map +1 -0
  84. package/dist/scripts/hexToBytes.js +18 -0
  85. package/dist/scripts/hexToBytes.js.map +1 -0
  86. package/dist/scripts/mnemonicFromSeed.d.ts +2 -0
  87. package/dist/scripts/mnemonicFromSeed.d.ts.map +1 -0
  88. package/dist/scripts/mnemonicFromSeed.js +30 -0
  89. package/dist/scripts/mnemonicFromSeed.js.map +1 -0
  90. package/dist/scripts/populateTxAndSign.d.ts +2 -0
  91. package/dist/scripts/populateTxAndSign.d.ts.map +1 -0
  92. package/dist/scripts/populateTxAndSign.js +65 -0
  93. package/dist/scripts/populateTxAndSign.js.map +1 -0
  94. package/dist/scripts/sendFunds.d.ts +2 -0
  95. package/dist/scripts/sendFunds.d.ts.map +1 -0
  96. package/dist/scripts/sendFunds.js +32 -0
  97. package/dist/scripts/sendFunds.js.map +1 -0
  98. package/dist/setup/dapp.d.ts +4 -0
  99. package/dist/setup/dapp.d.ts.map +1 -0
  100. package/dist/setup/dapp.js +35 -0
  101. package/dist/setup/dapp.js.map +1 -0
  102. package/dist/setup/funds.d.ts +23 -0
  103. package/dist/setup/funds.d.ts.map +1 -0
  104. package/dist/setup/funds.js +100 -0
  105. package/dist/setup/funds.js.map +1 -0
  106. package/dist/setup/index.d.ts +5 -0
  107. package/dist/setup/index.d.ts.map +1 -0
  108. package/dist/setup/index.js +18 -0
  109. package/dist/setup/index.js.map +1 -0
  110. package/dist/setup/provider.d.ts +5 -0
  111. package/dist/setup/provider.d.ts.map +1 -0
  112. package/dist/setup/provider.js +84 -0
  113. package/dist/setup/provider.js.map +1 -0
  114. package/dist/setup/setup.d.ts +2 -0
  115. package/dist/setup/setup.d.ts.map +1 -0
  116. package/dist/setup/setup.js +150 -0
  117. package/dist/setup/setup.js.map +1 -0
  118. package/dist/util/exec.d.ts +10 -0
  119. package/dist/util/exec.d.ts.map +1 -0
  120. package/dist/util/exec.js +58 -0
  121. package/dist/util/exec.js.map +1 -0
  122. package/dist/util/index.d.ts +4 -0
  123. package/dist/util/index.d.ts.map +1 -0
  124. package/dist/util/index.js +17 -0
  125. package/dist/util/index.js.map +1 -0
  126. package/dist/util/loadContractFiles.d.ts +4 -0
  127. package/dist/util/loadContractFiles.d.ts.map +1 -0
  128. package/dist/util/loadContractFiles.js +54 -0
  129. package/dist/util/loadContractFiles.js.map +1 -0
  130. package/dist/util/updateEnv.d.ts +4 -0
  131. package/dist/util/updateEnv.d.ts.map +1 -0
  132. package/dist/util/updateEnv.js +45 -0
  133. package/dist/util/updateEnv.js.map +1 -0
  134. package/env.rococo +4 -0
  135. package/package.json +56 -0
  136. package/vite.config.ts +7 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/setup/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function setup(force: boolean): Promise<void>;
2
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/setup/setup.ts"],"names":[],"mappings":"AAsGA,wBAAsB,KAAK,CAAC,KAAK,EAAE,OAAO,iBAmEzC"}
@@ -0,0 +1,150 @@
1
+ // Copyright 2021-2023 Prosopo (UK) Ltd.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ import { ArgumentTypes } from '@prosopo/types';
15
+ import { BN } from '@polkadot/util';
16
+ import { LogLevelSchema, ProsopoEnvError, getLogger, getPair } from '@prosopo/common';
17
+ import { ProviderEnvironment } from '@prosopo/env';
18
+ import { defaultConfig, getPairType, getSecret, getSs58Format } from '@prosopo/cli';
19
+ import { generateMnemonic, wrapQuery } from '@prosopo/contract';
20
+ import { getEnvFile } from '@prosopo/cli';
21
+ import { registerProvider } from './provider.js';
22
+ import { setupDapp } from './dapp.js';
23
+ import fse from 'fs-extra';
24
+ import path from 'path';
25
+ const logger = getLogger(LogLevelSchema.enum.Info, 'setup');
26
+ const __dirname = path.resolve();
27
+ // Take the root dir from the environment or assume it's the root of this package
28
+ function getRootDir() {
29
+ const rootDir = process.env.ROOT_DIR || path.resolve(__dirname, '../..');
30
+ logger.info('Root dir:', rootDir);
31
+ return rootDir;
32
+ }
33
+ function getDatasetFilePath() {
34
+ const datasetFile = process.env.PROVIDER_DATASET_FILE || path.resolve('../data/captchas.json');
35
+ logger.info('Dataset file:', datasetFile);
36
+ return datasetFile;
37
+ }
38
+ function getDefaultProvider() {
39
+ return {
40
+ url: process.env.API_PORT ? `http://localhost:${process.env.API_PORT}` : 'http://localhost:3000',
41
+ fee: 10,
42
+ payee: ArgumentTypes.Payee.dapp,
43
+ stake: Math.pow(10, 13),
44
+ datasetFile: getDatasetFilePath(),
45
+ address: process.env.PROVIDER_ADDRESS || '',
46
+ secret: getSecret(),
47
+ captchaDatasetId: '',
48
+ };
49
+ }
50
+ function getDefaultDapp() {
51
+ return {
52
+ secret: '//Eve',
53
+ contractAccount: process.env.DAPP_SITE_KEY || '',
54
+ fundAmount: Math.pow(10, 12),
55
+ };
56
+ }
57
+ async function copyEnvFile() {
58
+ try {
59
+ const rootDir = getRootDir();
60
+ // TODO move all env files to a single template location
61
+ const tplLocation = path.resolve(rootDir, './dev/scripts');
62
+ const tplEnvFile = getEnvFile(tplLocation, 'env');
63
+ const envFile = getEnvFile(tplLocation, '.env');
64
+ await fse.copy(tplEnvFile, envFile, { overwrite: false });
65
+ }
66
+ catch (err) {
67
+ logger.debug(err);
68
+ }
69
+ }
70
+ function updateEnvFileVar(source, name, value) {
71
+ const envVar = new RegExp(`.*(${name}=)(.*)`, 'g');
72
+ if (envVar.test(source)) {
73
+ return source.replace(envVar, `$1${value}`);
74
+ }
75
+ return source + `\n${name}=${value}`;
76
+ }
77
+ async function updateEnvFile(vars) {
78
+ const rootDir = getRootDir();
79
+ const envFile = getEnvFile(rootDir, '.env');
80
+ let readEnvFile = await fse.readFile(envFile, 'utf8');
81
+ for (const key in vars) {
82
+ readEnvFile = updateEnvFileVar(readEnvFile, key, vars[key]);
83
+ }
84
+ await fse.writeFile(envFile, readEnvFile);
85
+ }
86
+ async function registerDapp(env, dapp) {
87
+ await setupDapp(env, dapp);
88
+ }
89
+ export async function setup(force) {
90
+ const defaultProvider = getDefaultProvider();
91
+ const defaultDapp = getDefaultDapp();
92
+ if (defaultProvider.secret) {
93
+ const hasProviderAccount = defaultProvider.address && defaultProvider.secret;
94
+ logger.debug('ENVIRONMENT', process.env.NODE_ENV);
95
+ const [mnemonic, address] = !hasProviderAccount
96
+ ? await generateMnemonic()
97
+ : [defaultProvider.secret, defaultProvider.address];
98
+ logger.debug(`Address: ${address}`);
99
+ logger.debug(`Mnemonic: ${mnemonic}`);
100
+ logger.debug('Writing .env file...');
101
+ await copyEnvFile();
102
+ if (!process.env.DAPP_SITE_KEY) {
103
+ throw new ProsopoEnvError('DEVELOPER.DAPP_SITE_KEY_MISSING');
104
+ }
105
+ const pairType = getPairType();
106
+ const ss58Format = getSs58Format();
107
+ const secret = '//Alice';
108
+ const pair = await getPair(pairType, ss58Format, secret);
109
+ const env = new ProviderEnvironment(pair, defaultConfig());
110
+ await env.isReady();
111
+ const result = await wrapQuery(env.contractInterface.query.getDappStakeThreshold, env.contractInterface.query)();
112
+ const stakeAmount = result.rawNumber;
113
+ let fundAmount = new BN(0);
114
+ if (typeof defaultDapp.fundAmount === 'number') {
115
+ fundAmount = new BN(defaultDapp.fundAmount);
116
+ }
117
+ else {
118
+ fundAmount = defaultDapp.fundAmount;
119
+ }
120
+ defaultDapp.fundAmount = BN.max(stakeAmount, fundAmount);
121
+ defaultProvider.secret = mnemonic;
122
+ env.logger.info(`Registering provider... ${defaultProvider.address}`);
123
+ defaultProvider.pair = await getPair(pairType, ss58Format, mnemonic);
124
+ await registerProvider(env, defaultProvider, force);
125
+ defaultDapp.contractAccount = process.env.DAPP_SITE_KEY;
126
+ defaultDapp.pair = await getPair(pairType, ss58Format, defaultDapp.secret);
127
+ env.logger.info('Registering dapp...');
128
+ await registerDapp(env, defaultDapp);
129
+ if (!hasProviderAccount) {
130
+ await updateEnvFile({
131
+ PROVIDER_MNEMONIC: `"${mnemonic}"`,
132
+ PROVIDER_ADDRESS: address,
133
+ });
134
+ }
135
+ process.exit();
136
+ }
137
+ else {
138
+ console.error('no secret found in .env file');
139
+ throw new ProsopoEnvError(`GENERAL.NO_MNEMONIC_OR_SEED`);
140
+ }
141
+ }
142
+ //if main process
143
+ // if (typeof require !== 'undefined' && require.main === module) {
144
+ // console.info('Running setup as main process')
145
+ //
146
+ // setup()
147
+ // .then((r) => logger.debug('Setup done'))
148
+ // .catch((e) => console.error(e))
149
+ // }
150
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/setup/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface ExecOutput {
2
+ stdout: string;
3
+ stderr: string;
4
+ code: number | null;
5
+ }
6
+ export declare const exec: (command: string, options?: {
7
+ pipe?: boolean;
8
+ printCmd?: boolean;
9
+ }) => Promise<ExecOutput>;
10
+ //# sourceMappingURL=exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/util/exec.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,eAAO,MAAM,IAAI,YACJ,MAAM,YACL;IACN,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB,KACF,QAAQ,UAAU,CA6CpB,CAAA"}
@@ -0,0 +1,58 @@
1
+ // Copyright 2021-2023 Prosopo (UK) Ltd.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ import { spawn } from 'child_process';
15
+ import { stdin } from 'process';
16
+ export const exec = (command, options) => {
17
+ let { pipe, printCmd } = options || {};
18
+ pipe = pipe === undefined || pipe; // map undefined to true
19
+ printCmd = printCmd === undefined || printCmd; // map undefined to true
20
+ if (printCmd) {
21
+ console.log(`[exec] ${command}`);
22
+ }
23
+ const prc = spawn(command, {
24
+ shell: true,
25
+ });
26
+ if (pipe || pipe === undefined) {
27
+ prc.stdout.pipe(process.stdout);
28
+ prc.stderr.pipe(process.stderr);
29
+ }
30
+ stdin.pipe(prc.stdin);
31
+ const stdoutData = [];
32
+ const stderrData = [];
33
+ prc.stdout.on('data', (data) => {
34
+ stdoutData.push(data.toString());
35
+ });
36
+ prc.stderr.on('data', (data) => {
37
+ stderrData.push(data.toString());
38
+ });
39
+ return new Promise((resolve, reject) => {
40
+ prc.on('close', function (code) {
41
+ if (pipe || pipe === undefined) {
42
+ console.log('');
43
+ }
44
+ const output = {
45
+ stdout: stdoutData.join(''),
46
+ stderr: stderrData.join(''),
47
+ code,
48
+ };
49
+ if (code === 0) {
50
+ resolve(output);
51
+ }
52
+ else {
53
+ reject(output);
54
+ }
55
+ });
56
+ });
57
+ };
58
+ //# sourceMappingURL=exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/util/exec.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAQ/B,MAAM,CAAC,MAAM,IAAI,GAAG,CAChB,OAAe,EACf,OAGC,EACkB,EAAE;IACrB,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;IACtC,IAAI,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,CAAA,CAAC,wBAAwB;IAC1D,QAAQ,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAA,CAAC,wBAAwB;IAEtE,IAAI,QAAQ,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAA;KACnC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE;QACvB,KAAK,EAAE,IAAI;KACd,CAAC,CAAA;IAEF,IAAI,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;QAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC/B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;KAClC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAErB,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IACF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,IAAI;YAC1B,IAAI,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;gBAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;aAClB;YACD,MAAM,MAAM,GAAe;gBACvB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,IAAI;aACP,CAAA;YACD,IAAI,IAAI,KAAK,CAAC,EAAE;gBACZ,OAAO,CAAC,MAAM,CAAC,CAAA;aAClB;iBAAM;gBACH,MAAM,CAAC,MAAM,CAAC,CAAA;aACjB;QACL,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './loadContractFiles.js';
2
+ export * from './updateEnv.js';
3
+ export * from './exec.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAaA,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA"}
@@ -0,0 +1,17 @@
1
+ // Copyright 2021-2023 Prosopo (UK) Ltd.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ export * from './loadContractFiles.js';
15
+ export * from './updateEnv.js';
16
+ export * from './exec.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { Abi } from '@polkadot/api-contract';
2
+ export declare function AbiJSON(filePath: string): Promise<Abi>;
3
+ export declare function Wasm(filePath: string): Promise<Uint8Array>;
4
+ //# sourceMappingURL=loadContractFiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadContractFiles.d.ts","sourceRoot":"","sources":["../../src/util/loadContractFiles.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAM5C,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAe5D;AAED,wBAAsB,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAiBhE"}
@@ -0,0 +1,54 @@
1
+ // Copyright 2021-2023 Prosopo (UK) Ltd.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+ // TODO use the .contract file instead of the .json and .wasm files. Polkadot-JS apps is also erroring out when using
15
+ // the .wasm and .json files. The .contract file works but I don't know why.
16
+ import { Abi } from '@polkadot/api-contract';
17
+ import { hexToU8a, isWasm } from '@polkadot/util';
18
+ import fse from 'fs-extra';
19
+ import path from 'path';
20
+ const __dirname = path.resolve();
21
+ export async function AbiJSON(filePath) {
22
+ const resolvedFilePath = path.resolve(__dirname, filePath);
23
+ await fse.ensureFile(resolvedFilePath);
24
+ const fileExists = await fse.pathExists(resolvedFilePath);
25
+ if (fileExists) {
26
+ const json = JSON.parse(await fse.readFile(resolvedFilePath, {
27
+ encoding: 'utf8',
28
+ }));
29
+ return new Abi(json);
30
+ }
31
+ else {
32
+ throw new Error(`File ${filePath} does not exist`);
33
+ }
34
+ }
35
+ export async function Wasm(filePath) {
36
+ const resolvedFilePath = path.resolve(__dirname, filePath);
37
+ await fse.ensureFile(resolvedFilePath);
38
+ const fileExists = await fse.pathExists(resolvedFilePath);
39
+ if (fileExists) {
40
+ const wasm = `0x${fse.readFileSync(resolvedFilePath).toString('hex')}`;
41
+ const wasmBytes = hexToU8a(wasm);
42
+ if (isWasm(wasmBytes)) {
43
+ return wasmBytes;
44
+ }
45
+ else {
46
+ console.error(`Error loading contract wasm: ${wasm.slice(0, 10)}...`);
47
+ process.exit(1);
48
+ }
49
+ }
50
+ else {
51
+ throw new Error(`File ${filePath} does not exist`);
52
+ }
53
+ }
54
+ //# sourceMappingURL=loadContractFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadContractFiles.js","sourceRoot":"","sources":["../../src/util/loadContractFiles.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,qHAAqH;AACrH,8EAA8E;AAC9E,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;AAChC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAgB;IAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC1D,MAAM,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;IACtC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAEzD,IAAI,UAAU,EAAE;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CACnB,MAAM,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACjC,QAAQ,EAAE,MAAM;SACnB,CAAC,CACL,CAAA;QACD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;KACvB;SAAM;QACH,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,iBAAiB,CAAC,CAAA;KACrD;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,QAAgB;IACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC1D,MAAM,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;IACtC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;IACzD,IAAI,UAAU,EAAE;QACZ,MAAM,IAAI,GAAkB,KAAK,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA;QACrF,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEhC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;YACnB,OAAO,SAAS,CAAA;SACnB;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAClB;KACJ;SAAM;QACH,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,iBAAiB,CAAC,CAAA;KACrD;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Logger } from '@prosopo/common';
2
+ export declare function findEnvFiles(logger: Logger): Promise<string[]>;
3
+ export declare function updateEnvFiles(varNames: string[], varValue: string, logger: Logger): Promise<void>;
4
+ //# sourceMappingURL=updateEnv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateEnv.d.ts","sourceRoot":"","sources":["../../src/util/updateEnv.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAQxC,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,qBAchD;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAyBxF"}
@@ -0,0 +1,45 @@
1
+ import { getEnv } from '@prosopo/cli';
2
+ import { glob } from 'glob';
3
+ import dotenv from 'dotenv';
4
+ import fs from 'fs';
5
+ import path from 'path';
6
+ const __dirname = path.resolve();
7
+ export async function findEnvFiles(logger) {
8
+ const env = getEnv();
9
+ const fileName = `.env.${env}`;
10
+ // options is optional
11
+ logger.info('Searching for files');
12
+ return await glob.glob(`../../**/${fileName}`, {
13
+ ignore: [
14
+ 'node_modules/**',
15
+ 'node_modules/**',
16
+ '../../**/node_modules/**',
17
+ '../node_modules/**',
18
+ '../../node_modules/**',
19
+ ],
20
+ });
21
+ }
22
+ export async function updateEnvFiles(varNames, varValue, logger) {
23
+ const files = await findEnvFiles(logger);
24
+ logger.info('Env files found', files);
25
+ files.forEach((file) => {
26
+ let write = false;
27
+ // the following code loads a .env file, searches for the variable and replaces it
28
+ // then saves the file
29
+ const filePath = path.resolve(process.cwd(), file);
30
+ const envConfig = dotenv.parse(fs.readFileSync(filePath));
31
+ for (const varName of varNames) {
32
+ if (varName in envConfig) {
33
+ envConfig[varName] = varValue;
34
+ write = true;
35
+ }
36
+ }
37
+ if (write) {
38
+ // write the file back
39
+ fs.writeFileSync(path.resolve(__dirname, filePath), Object.keys(envConfig)
40
+ .map((k) => `${k}=${envConfig[k]}`)
41
+ .join('\n'));
42
+ }
43
+ });
44
+ }
45
+ //# sourceMappingURL=updateEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateEnv.js","sourceRoot":"","sources":["../../src/util/updateEnv.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;AAChC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAC7C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IACpB,MAAM,QAAQ,GAAG,QAAQ,GAAG,EAAE,CAAA;IAC9B,sBAAsB;IACtB,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAClC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE,EAAE;QAC3C,MAAM,EAAE;YACJ,iBAAiB;YACjB,iBAAiB;YACjB,0BAA0B;YAC1B,oBAAoB;YACpB,uBAAuB;SAC1B;KACJ,CAAC,CAAA;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAkB,EAAE,QAAgB,EAAE,MAAc;IACrF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;IACrC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnB,IAAI,KAAK,GAAG,KAAK,CAAA;QACjB,kFAAkF;QAClF,sBAAsB;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAA;QAClD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;QACzD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,IAAI,OAAO,IAAI,SAAS,EAAE;gBACtB,SAAS,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAA;gBAC7B,KAAK,GAAG,IAAI,CAAA;aACf;SACJ;QACD,IAAI,KAAK,EAAE;YACP,sBAAsB;YACtB,EAAE,CAAC,aAAa,CACZ,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,EACjC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;iBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClC,IAAI,CAAC,IAAI,CAAC,CAClB,CAAA;SACJ;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
package/env.rococo ADDED
@@ -0,0 +1,4 @@
1
+ SUBSTRATE_NODE_URL=wss://rococo-contracts-rpc.polkadot.io:443
2
+ PROTOCOL_CONTRACT_ADDRESS=5HiVWQhJrysNcFNEWf2crArKht16zrhro3FcekVWocyQjx5u
3
+ NODE_ENV=rococo
4
+ DEFAULT_ENVIRONMENT=rococo
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@prosopo/scripts",
3
+ "version": "0.1.17",
4
+ "description": "Dev scripts for working with prosopo packages",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "clean": "tsc --build --clean",
9
+ "build": "tsc --build --verbose",
10
+ "test": "NODE_OPTIONS=--max-old-space-size=4096 npx vitest --config ./vite.config.ts",
11
+ "deploy": "node dist/deploy/protocol.js",
12
+ "cli": "node dist/cli/index.js",
13
+ "setup": "node dist/cli/index.js setup",
14
+ "lint:fix": "npx eslint . --fix"
15
+ },
16
+ "author": "Prosopo Limited",
17
+ "license": "Apache-2.0",
18
+ "dependencies": {
19
+ "@polkadot/api": "10.9.1",
20
+ "@polkadot/api-contract": "10.9.1",
21
+ "@polkadot/types": "10.9.1",
22
+ "@polkadot/util-crypto": "12.3.2",
23
+ "@prosopo/api": "^0.1.17",
24
+ "@prosopo/cli": "^0.1.17",
25
+ "@prosopo/common": "^0.1.17",
26
+ "@prosopo/config": "^0.1.17",
27
+ "@prosopo/contract": "^0.1.17",
28
+ "@prosopo/database": "^0.1.17",
29
+ "@prosopo/datasets": "^0.1.17",
30
+ "@prosopo/datasets-fs": "^0.1.17",
31
+ "@prosopo/env": "^0.1.17",
32
+ "@prosopo/file-server": "^0.1.17",
33
+ "@prosopo/procaptcha": "^0.1.17",
34
+ "@prosopo/procaptcha-bundle": "^0.1.17",
35
+ "@prosopo/procaptcha-react": "^0.1.17",
36
+ "@prosopo/provider": "^0.1.17",
37
+ "@prosopo/server": "^0.1.17",
38
+ "@prosopo/types": "^0.1.17",
39
+ "@prosopo/types-database": "^0.1.17",
40
+ "@prosopo/types-env": "^0.1.17",
41
+ "@prosopo/util": "^0.1.17",
42
+ "consola": "^2.15.3",
43
+ "dotenv": "^16.0.3",
44
+ "glob": "^10.0.0",
45
+ "yargs": "^17.5.1",
46
+ "yargs-parser": "^21.0.1"
47
+ },
48
+ "devDependencies": {
49
+ "@esm-bundle/chai": "^4.3.4-fix.0",
50
+ "@web/test-runner": "^0.17.0",
51
+ "ts-node": "^10.9.1",
52
+ "tslib": "^2.5.3",
53
+ "typescript": "^4.9.5",
54
+ "vitest": "^0.34.2"
55
+ }
56
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { ViteTestConfig } from '@prosopo/config'
2
+ import { loadEnv } from '@prosopo/cli'
3
+ import path from 'path'
4
+ process.env.NODE_ENV = 'test'
5
+ loadEnv(path.resolve())
6
+
7
+ export default ViteTestConfig