Skip to main content

static-redeploy

Use static-redeploy to redeploy any module, without any code changes. Redeploying a legacy module will store the new module in the new Pact 5 compact storage format. As a result, redeployed modules require significantly less gas to load.

Note that redeploying leaves governance unchanged.

Prerequisites​

You must have deployed the module in a namespace on at least one chain in the development, test, or main network before you can use the static-redeploy function to update the module storage. For information about deploying a module, see Deploy smart contracts.

Basic syntax​

To redeploy an existing module as a Pact 5 module, use the following syntax:

(static-redeploy module)

Arguments​

Use the following argument to specify the module you want to redeploy using the static-redeploy Pact function.

ArgumentTypeDescription
modulestringSpecifies the module to redeploy.

Return value​

The function returns the unit value () if redeployment is successful.

Examples​

The following example demonstrates how to redeploy the pistolas-vote module that was originally deployed in the free namespace on testnet04 and chain 3 using a YAML transaction request file.

code: |
(static-redeploy "free.pistolas-vote")
data:
vote:
keys: ["401d6346...114c5ae4"]
pred: "keys-all"
publicMeta:
chainId: "3"
sender: "k:401d6346...114c5ae4"
gasLimit: 100000
gasPrice: 0.0000001
ttl: 7200
networkId: "testnet04"
keyPairs:
- public: "401d6346...114c5ae4"
secret: "94df4ba5...2709fd1a"
caps:
- name: "coin.GAS"
args: []
- public: "401d6346...114c5ae4"
secret: "94df4ba5...2709fd1a"
caps: []
type: exec

After creating the YAML request, you can format and submit the transaction request to the appropriate network and chain /send endpoint. For example:

pact --apireq vote-redeploy.yaml > redeploy.json
curl -X POST -H "Content-Type: application/json" -d "@redeploy.json" \
https://api.testnet.chainweb.com/chainweb/0.0/testnet04/chain/3/pact/api/v1/send