eth_getCode returns more than 0x; on
Solana, getAccountInfo returns an executable account). In TypeScript each value comes from
@eco-incorp/sauce/deployments, by the function its table names.
The released EVM engine and Kitchen are deployed on Ethereum Sepolia, Base Sepolia and Arc
Testnet. The released Solana engine and Kitchen are deployed on devnet and testnet, with zero
execution fees: --chain solana-devnet and --chain solana-testnet. Testnet runs devnet’s
engine build, so a program compiled for either reads chain id 1399811150; solana-testnet’s
own id, 1399811151, is the SDK’s key for the chain. Engine deployment does not establish venue
deployments: the SDK’s Solana venues remain mainnet-only.
Each SDK release pins one release set: the compiler, and the engines and Kitchens its output
runs on. More than one compiler version can share an engine and Kitchen, and a release that
keeps the Kitchen keeps every Pot address:
V12 explains the pairing.
EVM chains
Pots
The Kitchen deploys an owner’s Pot under a 32-byte salt, zero unless another is chosen, atCREATE2(kitchen, keccak256(abi.encode(owner, salt)), initCodeHash), with the Pot init-code
hash:
0xe8e1f54a0a3c700fedc0e0019c5a7dc7ca08e676862db576b864e744186cd7f2
v12PredictPot(owner, salt) computes a Pot’s address, v12PotDerivation() returns the formula
and the hash, and sauce pot --owner <address> prints an owner’s Pot.
A Pot deployed with its Router fixed, deployPot(owner, salt, true), has another address
for the same owner and salt, under the same init-code hash:
CREATE2(kitchen, keccak256(abi.encode(owner, salt, true)), initCodeHash). The Kitchen’s
predictPot(owner, salt, true) returns it. The Shared Pot at a salt, deploySharedPot(salt),
is CREATE2(kitchen, keccak256(abi.encode(address(0), salt, true)), initCodeHash), and
predictSharedPot(salt) returns it.
Solana
The engine owns every Pot, and a program on Solana reads it as
ctx.self(). A Pot is the
Kitchen’s program address for the seeds "pot", the owner and the 32-byte salt.
Next steps
- Kitchen, Pot and cook: what these contracts do.
- Upgrading: moving to a new release of Sauce.
- Glossary: the words these pages use, in plain terms.
