@taqueria/plugin-taquito 0.0.8 → 0.1.2
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 +31 -2
- package/index.js +78 -59
- package/index.js.map +1 -1
- package/originate.ts +38 -32
- package/package.json +7 -4
- package/tsconfig.json +1 -1
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
|
-
|
|
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 $
|
|
2
|
-
var $
|
|
3
|
-
var $
|
|
4
|
-
var $
|
|
5
|
-
var $
|
|
6
|
-
var $
|
|
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 $
|
|
17
|
+
const $806c5c6032403442$var$getContractAbspath = (contractFilename, parsedArgs)=>$iVZbm$path.join(parsedArgs.artifactsDir, /\.tz$/.test(contractFilename) ? contractFilename : `${contractFilename}.tz`)
|
|
18
18
|
;
|
|
19
|
-
const $
|
|
19
|
+
const $806c5c6032403442$var$originateContractToSandbox = async (contractFilename, parsedArgs, storage, sandboxName, sandbox)=>{
|
|
20
20
|
try {
|
|
21
21
|
if (sandbox && sandbox.rpcUrl) {
|
|
22
|
-
const contractAbspath = $
|
|
23
|
-
const tezos = new $
|
|
24
|
-
const secretKey = $
|
|
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 $
|
|
27
|
+
signer: new $iVZbm$taquitosigner.InMemorySigner(secretKey)
|
|
28
28
|
});
|
|
29
|
-
const contractData = await $
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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 $
|
|
58
|
+
const $806c5c6032403442$var$originateContractToNetwork = async (contractFilename, parsedArgs, storage, networkName, network)=>{
|
|
59
59
|
try {
|
|
60
60
|
if (network && network.rpcUrl) {
|
|
61
|
-
const contractAbspath = $
|
|
62
|
-
const tezos = new $
|
|
61
|
+
const contractAbspath = $806c5c6032403442$var$getContractAbspath(contractFilename, parsedArgs);
|
|
62
|
+
const tezos = new $iVZbm$taquitotaquito.TezosToolkit(network.rpcUrl);
|
|
63
63
|
if (network.faucet) {
|
|
64
|
-
await $
|
|
65
|
-
const contractData = await $
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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 $
|
|
94
|
+
const $806c5c6032403442$var$getNetworkConfig = (networkName, config)=>{
|
|
95
95
|
return !config.network[networkName] ? undefined : config.network[networkName];
|
|
96
96
|
};
|
|
97
|
-
const $
|
|
97
|
+
const $806c5c6032403442$var$getSandboxConfig = (sandboxName, config)=>{
|
|
98
98
|
return !config.sandbox[sandboxName] ? undefined : config.sandbox[sandboxName];
|
|
99
99
|
};
|
|
100
|
-
const $
|
|
101
|
-
|
|
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 $
|
|
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
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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)=>$
|
|
122
|
+
const networkProcesses = !env.networks ? [] : env.networks.reduce((retval, network)=>$806c5c6032403442$var$getNetworkConfig(network, parsedArgs.config) ? [
|
|
118
123
|
...retval,
|
|
119
|
-
$
|
|
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)=>$
|
|
127
|
+
const allProcesses = !env.sandboxes ? [] : env.sandboxes.reduce((retval, sandbox)=>$806c5c6032403442$var$getSandboxConfig(sandbox, parsedArgs.config) ? [
|
|
123
128
|
...retval,
|
|
124
|
-
$
|
|
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 $
|
|
135
|
+
const $806c5c6032403442$var$originateAll = (parsedArgs)=>($parcel$interopDefault($iVZbm$fastglob))("**/*.tz", {
|
|
131
136
|
cwd: parsedArgs.artifactsDir
|
|
132
|
-
}).then((files)=>Promise.all(files.map($
|
|
137
|
+
}).then((files)=>Promise.all(files.map($806c5c6032403442$var$originateContract(parsedArgs)))
|
|
133
138
|
).then((results)=>results.flat(1)
|
|
134
139
|
)
|
|
135
140
|
;
|
|
136
|
-
const $
|
|
137
|
-
const p = parsedArgs.contract ? $
|
|
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 $
|
|
165
|
+
var $806c5c6032403442$export$2e2bcd8739ae039 = $806c5c6032403442$export$acf571c34911f824;
|
|
147
166
|
|
|
148
167
|
|
|
149
|
-
$
|
|
168
|
+
$iVZbm$taquerianodesdk.Plugin.create((i18n)=>({
|
|
150
169
|
alias: "taquito",
|
|
151
170
|
schema: "1.0",
|
|
152
171
|
version: "0.1",
|
|
153
172
|
tasks: [
|
|
154
|
-
$
|
|
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: $
|
|
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,
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
|
|
115
|
-
sandbox.accounts.default
|
|
116
|
-
sandbox.accounts[
|
|
117
|
-
|
|
118
|
-
|
|
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
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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<
|
|
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.
|
|
3
|
+
"version": "0.1.2",
|
|
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": "
|
|
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.
|
|
52
|
+
"@taqueria/node-sdk": "^0.1.1"
|
|
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": "
|
|
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. */
|