Snippets
Created by
LudvigOberg
last modified
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | (defcontract mortgage_deed_sub_contract ()
(fields
(sellers_bank :type pubkey :init nil)
(buyers_bank :type pubkey :init nil)
(land_registry :type pubkey :init nil)
(future_deed_holders :type (array pubkey) :init nil)
(future_second_hand_deed_holders :type (array pubkey) :init nil)
(current_deed_holders :type (array pubkey) :init nil)
(buyers :type (array pubkey) :init nil)
(property_owners :type (array pubkey)
(property_ID :type string :init nil)
(mortgage_deed_IDs :type string :init nil)
(deed_amounts :type integer :init nil)
(second_hand_deed_amounts :type integer :init nil)
(contract_date :type integer :init nil)
(aktnummer :type integer :init nil)
(state :type string :init nil))
(actions
(intiate ((land-registry-pk pubkey) (sellers-bank-pk pubkey) (future-deed-holders-pk pubkey) (future-second-hand-deed-holders-pk pubkey) (current-deed-holders-pk pubkey) (buyers-local-pk pubkey) (buyers-bank-local-pk pubkey))
"Invite Land registry, Sellers bank, deed holders,property_owners and buyers"
(guard
(signatures property_owners)
(eql state nil))
(locally
(invite land-registry-pk
sellers-bank-pk
future-deed-holders-pk
future-second-hand-deed-holders-pk
current-deed-holders-pk
buyers-local-pk
buyers-bank-local-pk))
(update land_registry land-registry-pk
sellers_bank sellers-bank-pk
future_deed_holders future-deed-holders-pk
future_second_hand_deed_holders future-second-hand-deed-holders-pk
current_deed_holders current-deed-holders-pk
buyers buyers-local-pk
buyers_bank buyers-bank-local-pk
state :set_deed-information)
)
(set-deed-information
((property-id string) (contract-date integer) (deed-amounts integer) (second-hand-deed-amounts integer) (mortgage-deed-ids string)
"Input property id, contract date, deed amount and aktnummer"
(guard
(signatures buyers_bank)
(eql state :set_deed-information)
(eql property_ID nil)
(eql deed_amounts nil)
(eql contract_date nil)
(eql second_hand_deed_amounts nil)
(eql mortgage_deed_IDs nil)
)
(update property_ID property-id
contract_date contract-date
deed_amounts deed-amounts
second_hand_deed_amounts second-hand-deed-amounts
mortgage_deed_ids mortgage-deed-ids
state :approve-deed-transfer)
)
(approve-deed-transfer ()
"actors approve deed transfers"
(guard
(signatures buyers_bank sellers_bank future_deed_holders current_deed_holders buyers property_owners )
(eql state :approve-deed-transfer))
(update state :land-registry-process-deed)
)
(land-registry-process-deed (
(aktnummer-local integer))
"Land registry sets deed as pending"
(guard
(signatures land_registry)
(eql aktnummer nil)
(eql state :land-registry-process-deed))
(update
aktnummer aktnummer-local
state :land-registry-set-deed-as-pending)
)
(land-registry-denies-deed ()
"Land registry denies deed"
(guard
(signatures land_registry)
(eql state :land-registry-process-deed))
(updatestate :deed-denied)
)
(land-registry-approves-deed ()
"Land registry approves deed"
(guard
(signatures land_registry)
(eql state :land-registry-set-deed-as-pending))
(update state :deed-has-been-approved)
)
))
|
Comments (0)
You can clone a snippet to your computer for local editing. Learn more.