Skip to main content

Create deployment scripts

Overview

This tutorial explains how to implement the main deployment script and the script for creating Orders.

Directory

Store your scripts in the /script directory.

1. Implement the main deployment script

The main deployment script handles the following tasks:

To implement this script, use the following code:

Full code

You can find the full code on GitHub: /script/Deploy.s.sol

/script/Deploy.s.sol
contract Deploy is Script {
function run() external {
vm.startBroadcast(broadcaster);

// An optional registry reuse
Registry registry = registryAddress != address(0)
? Registry(registryAddress)
: new Registry();

new OrderFactory(
address(registry),
scheduler,
factoryOwner
);

vm.stopBroadcast();
}
}

2. Implement the script for creating Orders

This script for creating Orders handles the following tasks:

To implement this script, use the following code:

Full code

You can find the full code on GitHub: /script/CreateOrder.s.sol

/script/CreateOrder.s.sol
contract CreateOrder is Script {
function run(
uint256 thresholdPrice,
Types.PriceCondition priceCondition,
// ... other parameters
) external {
// NEW: Setup mock services
MockSlinkyPrecompile mSlinkyPrecompile = new MockSlinkyPrecompile();
MockWardenPrecompile wPrecompile = new MockWardenPrecompile();

// Create an Order through the OrderFactory contract
FACTORY.createOrder(orderData, maxKeychainFees, OrderType.Basic);
}
}

Next steps

After implementing the deployment scripts, you can finally start implementing Orders. You can choose one of the two Order types: