@taqueria/plugin-taquito 0.0.7 → 0.1.1

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/README.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Taqueria Taquito Plugin
2
2
 
3
- This is a plugin developed for Taqueria built using TypeScript for NodeJS using the Taqueria Node SDK.
3
+ This is a plugin developed for Taqueria built using TypeScript for NodeJS using the Taqueria Node SDK
4
4
 
5
- The plugin provides an `originate` task used for originating Michelson smart contracts to a testnet or sandbox.
5
+
6
+ This is a plugin developed for Taqueria built using TypeScript for NodeJS using the Taqueria Node SDK and distributed via NPM
7
+
8
+ The Taquito plugin exposes a compile task in Taqueria which can target one, or all the Taquito contracts in the contracts folder and compile them to Michelson code output to the artifacts folder
9
+
10
+ ## Tasks
11
+
12
+ The Taquito plugin provides the following tasks to Taqueria:
13
+ - `originate`
14
+
15
+ ## Requirements
16
+
17
+ - Taqueria v0.0.6 or later
18
+ - Node.js v16 or later
19
+ - Docker v0.8.4 or later
20
+
21
+ ## Installation
22
+
23
+ The Taquito plugin is distributed as an NPM package that can be installed and uninstalled on a project from the Taqueria CLI
24
+
25
+ To install the LIGO plugin on a Taqueria project, navigate to the project folder and run:
26
+ ```shell
27
+ taq install @taqueria/plugin-taquito
28
+ ```
29
+
30
+ ## Plugin Architecture
31
+
32
+ This is a plugin developed for Taqueria built on NodeJS using the Taqueria Node SDK and distributed via NPM
33
+
34
+ For detailed usage and configuration information, view the LIGO plugin documentation on the Taqueria website [here](https://taqueria.io/docs/plugins/plugin-taquito)
package/index.js CHANGED
@@ -1,9 +1,9 @@
1
- var $4yCZ5$taquerianodesdk = require("@taqueria/node-sdk");
2
- var $4yCZ5$fastglob = require("fast-glob");
3
- var $4yCZ5$path = require("path");
4
- var $4yCZ5$taquitotaquito = require("@taquito/taquito");
5
- var $4yCZ5$fspromises = require("fs/promises");
6
- var $4yCZ5$taquitosigner = require("@taquito/signer");
1
+ var $iVZbm$taquerianodesdk = require("@taqueria/node-sdk");
2
+ var $iVZbm$fastglob = require("fast-glob");
3
+ var $iVZbm$path = require("path");
4
+ var $iVZbm$taquitotaquito = require("@taquito/taquito");
5
+ var $iVZbm$fspromises = require("fs/promises");
6
+ var $iVZbm$taquitosigner = require("@taquito/signer");
7
7
 
8
8
  function $parcel$interopDefault(a) {
9
9
  return a && a.__esModule ? a.default : a;
@@ -14,19 +14,19 @@ function $parcel$interopDefault(a) {
14
14
 
15
15
 
16
16
 
17
- const $082f1b8e2387f3d8$var$getContractAbspath = (contractFilename, parsedArgs)=>$4yCZ5$path.join(parsedArgs.artifactsDir, /\.tz$/.test(contractFilename) ? contractFilename : `${contractFilename}.tz`)
17
+ const $806c5c6032403442$var$getContractAbspath = (contractFilename, parsedArgs)=>$iVZbm$path.join(parsedArgs.artifactsDir, /\.tz$/.test(contractFilename) ? contractFilename : `${contractFilename}.tz`)
18
18
  ;
19
- const $082f1b8e2387f3d8$var$originateContractToSandbox = async (contractFilename, parsedArgs, storage, sandboxName, sandbox)=>{
19
+ const $806c5c6032403442$var$originateContractToSandbox = async (contractFilename, parsedArgs, storage, sandboxName, sandbox)=>{
20
20
  try {
21
21
  if (sandbox && sandbox.rpcUrl) {
22
- const contractAbspath = $082f1b8e2387f3d8$var$getContractAbspath(contractFilename, parsedArgs);
23
- const tezos = new $4yCZ5$taquitotaquito.TezosToolkit(sandbox.rpcUrl);
24
- const secretKey = $082f1b8e2387f3d8$var$getAccountSecretKey(sandbox);
22
+ const contractAbspath = $806c5c6032403442$var$getContractAbspath(contractFilename, parsedArgs);
23
+ const tezos = new $iVZbm$taquitotaquito.TezosToolkit(sandbox.rpcUrl);
24
+ const secretKey = $806c5c6032403442$var$getAccountSecretKey(sandbox);
25
25
  if (secretKey) {
26
26
  tezos.setProvider({
27
- signer: new $4yCZ5$taquitosigner.InMemorySigner(secretKey)
27
+ signer: new $iVZbm$taquitosigner.InMemorySigner(secretKey)
28
28
  });
29
- const contractData = await $4yCZ5$fspromises.readFile(contractAbspath, "utf-8");
29
+ const contractData = await $iVZbm$fspromises.readFile(contractAbspath, "utf-8");
30
30
  return tezos.contract.originate({
31
31
  code: contractData,
32
32
  storage: storage
@@ -37,32 +37,32 @@ const $082f1b8e2387f3d8$var$originateContractToSandbox = async (contractFilename
37
37
  })
38
38
  );
39
39
  } else return Promise.reject({
40
- status: 'failed',
41
- stdout: '',
42
- stderr: `Please configure a default account for the ${sandboxName} to be used for origination.`
40
+ errCode: "E_INVALID_SANDBOX_ACCOUNT",
41
+ errMsg: `Please configure a default account for the ${sandboxName} to be used for origination.`,
42
+ context: sandbox
43
43
  });
44
44
  }
45
45
  return Promise.reject({
46
- status: 'failed',
47
- stderr: 'The sandbox configuration is invalid and missing the RPC url',
48
- stdout: ''
46
+ errCode: "E_INVALID_SANDBOX_URL",
47
+ errMsg: 'The sandbox configuration is invalid and missing the RPC url',
48
+ context: sandbox
49
49
  });
50
50
  } catch (err) {
51
51
  return Promise.reject({
52
- status: 'failed',
53
- stdout: "",
54
- stderr: err
52
+ errCode: "E_ORIGINATE",
53
+ errMsg: "An unexpected error occured when trying to originate a contract",
54
+ previous: err
55
55
  });
56
56
  }
57
57
  };
58
- const $082f1b8e2387f3d8$var$originateContractToNetwork = async (contractFilename, parsedArgs, storage, networkName, network)=>{
58
+ const $806c5c6032403442$var$originateContractToNetwork = async (contractFilename, parsedArgs, storage, networkName, network)=>{
59
59
  try {
60
60
  if (network && network.rpcUrl) {
61
- const contractAbspath = $082f1b8e2387f3d8$var$getContractAbspath(contractFilename, parsedArgs);
62
- const tezos = new $4yCZ5$taquitotaquito.TezosToolkit(network.rpcUrl);
61
+ const contractAbspath = $806c5c6032403442$var$getContractAbspath(contractFilename, parsedArgs);
62
+ const tezos = new $iVZbm$taquitotaquito.TezosToolkit(network.rpcUrl);
63
63
  if (network.faucet) {
64
- await $4yCZ5$taquitosigner.importKey(tezos, network.faucet.email, network.faucet.password, network.faucet.mnemonic.join(' '), network.faucet.activation_code);
65
- const contractData = await $4yCZ5$fspromises.readFile(contractAbspath, "utf-8");
64
+ await $iVZbm$taquitosigner.importKey(tezos, network.faucet.email, network.faucet.password, network.faucet.mnemonic.join(' '), network.faucet.activation_code);
65
+ const contractData = await $iVZbm$fspromises.readFile(contractAbspath, "utf-8");
66
66
  return tezos.contract.originate({
67
67
  code: contractData,
68
68
  storage: storage
@@ -73,85 +73,104 @@ const $082f1b8e2387f3d8$var$originateContractToNetwork = async (contractFilename
73
73
  })
74
74
  );
75
75
  } else return Promise.reject({
76
- status: 'failed',
77
- stdout: '',
78
- stderr: `Please configure a faucet for the ${network} network to be used for origination.`
76
+ errCode: "E_INVALID_NETWORK_FAUCET",
77
+ errMsg: `Please configure a faucet for the ${network} network to be used for origination.`,
78
+ context: network
79
79
  });
80
80
  }
81
81
  return Promise.reject({
82
- status: 'failed',
83
- stderr: 'The network configuration is invalid and missing the RPC url',
84
- stdout: ''
82
+ errCode: "E_INVALID_NETWORK_URL",
83
+ errMsg: 'The network configuration is invalid and missing the RPC url',
84
+ context: network
85
85
  });
86
86
  } catch (err) {
87
87
  return Promise.reject({
88
- status: 'failed',
89
- stdout: "",
90
- stderr: err
88
+ errCode: "E_ORIGINATE",
89
+ errMsg: "An unexpected error occured when trying to originate a contract",
90
+ previous: err
91
91
  });
92
92
  }
93
93
  };
94
- const $082f1b8e2387f3d8$var$getNetworkConfig = (networkName, config)=>{
94
+ const $806c5c6032403442$var$getNetworkConfig = (networkName, config)=>{
95
95
  return !config.network[networkName] ? undefined : config.network[networkName];
96
96
  };
97
- const $082f1b8e2387f3d8$var$getSandboxConfig = (sandboxName, config)=>{
97
+ const $806c5c6032403442$var$getSandboxConfig = (sandboxName, config)=>{
98
98
  return !config.sandbox[sandboxName] ? undefined : config.sandbox[sandboxName];
99
99
  };
100
- const $082f1b8e2387f3d8$var$getAccountSecretKey = (sandbox)=>{
101
- return sandbox.accounts && sandbox.accounts.default && sandbox.accounts[sandbox.accounts.default] && sandbox.accounts[sandbox.accounts.default].keys && sandbox.accounts[sandbox.accounts.default].keys?.secretKey.replace(/unencrypted:/, '');
100
+ const $806c5c6032403442$var$getAccountSecretKey = (sandbox)=>{
101
+ if (sandbox.accounts && sandbox.accounts.default) {
102
+ const accountName = sandbox.accounts.default;
103
+ const accountDetails = sandbox.accounts[accountName];
104
+ if (accountDetails.keys) return accountDetails.keys.secretKey.replace(/unencrypted:/, '');
105
+ }
106
+ return undefined;
102
107
  };
103
- const $082f1b8e2387f3d8$var$originateContract = (parsedArgs)=>(contractFilename)=>{
108
+ const $806c5c6032403442$var$originateContract = (parsedArgs)=>(contractFilename)=>{
104
109
  // TODO: Should getting the default environment be provided by the SDK or the framework?
105
110
  const currentEnv = parsedArgs.env ? parsedArgs.env : parsedArgs.config.environment ? parsedArgs.config.environment.default : 'development';
106
111
  const env = parsedArgs.config.environment && parsedArgs.config.environment[currentEnv] ? parsedArgs.config.environment[currentEnv] : undefined;
107
112
  if (!env) return Promise.reject({
108
- status: 'failed',
109
- stderr: `No environment configured in your configuration file called ${parsedArgs.env}`,
110
- stdout: ""
113
+ errCode: "E_INVALID_ENV",
114
+ errMsg: `No environment configured in your configuration file called ${parsedArgs.env}`,
115
+ context: parsedArgs.config
111
116
  });
112
117
  if (!env.storage || !env.storage[contractFilename]) return Promise.reject({
113
- status: 'failed',
114
- stderr: `No storage configured in your configuration file for ${contractFilename}`,
115
- stdout: ""
118
+ errCode: "E_INVALID_STORAGE",
119
+ errMsg: `No storage configured in your configuration file for ${contractFilename}`,
120
+ context: env
116
121
  });
117
- const networkProcesses = !env.networks ? [] : env.networks.reduce((retval, network)=>$082f1b8e2387f3d8$var$getNetworkConfig(network, parsedArgs.config) ? [
122
+ const networkProcesses = !env.networks ? [] : env.networks.reduce((retval, network)=>$806c5c6032403442$var$getNetworkConfig(network, parsedArgs.config) ? [
118
123
  ...retval,
119
- $082f1b8e2387f3d8$var$originateContractToNetwork(contractFilename, parsedArgs, env.storage[contractFilename], network, $082f1b8e2387f3d8$var$getNetworkConfig(network, parsedArgs.config))
124
+ $806c5c6032403442$var$originateContractToNetwork(contractFilename, parsedArgs, env.storage[contractFilename], network, $806c5c6032403442$var$getNetworkConfig(network, parsedArgs.config))
120
125
  ] : retval
121
126
  , []);
122
- const allProcesses = !env.sandboxes ? [] : env.sandboxes.reduce((retval, sandbox)=>$082f1b8e2387f3d8$var$getSandboxConfig(sandbox, parsedArgs.config) ? [
127
+ const allProcesses = !env.sandboxes ? [] : env.sandboxes.reduce((retval, sandbox)=>$806c5c6032403442$var$getSandboxConfig(sandbox, parsedArgs.config) ? [
123
128
  ...retval,
124
- $082f1b8e2387f3d8$var$originateContractToSandbox(contractFilename, parsedArgs, env.storage[contractFilename], sandbox, $082f1b8e2387f3d8$var$getSandboxConfig(sandbox, parsedArgs.config))
129
+ $806c5c6032403442$var$originateContractToSandbox(contractFilename, parsedArgs, env.storage[contractFilename], sandbox, $806c5c6032403442$var$getSandboxConfig(sandbox, parsedArgs.config))
125
130
  ] : retval
126
131
  , networkProcesses);
127
132
  return Promise.all(allProcesses);
128
133
  }
129
134
  ;
130
- const $082f1b8e2387f3d8$var$originateAll = (parsedArgs)=>($parcel$interopDefault($4yCZ5$fastglob))("**/*.tz", {
135
+ const $806c5c6032403442$var$originateAll = (parsedArgs)=>($parcel$interopDefault($iVZbm$fastglob))("**/*.tz", {
131
136
  cwd: parsedArgs.artifactsDir
132
- }).then((files)=>Promise.all(files.map($082f1b8e2387f3d8$var$originateContract(parsedArgs)))
137
+ }).then((files)=>Promise.all(files.map($806c5c6032403442$var$originateContract(parsedArgs)))
133
138
  ).then((results)=>results.flat(1)
134
139
  )
135
140
  ;
136
- const $082f1b8e2387f3d8$export$acf571c34911f824 = (parsedArgs)=>{
137
- const p = parsedArgs.contract ? $082f1b8e2387f3d8$var$originateContract(parsedArgs)(parsedArgs.contract) : $082f1b8e2387f3d8$var$originateAll(parsedArgs);
141
+ const $806c5c6032403442$export$acf571c34911f824 = (parsedArgs)=>{
142
+ const p = parsedArgs.contract ? $806c5c6032403442$var$originateContract(parsedArgs)(parsedArgs.contract).then((result)=>[
143
+ result
144
+ ]
145
+ ) : $806c5c6032403442$var$originateAll(parsedArgs);
138
146
  return p.then((data)=>({
139
147
  status: 'success',
140
148
  stdout: data,
141
149
  stderr: "",
142
150
  render: 'table'
143
151
  })
152
+ ).catch((err)=>err.errCode ? Promise.resolve({
153
+ status: 'failed',
154
+ stdout: '',
155
+ stderr: err.errMsg,
156
+ previous: err
157
+ }) : Promise.resolve({
158
+ status: 'failed',
159
+ stderr: err.getMessage(),
160
+ stdout: '',
161
+ previous: err
162
+ })
144
163
  );
145
164
  };
146
- var $082f1b8e2387f3d8$export$2e2bcd8739ae039 = $082f1b8e2387f3d8$export$acf571c34911f824;
165
+ var $806c5c6032403442$export$2e2bcd8739ae039 = $806c5c6032403442$export$acf571c34911f824;
147
166
 
148
167
 
149
- $4yCZ5$taquerianodesdk.Plugin.create((i18n)=>({
168
+ $iVZbm$taquerianodesdk.Plugin.create((i18n)=>({
150
169
  alias: "taquito",
151
170
  schema: "1.0",
152
171
  version: "0.1",
153
172
  tasks: [
154
- $4yCZ5$taquerianodesdk.Task.create({
173
+ $iVZbm$taquerianodesdk.Task.create({
155
174
  task: "deploy",
156
175
  command: "deploy [contract]",
157
176
  description: "Deploy a smart contract to a particular environment",
@@ -162,7 +181,7 @@ $4yCZ5$taquerianodesdk.Plugin.create((i18n)=>({
162
181
  handler: "proxy"
163
182
  }),
164
183
  ],
165
- proxy: $082f1b8e2387f3d8$export$2e2bcd8739ae039
184
+ proxy: $806c5c6032403442$export$2e2bcd8739ae039
166
185
  })
167
186
  , process.argv);
168
187
 
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["taqueria-plugin-taquito/index.ts","taqueria-plugin-taquito/originate.ts"],"sourcesContent":["import {Plugin, Task, EconomicalProtocol} from '@taqueria/node-sdk'\nimport type { i18n} from '@taqueria/node-sdk/types'\nimport originate from './originate'\n\nPlugin.create((i18n: i18n) => ({\n alias: \"taquito\",\n schema: \"1.0\",\n version: \"0.1\",\n tasks: [\n Task.create({\n task: \"deploy\",\n command: \"deploy [contract]\",\n description: \"Deploy a smart contract to a particular environment\",\n options: [\n ],\n aliases: [\"originate\"],\n handler: \"proxy\"\n }),\n ],\n proxy: originate\n}), process.argv)\n","import { SanitizedArgs, ActionResponse, Failure, LikeAPromise, Config, NetworkConfig, SandboxConfig, ProxyAction} from \"@taqueria/node-sdk/types\";\nimport glob from 'fast-glob'\nimport {join} from 'path'\nimport { TezosToolkit } from '@taquito/taquito';\nimport {readFile} from 'fs/promises'\nimport { InMemorySigner, importKey } from '@taquito/signer';\n\ntype Opts = SanitizedArgs & Record<string, unknown>\n\nconst getContractAbspath = (contractFilename: string, parsedArgs: Opts) => \n join(parsedArgs.artifactsDir, /\\.tz$/.test(contractFilename) ? contractFilename : `${contractFilename}.tz`)\n\n\nconst originateContractToSandbox = async (contractFilename: string, parsedArgs: Opts, storage: unknown, sandboxName: string, sandbox: SandboxConfig | undefined) => {\n try {\n if (sandbox && sandbox.rpcUrl) {\n const contractAbspath = getContractAbspath(contractFilename, parsedArgs)\n const tezos = new TezosToolkit(sandbox.rpcUrl)\n const secretKey = getAccountSecretKey(sandbox)\n if (secretKey) {\n tezos.setProvider({\n signer: new InMemorySigner(secretKey),\n });\n\n const contractData = await readFile(contractAbspath, \"utf-8\")\n return tezos.contract.originate({\n code: contractData,\n storage: storage\n })\n .then(operation => ({\n contract: contractFilename,\n address: operation.contractAddress,\n destination: sandboxName\n }))\n }\n else {\n return Promise.reject({\n status: 'failed',\n stdout: '',\n stderr: `Please configure a default account for the ${sandboxName} to be used for origination.`\n })\n }\n }\n return Promise.reject({\n status: 'failed',\n stderr: 'The sandbox configuration is invalid and missing the RPC url',\n stdout: ''\n })\n }\n catch (err) {\n return Promise.reject({\n status: 'failed',\n stdout: \"\",\n stderr: err\n })\n }\n}\n\nconst originateContractToNetwork = async (contractFilename: string, parsedArgs: Opts, storage: unknown, networkName: string, network: NetworkConfig|undefined) => {\n try {\n if (network && network.rpcUrl) {\n const contractAbspath = getContractAbspath(contractFilename, parsedArgs)\n const tezos = new TezosToolkit(network.rpcUrl)\n if (network.faucet) {\n await importKey(tezos, network.faucet.email, network.faucet.password, network.faucet.mnemonic.join(' '), network.faucet.activation_code)\n\n const contractData = await readFile(contractAbspath, \"utf-8\")\n return tezos.contract.originate({\n code: contractData,\n storage: storage\n })\n .then(operation => ({\n contract: contractFilename,\n address: operation.contractAddress,\n destination: networkName\n }))\n }\n else {\n return Promise.reject({\n status: 'failed',\n stdout: '',\n stderr: `Please configure a faucet for the ${network} network to be used for origination.`\n })\n }\n }\n return Promise.reject({\n status: 'failed',\n stderr: 'The network configuration is invalid and missing the RPC url',\n stdout: ''\n })\n }\n catch (err) {\n return Promise.reject({\n status: 'failed',\n stdout: \"\",\n stderr: err\n })\n }\n}\n\nconst getNetworkConfig = (networkName: string, config: Config) => {\n return !config.network[networkName]\n ? undefined\n : config.network[networkName]\n}\n\nconst getSandboxConfig = (sandboxName: string, config: Config) => {\n return !config.sandbox[sandboxName]\n ? undefined\n : config.sandbox[sandboxName]\n}\n\nconst getAccountSecretKey = (sandbox: SandboxConfig) => {\n return sandbox.accounts && \n sandbox.accounts.default &&\n sandbox.accounts[sandbox.accounts.default] &&\n sandbox.accounts[sandbox.accounts.default].keys &&\n sandbox.accounts[sandbox.accounts.default].keys?.secretKey.replace(/unencrypted:/, '')\n \n}\n\nconst originateContract = (parsedArgs: Opts) => (contractFilename: string) : Promise<unknown[]> => {\n // TODO: Should getting the default environment be provided by the SDK or the framework?\n const currentEnv = parsedArgs.env\n ? (parsedArgs.env as string)\n : (\n parsedArgs.config.environment\n ? parsedArgs.config.environment.default\n : 'development'\n )\n const env = parsedArgs.config.environment && parsedArgs.config.environment[currentEnv]\n ? parsedArgs.config.environment[currentEnv]\n : undefined\n\n if (!env) {\n return Promise.reject({\n status: 'failed',\n stderr: `No environment configured in your configuration file called ${parsedArgs.env}`,\n stdout: \"\"\n }) \n }\n\n if (!env.storage || !env.storage[contractFilename]) {\n return Promise.reject({\n status: 'failed',\n stderr: `No storage configured in your configuration file for ${contractFilename}`,\n stdout: \"\"\n })\n }\n\n const networkProcesses = !env.networks ? [] : env.networks.reduce(\n (retval: Promise<unknown>[], network) => \n getNetworkConfig(network, parsedArgs.config)\n ? [...retval, originateContractToNetwork(contractFilename, parsedArgs, env.storage[contractFilename], network, getNetworkConfig(network, parsedArgs.config))]\n : retval,\n []\n )\n\n const allProcesses = !env.sandboxes ? [] : env.sandboxes.reduce(\n (retval: Promise<unknown>[], sandbox) => getSandboxConfig(sandbox, parsedArgs.config)\n ? [...retval, originateContractToSandbox(contractFilename, parsedArgs, env.storage[contractFilename], sandbox, getSandboxConfig(sandbox, parsedArgs.config))]\n : retval \n ,\n networkProcesses\n )\n \n return Promise.all(allProcesses)\n}\n\nconst originateAll = (parsedArgs: Opts) : Promise<unknown[]> =>\n glob(\"**/*.tz\", {cwd: parsedArgs.artifactsDir})\n .then(files => Promise.all(files.map(originateContract(parsedArgs))))\n .then(results => results.flat(1))\n\nexport const originate = <T>(parsedArgs: Opts): LikeAPromise<ActionResponse, Failure<T>> => {\n const p = parsedArgs.contract\n ? originateContract(parsedArgs) (parsedArgs.contract as string)\n : originateAll(parsedArgs)\n\n return p.then(data => ({\n status: 'success',\n stdout: data,\n stderr: \"\",\n render: 'table'\n }))\n}\n\nexport default originate"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"}
1
+ {"mappings":"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","sources":["taqueria-plugin-taquito/index.ts","taqueria-plugin-taquito/originate.ts"],"sourcesContent":["import {Plugin, Task, EconomicalProtocol} from '@taqueria/node-sdk'\nimport type { i18n} from '@taqueria/node-sdk/types'\nimport originate from './originate'\n\nPlugin.create((i18n: i18n) => ({\n alias: \"taquito\",\n schema: \"1.0\",\n version: \"0.1\",\n tasks: [\n Task.create({\n task: \"deploy\",\n command: \"deploy [contract]\",\n description: \"Deploy a smart contract to a particular environment\",\n options: [\n ],\n aliases: [\"originate\"],\n handler: \"proxy\"\n }),\n ],\n proxy: originate\n}), process.argv)\n","import { SanitizedArgs, PluginResponse, AccountDetails, Failure, LikeAPromise, Config, NetworkConfig, SandboxConfig, ProxyAction} from \"@taqueria/node-sdk/types\";\nimport glob from 'fast-glob'\nimport {join} from 'path'\nimport { TezosToolkit } from '@taquito/taquito';\nimport {readFile} from 'fs/promises'\nimport { InMemorySigner, importKey } from '@taquito/signer';\n\ntype Opts = SanitizedArgs & Record<string, unknown>\n\nconst getContractAbspath = (contractFilename: string, parsedArgs: Opts) => \n join(parsedArgs.artifactsDir, /\\.tz$/.test(contractFilename) ? contractFilename : `${contractFilename}.tz`)\n\n\nconst originateContractToSandbox = async (contractFilename: string, parsedArgs: Opts, storage: unknown, sandboxName: string, sandbox: SandboxConfig | undefined) => {\n try {\n if (sandbox && sandbox.rpcUrl) {\n const contractAbspath = getContractAbspath(contractFilename, parsedArgs)\n const tezos = new TezosToolkit(sandbox.rpcUrl)\n const secretKey = getAccountSecretKey(sandbox)\n if (secretKey) {\n tezos.setProvider({\n signer: new InMemorySigner(secretKey),\n });\n\n const contractData = await readFile(contractAbspath, \"utf-8\")\n return tezos.contract.originate({\n code: contractData,\n storage: storage\n })\n .then(operation => ({\n contract: contractFilename,\n address: operation.contractAddress,\n destination: sandboxName\n }))\n }\n else {\n return Promise.reject({\n errCode: \"E_INVALID_SANDBOX_ACCOUNT\",\n errMsg: `Please configure a default account for the ${sandboxName} to be used for origination.`,\n context: sandbox\n })\n }\n }\n return Promise.reject({\n errCode: \"E_INVALID_SANDBOX_URL\",\n errMsg: 'The sandbox configuration is invalid and missing the RPC url',\n context: sandbox\n })\n }\n catch (err) {\n return Promise.reject({\n errCode: \"E_ORIGINATE\",\n errMsg: \"An unexpected error occured when trying to originate a contract\",\n previous: err\n })\n }\n}\n\nconst originateContractToNetwork = async (contractFilename: string, parsedArgs: Opts, storage: unknown, networkName: string, network: NetworkConfig|undefined) => {\n try {\n if (network && network.rpcUrl) {\n const contractAbspath = getContractAbspath(contractFilename, parsedArgs)\n const tezos = new TezosToolkit(network.rpcUrl)\n if (network.faucet) {\n await importKey(tezos, network.faucet.email, network.faucet.password, network.faucet.mnemonic.join(' '), network.faucet.activation_code)\n\n const contractData = await readFile(contractAbspath, \"utf-8\")\n return tezos.contract.originate({\n code: contractData,\n storage: storage\n })\n .then(operation => ({\n contract: contractFilename,\n address: operation.contractAddress,\n destination: networkName\n }))\n }\n else {\n return Promise.reject({\n errCode: \"E_INVALID_NETWORK_FAUCET\",\n errMsg: `Please configure a faucet for the ${network} network to be used for origination.`,\n context: network\n })\n }\n }\n return Promise.reject({\n errCode: \"E_INVALID_NETWORK_URL\",\n errMsg: 'The network configuration is invalid and missing the RPC url',\n context: network\n })\n }\n catch (err) {\n return Promise.reject({\n errCode: \"E_ORIGINATE\",\n errMsg: \"An unexpected error occured when trying to originate a contract\",\n previous: err\n })\n }\n}\n\nconst getNetworkConfig = (networkName: string, config: Config) => {\n return !config.network[networkName]\n ? undefined\n : config.network[networkName]\n}\n\nconst getSandboxConfig = (sandboxName: string, config: Config) => {\n return !config.sandbox[sandboxName]\n ? undefined\n : config.sandbox[sandboxName]\n}\n\nconst getAccountSecretKey = (sandbox: SandboxConfig) => {\n if (sandbox.accounts && sandbox.accounts.default) {\n const accountName = (sandbox.accounts.default as string);\n const accountDetails = sandbox.accounts[accountName] as AccountDetails\n if (accountDetails.keys) return accountDetails.keys.secretKey.replace(/unencrypted:/, '')\n }\n\n return undefined \n}\n\nconst originateContract = (parsedArgs: Opts) => (contractFilename: string) : Promise<unknown[]> => {\n // TODO: Should getting the default environment be provided by the SDK or the framework?\n const currentEnv = parsedArgs.env\n ? (parsedArgs.env as string)\n : (\n parsedArgs.config.environment\n ? parsedArgs.config.environment.default\n : 'development'\n )\n const env = parsedArgs.config.environment && parsedArgs.config.environment[currentEnv]\n ? parsedArgs.config.environment[currentEnv]\n : undefined\n\n if (!env) {\n return Promise.reject({\n errCode: \"E_INVALID_ENV\",\n errMsg: `No environment configured in your configuration file called ${parsedArgs.env}`,\n context: parsedArgs.config\n }) \n }\n\n if (!env.storage || !env.storage[contractFilename]) {\n return Promise.reject({\n errCode: \"E_INVALID_STORAGE\",\n errMsg: `No storage configured in your configuration file for ${contractFilename}`,\n context: env\n })\n }\n\n const networkProcesses = !env.networks ? [] : env.networks.reduce(\n (retval: Promise<unknown>[], network) => \n getNetworkConfig(network, parsedArgs.config)\n ? [...retval, originateContractToNetwork(contractFilename, parsedArgs, env.storage[contractFilename], network, getNetworkConfig(network, parsedArgs.config))]\n : retval,\n []\n )\n\n const allProcesses = !env.sandboxes ? [] : env.sandboxes.reduce(\n (retval: Promise<unknown>[], sandbox) => getSandboxConfig(sandbox, parsedArgs.config)\n ? [...retval, originateContractToSandbox(contractFilename, parsedArgs, env.storage[contractFilename], sandbox, getSandboxConfig(sandbox, parsedArgs.config))]\n : retval \n ,\n networkProcesses\n )\n \n return Promise.all(allProcesses)\n}\n\nconst originateAll = (parsedArgs: Opts) : Promise<unknown[]> =>\n glob(\"**/*.tz\", {cwd: parsedArgs.artifactsDir})\n .then(files => Promise.all(files.map(originateContract(parsedArgs))))\n .then(results => results.flat(1))\n\nexport const originate = <T>(parsedArgs: Opts): LikeAPromise<PluginResponse, Failure<T>> => {\n const p = parsedArgs.contract\n ? originateContract(parsedArgs) (parsedArgs.contract as string)\n .then(result => [result])\n : originateAll(parsedArgs)\n\n return p.then(data => ({\n status: 'success',\n stdout: data,\n stderr: \"\",\n render: 'table'\n }))\n .catch(err => err.errCode\n ? Promise.resolve({status: 'failed', stdout: '', stderr: err.errMsg, previous: err})\n : Promise.resolve({status: 'failed', stderr: err.getMessage(), stdout: '', previous: err})\n )\n}\n\nexport default originate"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"}
package/originate.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { SanitizedArgs, ActionResponse, Failure, LikeAPromise, Config, NetworkConfig, SandboxConfig, ProxyAction} from "@taqueria/node-sdk/types";
1
+ import { SanitizedArgs, PluginResponse, AccountDetails, Failure, LikeAPromise, Config, NetworkConfig, SandboxConfig, ProxyAction} from "@taqueria/node-sdk/types";
2
2
  import glob from 'fast-glob'
3
3
  import {join} from 'path'
4
4
  import { TezosToolkit } from '@taquito/taquito';
@@ -35,23 +35,23 @@ const originateContractToSandbox = async (contractFilename: string, parsedArgs:
35
35
  }
36
36
  else {
37
37
  return Promise.reject({
38
- status: 'failed',
39
- stdout: '',
40
- stderr: `Please configure a default account for the ${sandboxName} to be used for origination.`
38
+ errCode: "E_INVALID_SANDBOX_ACCOUNT",
39
+ errMsg: `Please configure a default account for the ${sandboxName} to be used for origination.`,
40
+ context: sandbox
41
41
  })
42
42
  }
43
43
  }
44
44
  return Promise.reject({
45
- status: 'failed',
46
- stderr: 'The sandbox configuration is invalid and missing the RPC url',
47
- stdout: ''
45
+ errCode: "E_INVALID_SANDBOX_URL",
46
+ errMsg: 'The sandbox configuration is invalid and missing the RPC url',
47
+ context: sandbox
48
48
  })
49
49
  }
50
50
  catch (err) {
51
51
  return Promise.reject({
52
- status: 'failed',
53
- stdout: "",
54
- stderr: err
52
+ errCode: "E_ORIGINATE",
53
+ errMsg: "An unexpected error occured when trying to originate a contract",
54
+ previous: err
55
55
  })
56
56
  }
57
57
  }
@@ -77,23 +77,23 @@ const originateContractToNetwork = async (contractFilename: string, parsedArgs:
77
77
  }
78
78
  else {
79
79
  return Promise.reject({
80
- status: 'failed',
81
- stdout: '',
82
- stderr: `Please configure a faucet for the ${network} network to be used for origination.`
80
+ errCode: "E_INVALID_NETWORK_FAUCET",
81
+ errMsg: `Please configure a faucet for the ${network} network to be used for origination.`,
82
+ context: network
83
83
  })
84
84
  }
85
85
  }
86
86
  return Promise.reject({
87
- status: 'failed',
88
- stderr: 'The network configuration is invalid and missing the RPC url',
89
- stdout: ''
87
+ errCode: "E_INVALID_NETWORK_URL",
88
+ errMsg: 'The network configuration is invalid and missing the RPC url',
89
+ context: network
90
90
  })
91
91
  }
92
92
  catch (err) {
93
93
  return Promise.reject({
94
- status: 'failed',
95
- stdout: "",
96
- stderr: err
94
+ errCode: "E_ORIGINATE",
95
+ errMsg: "An unexpected error occured when trying to originate a contract",
96
+ previous: err
97
97
  })
98
98
  }
99
99
  }
@@ -111,12 +111,13 @@ const getSandboxConfig = (sandboxName: string, config: Config) => {
111
111
  }
112
112
 
113
113
  const getAccountSecretKey = (sandbox: SandboxConfig) => {
114
- return sandbox.accounts &&
115
- sandbox.accounts.default &&
116
- sandbox.accounts[sandbox.accounts.default] &&
117
- sandbox.accounts[sandbox.accounts.default].keys &&
118
- sandbox.accounts[sandbox.accounts.default].keys?.secretKey.replace(/unencrypted:/, '')
119
-
114
+ if (sandbox.accounts && sandbox.accounts.default) {
115
+ const accountName = (sandbox.accounts.default as string);
116
+ const accountDetails = sandbox.accounts[accountName] as AccountDetails
117
+ if (accountDetails.keys) return accountDetails.keys.secretKey.replace(/unencrypted:/, '')
118
+ }
119
+
120
+ return undefined
120
121
  }
121
122
 
122
123
  const originateContract = (parsedArgs: Opts) => (contractFilename: string) : Promise<unknown[]> => {
@@ -134,17 +135,17 @@ const originateContract = (parsedArgs: Opts) => (contractFilename: string) : Pro
134
135
 
135
136
  if (!env) {
136
137
  return Promise.reject({
137
- status: 'failed',
138
- stderr: `No environment configured in your configuration file called ${parsedArgs.env}`,
139
- stdout: ""
138
+ errCode: "E_INVALID_ENV",
139
+ errMsg: `No environment configured in your configuration file called ${parsedArgs.env}`,
140
+ context: parsedArgs.config
140
141
  })
141
142
  }
142
143
 
143
144
  if (!env.storage || !env.storage[contractFilename]) {
144
145
  return Promise.reject({
145
- status: 'failed',
146
- stderr: `No storage configured in your configuration file for ${contractFilename}`,
147
- stdout: ""
146
+ errCode: "E_INVALID_STORAGE",
147
+ errMsg: `No storage configured in your configuration file for ${contractFilename}`,
148
+ context: env
148
149
  })
149
150
  }
150
151
 
@@ -172,9 +173,10 @@ const originateAll = (parsedArgs: Opts) : Promise<unknown[]> =>
172
173
  .then(files => Promise.all(files.map(originateContract(parsedArgs))))
173
174
  .then(results => results.flat(1))
174
175
 
175
- export const originate = <T>(parsedArgs: Opts): LikeAPromise<ActionResponse, Failure<T>> => {
176
+ export const originate = <T>(parsedArgs: Opts): LikeAPromise<PluginResponse, Failure<T>> => {
176
177
  const p = parsedArgs.contract
177
178
  ? originateContract(parsedArgs) (parsedArgs.contract as string)
179
+ .then(result => [result])
178
180
  : originateAll(parsedArgs)
179
181
 
180
182
  return p.then(data => ({
@@ -183,6 +185,10 @@ export const originate = <T>(parsedArgs: Opts): LikeAPromise<ActionResponse, Fai
183
185
  stderr: "",
184
186
  render: 'table'
185
187
  }))
188
+ .catch(err => err.errCode
189
+ ? Promise.resolve({status: 'failed', stdout: '', stderr: err.errMsg, previous: err})
190
+ : Promise.resolve({status: 'failed', stderr: err.getMessage(), stdout: '', previous: err})
191
+ )
186
192
  }
187
193
 
188
194
  export default originate
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taqueria/plugin-taquito",
3
- "version": "0.0.7",
3
+ "version": "0.1.1",
4
4
  "description": "A taqueria plugin for originating smart contracts using Taquito",
5
5
  "targets": {
6
6
  "default": {
@@ -13,7 +13,7 @@
13
13
  "scripts": {
14
14
  "test": "echo \"Error: no test specified\" && exit 1",
15
15
  "pluginInfo": "npx ts-node index.ts --taqRun pluginInfo --i18n {\"foo:\"\"bar\"}",
16
- "build": "npx parcel build --no-cache",
16
+ "build": "npx parcel build --no-cache 2>&1",
17
17
  "debugPluginInfo": "node --inspect-brk index.js --taqRun pluginInfo --i18n {\"foo:\"\"bar\"}"
18
18
  },
19
19
  "keywords": [
@@ -27,6 +27,9 @@
27
27
  "taquito",
28
28
  "smart contract"
29
29
  ],
30
+ "engines": {
31
+ "node": ">=16"
32
+ },
30
33
  "author": "ECAD Labs",
31
34
  "license": "Apache-2.0",
32
35
  "repository": {
@@ -40,12 +43,12 @@
40
43
  "homepage": "https://github.com/ecadlabs/taqueria#readme",
41
44
  "devDependencies": {
42
45
  "parcel": "^2.0.1",
43
- "typescript": "^4.5.2"
46
+ "typescript": "4.5.4"
44
47
  },
45
48
  "dependencies": {
46
49
  "@taquito/signer": "^11.1.0",
47
50
  "@taquito/taquito": "^11.0.2",
48
51
  "fast-glob": "^3.2.10",
49
- "@taqueria/node-sdk": "^0.0.5"
52
+ "@taqueria/node-sdk": "^0.1.0"
50
53
  }
51
54
  }
package/tsconfig.json CHANGED
@@ -11,7 +11,7 @@
11
11
  // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
12
12
 
13
13
  /* Language and Environment */
14
- "target": "ES6", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
14
+ "target": "ES2019", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
15
15
  // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
16
16
  // "jsx": "preserve", /* Specify what JSX code is generated. */
17
17
  // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */