@taqueria/plugin-taquito 0.0.0-pr-777-e7694ffc → 0.0.0-pr-776-817bc3bb

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/index.js CHANGED
@@ -52,10 +52,7 @@ const $806c5c6032403442$var$mapOpToContract = async (contracts, op, destination)
52
52
  // If initial storage was provided for the contract
53
53
  // then we submitted an operation to originate that contract
54
54
  if (contract.storage) {
55
- // WARNING - using side effect here.
56
- // For each iteration of reduce, results array is being modified-in-place.
57
- // TODO: Adjust to use recursion to avoid side-effect.
58
- const result = results.shift();
55
+ const result = results.pop();
59
56
  const address = result && result.metadata.operation_result.originated_contracts ? result.metadata.operation_result.originated_contracts.join(",") : "Error";
60
57
  return [
61
58
  ...retval,
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} from '@taqueria/node-sdk'\nimport originate from './originate'\n\nPlugin.create(_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 encoding: \"application/json\"\n }),\n ],\n proxy: originate\n}), process.argv)\n","import { RequestArgs, PluginResponse, TaqError, LikeAPromise, Protocol} from \"@taqueria/node-sdk/types\";\nimport { TezosToolkit, WalletOperationBatch } from '@taquito/taquito';\nimport { InMemorySigner, importKey } from '@taquito/signer';\nimport { getSandboxAccountNames, getCurrentEnvironmentConfig, getNetworkConfig, getSandboxAccountConfig, getInitialStorage, sendErr, getSandboxConfig, getDefaultAccount, sendJsonRes, sendAsyncErr } from \"@taqueria/node-sdk\";\nimport { BatchWalletOperation } from \"@taquito/taquito/dist/types/wallet/batch-operation\";\nimport { OperationContentsAndResultOrigination } from \"@taquito/rpc\";\nimport glob from 'fast-glob'\nimport {join} from 'path'\nimport {readFile} from 'fs/promises'\n\ninterface Opts extends RequestArgs.t {\n contract?: string\n}\n\ninterface ContractStorageMapping {\n filename: string,\n storage?: unknown\n}\n\ninterface OriginationResult {\n contract: string\n address: string\n destination: string\n}\n\nconst getFirstAccountAlias = (sandboxName: string, opts: Opts) => {\n const aliases = getSandboxAccountNames(opts) (sandboxName)\n return aliases.shift()\n}\n\nconst getContractAbspath = (contractFilename: string, parsedArgs: Opts) => \n join(parsedArgs.config.artifactsDir, /\\.tz$/.test(contractFilename) ? contractFilename : `${contractFilename}.tz`)\n\nconst addOrigination = (parsedArgs: Opts, batch: Promise<WalletOperationBatch>) => async (mapping: ContractStorageMapping) => {\n const contractAbspath = getContractAbspath(mapping.filename, parsedArgs)\n const contractData = await readFile(contractAbspath, \"utf-8\")\n return (await batch).withOrigination({\n code: contractData,\n storage: mapping.storage,\n \n })\n}\n\nconst getValidContracts = async (parsedArgs: Opts) => {\n const contracts = parsedArgs.contract\n ? [parsedArgs.contract]\n : (await glob(\"**/*.tz\", {cwd: parsedArgs.config.artifactsDir})) as string[]\n\n return contracts.reduce(\n (retval, filename) => {\n const storage = getInitialStorage(parsedArgs) (filename)\n if (!storage) throw(`No initial storage provided for ${filename}`)\n return [...retval, {filename, storage}]\n },\n [] as ContractStorageMapping[]\n ) \n}\n\nconst mapOpToContract = async (contracts: ContractStorageMapping[], op: BatchWalletOperation, destination: string) => {\n const results = await op.operationResults()\n\n return contracts.reduce(\n (retval, contract) => {\n\n // If initial storage was provided for the contract\n // then we submitted an operation to originate that contract\n if (contract.storage) {\n\n // WARNING - using side effect here.\n // For each iteration of reduce, results array is being modified-in-place.\n // TODO: Adjust to use recursion to avoid side-effect.\n const result = results.shift() as OperationContentsAndResultOrigination\n const address = result && result.metadata.operation_result.originated_contracts\n ? result.metadata.operation_result.originated_contracts.join(',')\n : 'Error'\n\n return [\n ...retval, {\n contract: contract.filename,\n address,\n destination\n }\n ]\n }\n\n return [\n ...retval, {\n contract: contract.filename,\n address: \"Error\",\n destination\n }\n ]\n },\n [] as OriginationResult[]\n )\n}\n\n\nconst createBatch = async (parsedArgs: Opts, tezos: TezosToolkit, destination: string) => {\n const contracts = await getValidContracts (parsedArgs) \n \n const batch = await contracts.reduce(\n (batch, contractMapping) => \n contractMapping.storage\n ? addOrigination(parsedArgs, batch) (contractMapping)\n : batch,\n Promise.resolve(tezos.wallet.batch())\n )\n \n try {\n const op = await batch.send()\n const confirmed = await op.confirmation()\n return await mapOpToContract(contracts, op, destination)\n }\n catch (err) {\n const error = (err as {message: string})\n if (error.message) sendErr(error.message)\n return undefined\n }\n}\n\nconst originateToNetworks = (parsedArgs: Opts, currentEnv: Protocol.Environment.t) =>\n currentEnv.networks\n ? currentEnv.networks.reduce(\n (retval, networkName) => {\n const network = getNetworkConfig (parsedArgs) (networkName)\n if (network) {\n if (network.rpcUrl) {\n if (network.faucet) {\n const result = (async () => {\n const tezos = new TezosToolkit(network.rpcUrl as string)\n await importKey(tezos, network.faucet.email, network.faucet.password, network.faucet.mnemonic.join(' '), network.faucet.activation_code)\n return await createBatch(parsedArgs, tezos, networkName)\n })()\n \n return [...retval, result]\n }\n else sendErr(`Network ${networkName} requires a valid faucet in config.json.`)\n }\n else sendErr(`Network \"${networkName} is missing an RPC url in config.json.\"`)\n }\n else sendErr(`The current environment is configured to use a network called '${networkName}'; however, no network of this name has been configured in .taq/config.json.`)\n \n return retval\n },\n [] as Promise<OriginationResult[]|undefined>[]\n )\n : []\n\nconst originateToSandboxes = (parsedArgs: Opts, currentEnv: Protocol.Environment.t) =>\n currentEnv.sandboxes\n ? currentEnv.sandboxes.reduce(\n (retval, sandboxName) => {\n const sandbox = getSandboxConfig (parsedArgs) (sandboxName)\n if (sandbox) {\n if (sandbox.rpcUrl) {\n let defaultAccount = getDefaultAccount(parsedArgs) (sandboxName)\n if (!defaultAccount) {\n const first = getFirstAccountAlias(sandboxName, parsedArgs)\n if (first) {\n defaultAccount = getSandboxAccountConfig(parsedArgs) (sandboxName) (first)\n sendErr(`No default account has been configured for the sandbox called ${sandboxName}. Using the account called ${first} for origination.`)\n }\n }\n if (defaultAccount) {\n const secretKey = defaultAccount.secretKey\n const result = (async () => {\n const tezos = new TezosToolkit(sandbox.rpcUrl as string)\n tezos.setProvider({\n signer: new InMemorySigner(secretKey.replace(/^unencrypted:/, '')),\n });\n return await createBatch(parsedArgs, tezos, sandboxName)\n })()\n \n return [...retval, result]\n }\n else sendErr(`No accounts are available for the sandbox called ${sandboxName} to perform origination.`)\n }\n else sendErr(`Sandbox \"${sandboxName} is missing an RPC url in config.json.\"`)\n }\n else sendErr(`The current environment is configured to use a sandbox called '${sandboxName}'; however, no sandbox of this name has been configured in .taq/config.json.`)\n\n return retval\n },\n [] as Promise<OriginationResult[]|undefined>[]\n )\n : []\n \n \n\nexport const originate = <T>(parsedArgs: Opts): LikeAPromise<PluginResponse, TaqError.t> => {\n const env = getCurrentEnvironmentConfig(parsedArgs)\n\n if (!env) {\n return sendAsyncErr(`There is no environment called ${parsedArgs.env} in your config.json.`)\n }\n\n const jobs = [\n ...originateToNetworks(parsedArgs, env),\n ...originateToSandboxes(parsedArgs, env)\n ]\n\n return Promise.all(jobs)\n .then(jobs => jobs.reduce(\n (retval, originations) => {\n return originations\n ? [...retval as OriginationResult[], ...originations]\n : retval\n },\n []\n ))\n .then(results => results && results.length > 0 ? sendJsonRes(results): sendErr(`No contracts originated.`))\n}\n\nexport default originate\n"],"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} from '@taqueria/node-sdk'\nimport originate from './originate'\n\nPlugin.create(_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 encoding: \"application/json\"\n }),\n ],\n proxy: originate\n}), process.argv)\n","import { RequestArgs, PluginResponse, TaqError, LikeAPromise, Protocol} from \"@taqueria/node-sdk/types\";\nimport { TezosToolkit, WalletOperationBatch } from '@taquito/taquito';\nimport { InMemorySigner, importKey } from '@taquito/signer';\nimport { getSandboxAccountNames, getCurrentEnvironmentConfig, getNetworkConfig, getSandboxAccountConfig, getInitialStorage, sendErr, getSandboxConfig, getDefaultAccount, sendJsonRes, sendAsyncErr } from \"@taqueria/node-sdk\";\nimport { BatchWalletOperation } from \"@taquito/taquito/dist/types/wallet/batch-operation\";\nimport { OperationContentsAndResultOrigination } from \"@taquito/rpc\";\nimport glob from 'fast-glob'\nimport {join} from 'path'\nimport {readFile} from 'fs/promises'\n\ninterface Opts extends RequestArgs.t {\n contract?: string\n}\n\ninterface ContractStorageMapping {\n filename: string,\n storage?: unknown\n}\n\ninterface OriginationResult {\n contract: string\n address: string\n destination: string\n}\n\nconst getFirstAccountAlias = (sandboxName: string, opts: Opts) => {\n const aliases = getSandboxAccountNames(opts) (sandboxName)\n return aliases.shift()\n}\n\nconst getContractAbspath = (contractFilename: string, parsedArgs: Opts) => \n join(parsedArgs.config.artifactsDir, /\\.tz$/.test(contractFilename) ? contractFilename : `${contractFilename}.tz`)\n\nconst addOrigination = (parsedArgs: Opts, batch: Promise<WalletOperationBatch>) => async (mapping: ContractStorageMapping) => {\n const contractAbspath = getContractAbspath(mapping.filename, parsedArgs)\n const contractData = await readFile(contractAbspath, \"utf-8\")\n return (await batch).withOrigination({\n code: contractData,\n storage: mapping.storage,\n \n })\n}\n\nconst getValidContracts = async (parsedArgs: Opts) => {\n const contracts = parsedArgs.contract\n ? [parsedArgs.contract]\n : (await glob(\"**/*.tz\", {cwd: parsedArgs.config.artifactsDir})) as string[]\n\n return contracts.reduce(\n (retval, filename) => {\n const storage = getInitialStorage(parsedArgs) (filename)\n if (!storage) throw(`No initial storage provided for ${filename}`)\n return [...retval, {filename, storage}]\n },\n [] as ContractStorageMapping[]\n ) \n}\n\nconst mapOpToContract = async (contracts: ContractStorageMapping[], op: BatchWalletOperation, destination: string) => {\n const results = await op.operationResults()\n\n return contracts.reduce(\n (retval, contract) => {\n\n // If initial storage was provided for the contract\n // then we submitted an operation to originate that contract\n if (contract.storage) {\n const result = results.pop() as OperationContentsAndResultOrigination\n const address = result && result.metadata.operation_result.originated_contracts\n ? result.metadata.operation_result.originated_contracts.join(',')\n : 'Error'\n\n return [\n ...retval, {\n contract: contract.filename,\n address,\n destination\n }\n ]\n }\n\n return [\n ...retval, {\n contract: contract.filename,\n address: \"Error\",\n destination\n }\n ]\n },\n [] as OriginationResult[]\n )\n}\n\n\nconst createBatch = async (parsedArgs: Opts, tezos: TezosToolkit, destination: string) => {\n const contracts = await getValidContracts (parsedArgs) \n \n const batch = await contracts.reduce(\n (batch, contractMapping) => \n contractMapping.storage\n ? addOrigination(parsedArgs, batch) (contractMapping)\n : batch,\n Promise.resolve(tezos.wallet.batch())\n )\n \n try {\n const op = await batch.send()\n const confirmed = await op.confirmation()\n return await mapOpToContract(contracts, op, destination)\n }\n catch (err) {\n const error = (err as {message: string})\n if (error.message) sendErr(error.message)\n return undefined\n }\n}\n\nconst originateToNetworks = (parsedArgs: Opts, currentEnv: Protocol.Environment.t) =>\n currentEnv.networks\n ? currentEnv.networks.reduce(\n (retval, networkName) => {\n const network = getNetworkConfig (parsedArgs) (networkName)\n if (network) {\n if (network.rpcUrl) {\n if (network.faucet) {\n const result = (async () => {\n const tezos = new TezosToolkit(network.rpcUrl as string)\n await importKey(tezos, network.faucet.email, network.faucet.password, network.faucet.mnemonic.join(' '), network.faucet.activation_code)\n return await createBatch(parsedArgs, tezos, networkName)\n })()\n \n return [...retval, result]\n }\n else sendErr(`Network ${networkName} requires a valid faucet in config.json.`)\n }\n else sendErr(`Network \"${networkName} is missing an RPC url in config.json.\"`)\n }\n else sendErr(`The current environment is configured to use a network called '${networkName}'; however, no network of this name has been configured in .taq/config.json.`)\n \n return retval\n },\n [] as Promise<OriginationResult[]|undefined>[]\n )\n : []\n\nconst originateToSandboxes = (parsedArgs: Opts, currentEnv: Protocol.Environment.t) =>\n currentEnv.sandboxes\n ? currentEnv.sandboxes.reduce(\n (retval, sandboxName) => {\n const sandbox = getSandboxConfig (parsedArgs) (sandboxName)\n if (sandbox) {\n if (sandbox.rpcUrl) {\n let defaultAccount = getDefaultAccount(parsedArgs) (sandboxName)\n if (!defaultAccount) {\n const first = getFirstAccountAlias(sandboxName, parsedArgs)\n if (first) {\n defaultAccount = getSandboxAccountConfig(parsedArgs) (sandboxName) (first)\n sendErr(`No default account has been configured for the sandbox called ${sandboxName}. Using the account called ${first} for origination.`)\n }\n }\n if (defaultAccount) {\n const secretKey = defaultAccount.secretKey\n const result = (async () => {\n const tezos = new TezosToolkit(sandbox.rpcUrl as string)\n tezos.setProvider({\n signer: new InMemorySigner(secretKey.replace(/^unencrypted:/, '')),\n });\n return await createBatch(parsedArgs, tezos, sandboxName)\n })()\n \n return [...retval, result]\n }\n else sendErr(`No accounts are available for the sandbox called ${sandboxName} to perform origination.`)\n }\n else sendErr(`Sandbox \"${sandboxName} is missing an RPC url in config.json.\"`)\n }\n else sendErr(`The current environment is configured to use a sandbox called '${sandboxName}'; however, no sandbox of this name has been configured in .taq/config.json.`)\n\n return retval\n },\n [] as Promise<OriginationResult[]|undefined>[]\n )\n : []\n \n \n\nexport const originate = <T>(parsedArgs: Opts): LikeAPromise<PluginResponse, TaqError.t> => {\n const env = getCurrentEnvironmentConfig(parsedArgs)\n\n if (!env) {\n return sendAsyncErr(`There is no environment called ${parsedArgs.env} in your config.json.`)\n }\n\n const jobs = [\n ...originateToNetworks(parsedArgs, env),\n ...originateToSandboxes(parsedArgs, env)\n ]\n\n return Promise.all(jobs)\n .then(jobs => jobs.reduce(\n (retval, originations) => {\n return originations\n ? [...retval as OriginationResult[], ...originations]\n : retval\n },\n []\n ))\n .then(results => results && results.length > 0 ? sendJsonRes(results): sendErr(`No contracts originated.`))\n}\n\nexport default originate\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"}
package/originate.ts CHANGED
@@ -65,11 +65,7 @@ const mapOpToContract = async (contracts: ContractStorageMapping[], op: BatchWal
65
65
  // If initial storage was provided for the contract
66
66
  // then we submitted an operation to originate that contract
67
67
  if (contract.storage) {
68
-
69
- // WARNING - using side effect here.
70
- // For each iteration of reduce, results array is being modified-in-place.
71
- // TODO: Adjust to use recursion to avoid side-effect.
72
- const result = results.shift() as OperationContentsAndResultOrigination
68
+ const result = results.pop() as OperationContentsAndResultOrigination
73
69
  const address = result && result.metadata.operation_result.originated_contracts
74
70
  ? result.metadata.operation_result.originated_contracts.join(',')
75
71
  : 'Error'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taqueria/plugin-taquito",
3
- "version": "0.0.0-pr-777-e7694ffc",
3
+ "version": "0.0.0-pr-776-817bc3bb",
4
4
  "description": "A taqueria plugin for originating smart contracts using Taquito",
5
5
  "targets": {
6
6
  "default": {