TAGS

azure-asset-transfer-box

CREATED

UPDATED

STARS

INSTALL

...

REPOSITORY
GitHub Download
Please wait: Fetching readme...

b"Asset Transfer Sample for Azure Blockchain Workbench\n====================================================\n\nOverview\n---------\n\nThe asset transfer smart contract covers the scenario for buying and selling\nhigh value assets, which require an inspector and appraiser. Sellers can list\ntheir assets by instantiating an asset transfer smart contract. Buyers can make\noffers by taking an action on the smart contract, and other parties can take\nactions to inspect or appraise the asset. Once the asset is marked both\ninspected and appraised, the buyer and seller will confirm the sale again before\nthe contract is set to complete. At each point in the process, all participants\nhave visibility into the state of the contract as it is updated.\n\n![](https://raw.githubusercontent.com/caleteeter/asset-transfer/master/media/1b35fd81aa303d9030594e43d738a625.jpg)\n\nThere are four personas in this demo contract \xe2\x80\x93 the seller as the initiator, and\nthe other three personas (buyer, appraiser, and inspector) as participants. As\nindicated in the visual above, at certain stages in the contract, there are\nvarious actions which participants can take. The logic written in the smart\ncontract will modify the state accordingly based on which actions are taken.\n\n
\n\nApplication Roles\n------------------\n\n| Name | Description |\n|------------|-----------------------------------------------------------------------------------------------------|\n| Seller | A person who owns an asset and wants to sell the asset. |\n| Buyer | A person who intends to buy the asset being sold by the seller. |\n| Inspector | A person who is chosen by the buyer to be the inspector of the asset being considered for buying. |\n| Appraiser | A person who is chosen by the buyer to be the appraiser for the asset being considered for buying. |\n\n
\n\nStates\n-------\n\n| Name | Description |\n|----------------------|-------------------------------------------------------------------------------------------------------------|\n| Active | Indicates that an asset is available for being bought. |\n| Offer Placed | Indicates a buyer's intention to buy. |\n| Pending Inspection | Indicates a buyer's request to the Inspector to inspect the asset under consideration. |\n| Inspected | Indicates the Inspector's approval to buy the asset under consideration. |\n| Appraised | Indicates the Appraiser's approval to buy the asset under consideration. |\n| Notional Acceptance | Indicates that both the Inspector and the Appraiser have approved buying the asset under consideration. |\n| Seller Accepted | Indicates the owner's approval to accept the offer made by the buyer. |\n| Buyer Accepted | Indicates the buyer's approval for the owner's approval. |\n| Accepted | Indicates that both the buyer and the seller have agreed to the transfer of the asset under consideration. |\n| Terminated | Indicates owner's disapproval to continue with selling the asset under consideration. |\n\n
\n\nWorkflow Details\n----------------\n\n![](https://raw.githubusercontent.com/truffle-box/azure-asset-transfer-box/master/media/1a14a6336d8a8b1adfe5c3689ab954b2.png)\n\nThe following state transition diagram articulates the possible flows, and the\nvarious transition functions at each state. Each user is only allowed to take\ncertain actions depending on the application role. Instance roles indicate that\nonly the user with the application role assigned to the specific contract is\nable to take actions on the contract.\n\nThe happy path highlighted shows in a given asset transfer contract, an instance\nowner can place an asset up for sale, and a potential buyer can place an\noffer.\xe2\x80\xafThe two parties can negotiate and once an offer amount is agreed upon, an\ninspector and an\xe2\x80\xafappraiser\xe2\x80\xafworking for the instance buyer will\nparticipate.\xe2\x80\xafAfter their involvement, the buyer and the owner can choose to move\nforward and ultimately complete the transaction.\n\nApplication Files\n-----------------\n\n[AssetTranfer.sol](https://raw.githubusercontent.com/truffle-box/azure-asset-transfer-box/master/contracts/AssetTransfer.sol)\n"