|
|
@@ -0,0 +1,61 @@
|
|
|
+# Scheme
|
|
|
+
|
|
|
+Let $ℙₚ$ be defined as in the section [Pallas and Vesta](../../crypto-schemes.md#pallas-and-vesta).
|
|
|
+
|
|
|
+## Deploy
|
|
|
+
|
|
|
+This function initializes a smart contract deployment.
|
|
|
+
|
|
|
+* Wallet builder: `src/contract/deployooor/src/client/deploy_v1.rs`
|
|
|
+* WASM VM code: `src/contract/deployooor/src/entrypoint/deploy_v1.rs`
|
|
|
+
|
|
|
+### Function Params
|
|
|
+
|
|
|
+Define the deploy params
|
|
|
+$$ \begin{aligned}
|
|
|
+ \t{Params}_\t{Deploy}.WASM &∈ \t𝔹^* \\
|
|
|
+ \t{Params}_\t{Deploy}.PK &∈ ℙₚ \\
|
|
|
+ \t{Params}_\t{Deploy}.IX &∈ 𝔹^* \\
|
|
|
+\end{aligned} $$
|
|
|
+
|
|
|
+```rust
|
|
|
+{{#include ../../../../../src/sdk/src/deploy.rs:deploy-deploy-params}}
|
|
|
+```
|
|
|
+
|
|
|
+### Contract Statement
|
|
|
+
|
|
|
+**Contract deployment status**   whether the contract is locked. If yes then fail.
|
|
|
+
|
|
|
+**WASM bincode validity**   whether the provided `WASM` bincode is valid. If no then fail.
|
|
|
+
|
|
|
+### Signatures
|
|
|
+
|
|
|
+There should be a single signature attached, which uses $\t{PK}$ as the
|
|
|
+signature public key.
|
|
|
+
|
|
|
+## Lock
|
|
|
+
|
|
|
+This function finalizes the smart contract state definition.
|
|
|
+
|
|
|
+* Wallet builder: `src/contract/deployooor/src/client/lock_v1.rs`
|
|
|
+* WASM VM code: `src/contract/deployooor/src/entrypoint/lock_v1.rs`
|
|
|
+
|
|
|
+### Function Params
|
|
|
+
|
|
|
+Define the lock params
|
|
|
+$$ \begin{aligned}
|
|
|
+ \t{Params}_\t{Lock}.PK &∈ \tℙₚ \\
|
|
|
+\end{aligned} $$
|
|
|
+
|
|
|
+```rust
|
|
|
+{{#include ../../../../../src/contract/deployooor/src/model.rs:deploy-lock-params}}
|
|
|
+```
|
|
|
+
|
|
|
+### Contract Statement
|
|
|
+
|
|
|
+**Contract deployment status**   whether the contract is already locked. If yes then fail.
|
|
|
+
|
|
|
+### Signatures
|
|
|
+
|
|
|
+There should be a single signature attached, which uses $\t{PK}$ as the
|
|
|
+signature public key.
|