For the most part, the Signata contract suite can be deployed using Remix.
It the File Explorer, for Workspaces click - connect to localhost -. .
If you've set up remixd properly on your machine and have it running in the sata-contracts-v1 repository, click Connect.
Expand the contracts folder. In this example we'll deploy the SignataIdentity.sol contract.
Opening the contract will trigger it to automatically compile. Click on the compiler option in the sidebar.
Expand Advanced Configurations and tick Enable optimization. Leave the default at 200.
The contract will automatically compile again. It should still retain a green tick icon in the sidebar.
With a successfully compiled contract, click on the Deploy sidebar option.
Set the Environment to Injected Provider - Metamask.
Make sure the address of your account is the account you're intending to use for deployment, and the network shown is also the intended network.
In this example, this contract requires a uint256 chainId specified as a constructor parameter. Set that value and click Deploy.
Your web3 wallet will ask you to sign and confirm the transaction to deploy the contract. Click Confirm if it looks good.
The contract deployment result will appear in the console at the bottom of the page.
It will also appear as a deployed contract in the left side toolbar. Expand the contract to see all the methods for interacting with the contract.
To verify the contract on Etherscan, open the contract in Etherscan (or the relevent network block explorer) and click on the Contract tab.
Click Verify and Publish.
Select Solidity (Single file) for Compiler Type, the Compiler Version used, and the License Type used and click Continue.
If you haven't enabled the Flattener plugin in Remix, enable it and choose it from the left menu. Click Flatten contracts/SignataIdentity.sol. This will copy the source code to your clipboard automatically.
Set Optimization to Yes, and paste the flattened contract code into the window. Sometimes the constructor arguments are detected properly, sometimes you have to use an ABI-encoder to generate the correct arguments. Tick I'm not a robot and click Verify and Publish.
If you see the Successfully generated ByteCode and ABI for Contract Address message then the contract is verified.
If you need the contract ABI for your dApp, you can either copy it from Etherscan or inside Remix in the Compiler section at the bottom.