port the types from the go implementation in cosmos to rust
decl_module for bid_cancel, commitment_start and commitment_finalize
use let sender = ensure_signed(origin)? for bid_cancel and commitment_start, since those need to be invoked by respecitvely the demand (advertiser) and supply (publisher)
use on_finalise to do cleanup, i.e. timed out commitments
everything should emit an event, so decl_event for each one
the substrate storage should make our job pretty straight forward when it comes to storing things
Considering we already have Ethereum and Cosmos implementations here: https://github.com/AdExNetwork/adex-protocol-eth https://github.com/AdExNetwork/adex-protocol-cosmos
The next step will be a substrate implementation:
THIS BELOW IS OUTDATED; see https://github.com/adexnetwork/adex-protocol-substrate
A brief look into https://github.com/paritytech/substrate/blob/master/srml/example/src/lib.rs shows that we need to:
decl_module
forbid_cancel
,commitment_start
andcommitment_finalize
let sender = ensure_signed(origin)?
forbid_cancel
andcommitment_start
, since those need to be invoked by respecitvely the demand (advertiser) and supply (publisher)on_finalise
to do cleanup, i.e. timed out commitmentsdecl_event
for each one