🏦Starknet
Escrow.cairo is a Smart Contract written in Cairo that resides in Ethereum's L2 Starknet, and is our implementation of our bridge's Escrow entity for this L2.
Project Layout
/src
: Contains source files, Cairo smart contracts./src/test
&/src/mocks
: Test files.
/target
: Autogenerated output files./scripts
: Scripts for contract deployment and interaction./
: Config files
How to Use
make deps
: Installs dependenciesmake starknet-build
: Compiles contracts.make starknet-deploy
: Deploys using script/deploy/deploy.ts
.make starknet-connect
: Connects itself to saved PaymentRegistry address.make starknet-deploy-and-connect
: Deploys and connects itself to saved PaymentRegistry address.make ethereum-and-starknet-deploy
: Deploys both smart contracts and connects them to each other.make starknet-test
: Runs local tests
How does a User set a new order?
This contract recieves User's new orders with the function:
Which recieves an Order
structure:
And returns the new order's ID.
How does a MM detect a User's new order?
When a new order is set, the following SetOrder Event is emitted, detectable by MM's:
How does a MM claim his payment?
The claim_payment
function is called, only by our Payment Registry, in order for the MM to retrieve its payment from the Escrow:
Alternatevly, the claim_payment_batch
function is called, only by our Payment Registry, in order for the MM to retrieve many payments from the Escrow at once:
Last updated