{"type":"object","properties":{"include":{"type":"array","items":{"type":"string"},"description":"List of additional TOML files to include and merge into this fragment. Files are merged in order, with later files overriding earlier ones."},"setting":{"type":"object","additionalProperties":{"type":"object","properties":{"description":{"type":"string","description":"Description of the operation"},"type":{"type":"string","enum":["number","string","boolean"],"description":"Data type of the value being stored"},"defaultValue":{"type":"string","description":"Stored value of the setting"}},"additionalProperties":false},"description":"⚠ Deprecated in favor of var. A setting is a variable that can be set (or overriden using the CLI) when building a Cannonfile. It is accessible elsewhere in the file a property of the settings object. For example, [setting.sampleSetting] can be referenced with <%= settings.sampleSetting %>"},"pull":{"type":"object","additionalProperties":{"type":"object","properties":{"source":{"type":"string","description":"Source of the cannonfile package to import from. Can be a cannonfile operation name or package name"},"description":{"type":"string","description":"Description of the operation"},"chainId":{"type":"integer","description":"ID of the chain to import the package from"},"preset":{"type":"string","description":"Preset label of the package being imported"},"chains":{"type":"array","items":{"type":"integer"}},"depends":{"type":"array","items":{"type":"string"},"description":"List of operations that this operation depends on, which Cannon will execute first. If unspecified, Cannon automatically detects dependencies."}},"required":["source"],"additionalProperties":false},"description":"Import a package from the registry. This will make the output of that deployment, such as contract addresses, available to other operations in your Cannonfile. Imported packages must include deployments with chain ID that matches the chain ID of the network you are deploying to."},"import":{"type":"object","additionalProperties":{"$ref":"#/properties/pull/additionalProperties"},"description":"⚠ Deprecated in favor of pull. Import a package from the registry. This will make the output of that deployment, such as contract addresses, available to other operations in your Cannonfile. Imported packages must include deployments with chain ID that matches the chain ID of the network you are deploying to."},"clone":{"type":"object","additionalProperties":{"type":"object","properties":{"source":{"type":"string","description":"Name of the package to provision"},"description":{"type":"string","description":"Description of the operation"},"chainId":{"type":"integer","description":"ID of the chain to import the package from. Default - 13370"},"sourcePreset":{"type":"string","description":"⚠ Deprecated in favor of appending @PRESET_NAME to source. Override the preset to use when provisioning this package. Default - \"main\""},"target":{"type":"string","description":"Name of the package to clone"},"targetPreset":{"type":"string","description":"⚠ Deprecated in favor using target only with format packageName:version@targetPreset. Set the new preset to use for this package. Default - \"main\""},"var":{"type":"object","additionalProperties":{"type":"string"},"description":"The settings to be used when initializing this Cannonfile. Overrides any defaults preset in the source package."},"options":{"type":"object","additionalProperties":{"type":"string"},"description":"⚠ Deprecated in favor of var. The settings to be used when initializing this Cannonfile. Overrides any defaults preset in the source package."},"tags":{"type":"array","items":{"type":"string"},"description":"Additional tags to set on the registry for when this provisioned package is published."},"chains":{"type":"array","items":{"type":"integer"}},"depends":{"type":"array","items":{"type":"string"},"description":"List of operations that this operation depends on, which Cannon will execute first. If unspecified, Cannon automatically detects dependencies."}},"required":["source"],"additionalProperties":false},"description":"Deploy a new instance of a package from the registry. Packages may only be provisioned if they include a local, Cannon deployment (Chain ID: 13370)."},"provision":{"type":"object","additionalProperties":{"$ref":"#/properties/clone/additionalProperties"},"description":"⚠ Deprecated in favor of clone. Deploy a new instance of a package from the registry. Packages may only be provisioned if they include a local, Cannon deployment (Chain ID: 13370)."},"deploy":{"type":"object","additionalProperties":{"type":"object","properties":{"artifact":{"type":"string","description":"Artifact name of the target contract"},"description":{"type":"string","description":"Description of the operation"},"highlight":{"type":"boolean","description":"Determines whether contract should get priority in displays"},"create2":{"anyOf":[{"type":"boolean"},{"type":"string"}],"description":"Determines whether to deploy the contract using create2. If an address is specified, the arachnid create2 contract will be deployed/used from this address."},"ifExists":{"type":"string","enum":["continue"]},"from":{"type":"string","description":"Contract deployer address. Must match the ethereum address format"},"nonce":{"type":["string","number"],"description":"-"},"abi":{"type":"string","description":"Abi of the contract being deployed"},"abiOf":{"type":"array","items":{"type":"string"},"description":"An array of contract artifacts that have already been deployed with Cannon. This is useful when deploying proxy contracts."},"args":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","additionalProperties":{"$ref":"#/properties/deploy/additionalProperties/properties/args/items"}},{"type":"array","items":{"$ref":"#/properties/deploy/additionalProperties/properties/args/items"}}]},"description":"Constructor or initializer args"},"libraries":{"type":"object","additionalProperties":{"type":"string"},"description":"An array of contract operation names that deploy libraries this contract depends on."},"salt":{"type":"string","description":"Used to force new copy of a contract (not actually used)"},"value":{"type":"string","description":"Native currency value to send in the transaction"},"overrides":{"type":"object","properties":{"gasLimit":{"type":"string"},"simulate":{"type":"boolean"}},"additionalProperties":false,"description":"Override transaction settings"},"chains":{"type":"array","items":{"type":"integer"}},"depends":{"type":"array","items":{"type":"string"},"description":"List of operations that this operation depends on, which Cannon will execute first. If unspecified, Cannon automatically detects dependencies."}},"required":["artifact"],"additionalProperties":false},"description":"Deploy a contract."},"contract":{"type":"object","additionalProperties":{"$ref":"#/properties/deploy/additionalProperties"},"description":"⚠ Deprecated in favor of deploy. Deploy a contract."},"invoke":{"type":"object","additionalProperties":{"type":"object","properties":{"target":{"anyOf":[{"type":"string"},{"type":"array","items":{"$ref":"#/properties/invoke/additionalProperties/properties/target/anyOf/0"},"minItems":1}],"description":"Names of the contract to call or contract operation that deployed the contract to call"},"func":{"type":"string","description":"Name of the function to call on the contract"},"description":{"type":"string","description":"Description of the operation"},"abi":{"type":"string","description":"JSON file of the contract ABI. Required if the target contains an address rather than a contract operation name."},"args":{"type":"array","items":{"$ref":"#/properties/deploy/additionalProperties/properties/args/items"},"description":"Arguments to use when invoking this call."},"from":{"type":"string","description":"The calling address to use when invoking this call."},"fromCall":{"type":"object","properties":{"func":{"type":"string","description":"The name of a view function to call on this contract. The result will be used as the from input."},"args":{"type":"array","items":{"$ref":"#/properties/deploy/additionalProperties/properties/args/items"},"description":"The arguments to pass into the function being called."}},"required":["func"],"additionalProperties":false,"description":"Specify a function to use as the 'from' value in a function call. Example `owner()`."},"value":{"type":"string","description":"The amount of ether/wei to send in the transaction."},"overrides":{"type":"object","properties":{"gasLimit":{"type":"string"}},"required":["gasLimit"],"additionalProperties":false,"description":"Override transaction settings"},"var":{"type":"object","additionalProperties":{"type":"object","properties":{"event":{"type":"string","description":"Name of the event to get data for"},"arg":{"type":"integer","description":"Data argument of the event output"},"expectCount":{"type":"integer","description":"Number of matching contract events which should be seen by this event (default 1) (set to 0 to make optional)"},"allowEmptyEvents":{"type":"boolean","description":"Bypass error messages if an event is expected in the invoke operation but none are emitted in the transaction."}},"required":["event","arg"],"additionalProperties":false},"description":"Object defined to hold transaction result data in a setting. For now its limited to getting event data so it can be reused in other operations"},"extra":{"type":"object","additionalProperties":{"$ref":"#/properties/invoke/additionalProperties/properties/var/additionalProperties"},"description":"⚠ Deprecated in favor of var. Object defined to hold transaction result data in a setting. For now its limited to getting event data so it can be reused in other operations. Use `var` instead."},"factory":{"type":"object","additionalProperties":{"type":"object","properties":{"event":{"type":"string","description":"Name of the event to get data for"},"arg":{"type":"integer","description":"Data argument of the event output"},"expectCount":{"type":"integer","description":"Number of matching contract events which should be seen by this event (default 1) (set to 0 to make optional)"},"artifact":{"type":"string","description":"Name of the contract artifact"},"abiOf":{"type":"array","items":{"type":"string"},"description":"An array of contract artifacts that have already been deployed with Cannon. Used if the code for the deployed contract is not available in the artifacts."},"abi":{"type":"string","description":"Abi of the contract being deployed"},"constructorArgs":{"type":"array","items":{"$ref":"#/properties/deploy/additionalProperties/properties/args/items"},"description":"Constructor or initializer args"},"allowEmptyEvents":{"type":"boolean","description":"Bypass error messages if an event is expected in the invoke operation but none are emitted in the transaction."},"highlight":{"type":"boolean","description":"Determines whether contract should get priority in displays"}},"required":["event","arg"],"additionalProperties":false},"description":"Object defined to hold deployment transaction result data. For now its limited to getting deployment event data so it can be reused in other operations"},"chains":{"type":"array","items":{"type":"integer"},"description":"If specified, this action is only executed on the specified chain IDs."},"depends":{"type":"array","items":{"type":"string"},"description":"List of operations that this operation depends on, which Cannon will execute first. If unspecified, Cannon automatically detects dependencies."}},"required":["target","func"],"additionalProperties":false},"description":"Call a function."},"router":{"type":"object","additionalProperties":{"type":"object","properties":{"contracts":{"type":"array","items":{"type":"string"},"description":"Set of contracts that will be passed to the router"},"description":{"type":"string","description":"Description of the operation"},"includeReceive":{"type":"boolean"},"includeDiamondCompatibility":{"type":"boolean"},"from":{"type":"string","description":"Address to pass to the from call"},"salt":{"type":"string","description":"Used to force new copy of a contract (not actually used)"},"create2":{"anyOf":[{"type":"boolean"},{"type":"string"}],"description":"Determines whether to deploy the contract using create2. If an address is specified, the arachnid create2 contract will be deployed/used from this address."},"ifExists":{"type":"string","enum":["continue"],"description":"When deploying a contract with CREATE2, determines the behavior when the target contract is already deployed (ex. due to same bytecode and salt). Set to continue to allow the build to continue if the contract is found to have already been deployed. By default, an error is thrown and the action is halted."},"overrides":{"type":"object","properties":{"gasLimit":{"type":"string"}},"additionalProperties":false,"description":"Override transaction settings"},"chains":{"type":"array","items":{"type":"integer"},"description":"If specified, this action is only executed on the specified chain IDs."},"depends":{"type":"array","items":{"type":"string"},"description":"List of operations that this operation depends on, which Cannon will execute first. If unspecified, Cannon automatically detects dependencies."},"highlight":{"type":"boolean","description":"Determines whether contract should get priority in displays"}},"required":["contracts"],"additionalProperties":false},"description":"Generate a contract that proxies calls to multiple contracts using the synthetix router codegen."},"diamond":{"type":"object","additionalProperties":{"type":"object","properties":{"contracts":{"type":"array","items":{"type":"string"},"description":"Set of contracts that should be facets of the Diamond proxy"},"description":{"type":"string","description":"Description of the action"},"salt":{"type":"string","description":"Used to force new copy of a contract."},"diamondArgs":{"type":"object","properties":{"owner":{"type":"string","description":"Address has permission to change Diamond facets (ie proxied contracts to upgrade)"},"init":{"type":"string","description":"Address to DELEGATECALL on diamondCut() or constructor after the facets have been set"},"initCalldata":{"type":"string","description":"Additional data to send to the `init` DELEGATECALL"}},"required":["owner"],"additionalProperties":false},"immutable":{"type":"boolean","description":"Prevents the diamond proxy from being modified in the future. Setting this value to `true` is irreversable once deployed."},"overrides":{"type":"object","properties":{"gasLimit":{"type":"string"}},"additionalProperties":false,"description":"Override transaction settings"},"depends":{"type":"array","items":{"type":"string"},"description":"List of operations that this operation depends on, which Cannon will execute first. If unspecified, Cannon automatically detects dependencies."},"highlight":{"type":"boolean","description":"Determines whether contract should get priority in displays"}},"required":["contracts","salt","diamondArgs"],"additionalProperties":false},"description":"Generate a upgradable contract that proxies calls to multiple contracts using a ERC2535 Diamond standard."},"var":{"type":"object","additionalProperties":{"type":"object","properties":{"defaultValue":{"type":"string","description":"⚠ Deprecated in favor of var. The value to set in the setting"},"description":{"type":"string","description":"Description of the operation"},"depends":{"type":"array","items":{"type":"string"},"description":"List of operations that this operation depends on, which Cannon will execute first. If unspecified, Cannon automatically detects dependencies."}},"additionalProperties":{"type":"string"}},"description":"Apply a setting or intermediate value."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}