RWA001-A - Operational Flow (Smart Contract)

As summarized by @cmooney on how RWA001-A will draw and repay 50 DAI (or 50 * 10^18) with operative smart contracts outlined below.

– Draw (anytime debt is drawn)

  1. Operator Calls RwaOutputConduit(0xb3eFb912e1cbC0B26FC17388Dd433Cecd2206C3d).pick(0xDA0FaB0700A4389F6E6679aBAb1692B4601ce9bf)

  2. Operator Calls RwaUrn(0xa3342059BcDcFA57a13b12a35eD4BBE59B873005).draw(50000000000000000000)

  3. Any MKR Holder Calls RwaOutputConduit(0xb3eFb912e1cbC0B26FC17388Dd433Cecd2206C3d).push()

– DAI held by BrokerDealer —> Exchanged to USD
– USD sent to Trust
– Time
– Trust sends USD
– USD received by BrokerDealer —> Exchanged for DAI

  • Wipe (anytime debt is paid down)
  1. Broker Dealer sends DAI(0x6B175474E89094C44Da98b954EedeAC495271d0F).transfer(RwaInputConduit(0x486C85e2bb9801d14f6A8fdb78F5108a0fd932f2), 50000000000000000000)

  2. Any MKR Holder Calls RwaInputConduit(0x486C85e2bb9801d14f6A8fdb78F5108a0fd932f2).push()

  3. Anyone calls RwaUrn(0xa3342059BcDcFA57a13b12a35eD4BBE59B873005).wipe(50000000000000000000)

For clarity and the avoidance of doubt, the Broker/Dealer will be instructed that upon receipt of USD to exchange to DAI and send to 0x486C85e2bb9801d14f6A8fdb78F5108a0fd932f2.

@cmooney please confirm.


Yes, this operational flow is correct.

I think the broker dealer really just cares about the last note you made, which is that they will send DAI to 0x486C85e2bb9801d14f6A8fdb78F5108a0fd932f2 so that anyone can repay the position.

The only thing that will change with this flow is the pick() call. Once governance has the broker-dealer’s address, they can add it to the output conduit such that the pick() will happen on that address prior to the draw().