目錄
一、合約源碼分析:
二、合約整體流程:
? ? ? ? 1.部署合約:
????????2.添加實(shí)體
? ? ? ? 3.發(fā)送交易存證
? ? ? ? ? ?①.銀行向公司交易(公司向銀行提供交易存證)
? ? ? ? ? ?②.公司向銀行交易(銀行向公司提供交易存證)
? ? ? ? ? ?③.公司向公司交易(接收存證的公司需要給發(fā)送存證的公司提供交易存證)
一、合約源碼分析:
????????Ownable.sol: 權(quán)限控制合約,功能為:管理合約的所有者,合約所有者轉(zhuǎn)移
? ? ? ? SupplyChain.sol: 供應(yīng)鏈金融主合約,功能為:添加銀行,添加公司,銀行向公司交易,公司與公司交易,公司與銀行交易,查詢公司信息,查詢銀行信息,查詢存證信息
二、合約整體流程:
? ? ? ? 1.部署合約:
? ? ? ? ???部署此合約需要添加一個(gè)合約所有者,即監(jiān)管者,監(jiān)管者負(fù)責(zé)對(duì)銀行,公司等實(shí)體的添加。
? ? ? ? ? ?合約全方法:
????????2.添加實(shí)體
? ? ? ? ? ?添加銀行,這里的credit為銀行的存款總額,建議設(shè)為整數(shù),方便后續(xù)查詢。
? ? ? ? 添加公司,這里添加兩個(gè)公司,便于測(cè)試后面的公司之間的交易接口。
????????注意:添加銀行和公司的操作必須由監(jiān)管者完成,這也是合約中監(jiān)管者職能的體現(xiàn)
????????添加實(shí)體后,我們便可以通過合約中的getCompany、getBank等方法對(duì)公司/銀行的信息進(jìn)行查詢。
? ? ? ? 3.發(fā)送交易存證
? ? ? ? ? ?①.銀行向公司交易(公司向銀行提供交易存證)
? ? ? ? ? ? ? ? 交易存證即公司確認(rèn)收到了這筆錢,發(fā)送了交易存證,故公司為發(fā)送方(senderAddress),銀行為接收方(accepterAddress)。receiptType:為存證索引(1-存證、2-現(xiàn)金)。必須只能接受人創(chuàng)建此交易,也就是接受人承認(rèn)這筆交易存在。
????????????????
? ? ? ? ? ? ? ? 此時(shí)調(diào)用方法查詢相關(guān)交易存證以及銀行和公司目前的財(cái)務(wù)情況。
? ? ? ? ? ? ? ??
?????????????????這張圖需要解釋一下:在對(duì)于銀行的查詢中,我們看到返回了一個(gè)字符串,一個(gè)地址,一個(gè)數(shù)字,兩個(gè)數(shù)組,分別對(duì)應(yīng):銀行名字、銀行地址、銀行賬戶余額,而兩個(gè)數(shù)組一個(gè)為空,一個(gè)為1,這里的1不是receiptType,而是這筆交易的一個(gè)索引值,我們可以通過getReceipt查詢這筆交易,因此,交易的索引出現(xiàn)在了銀行的第一個(gè)數(shù)組內(nèi),數(shù)組的名稱為:acceptReceiptIndex即為銀行接受的交易,那么在getReceipt查詢返回的兩個(gè)數(shù)字中,哪個(gè)是receiptType呢?我們接著往下走。
? ? ? ? ? ? ? ? ②.公司向銀行交易(銀行向公司提供交易存證)
? ? ? ? ? ? ? ? 我們以百度在線網(wǎng)絡(luò)技術(shù)有限公司向農(nóng)業(yè)銀行發(fā)起交易為例。
????????????????
? ? ? ? ? ? ? ? 在這次交易中,我們將兩個(gè)地址的位置調(diào)換,實(shí)現(xiàn)公司向銀行交易。
????????????????
? ? ? ? ? ? ? ? 此時(shí)進(jìn)行查詢,一切都明了了,getReceipt的查詢返回的兩個(gè)數(shù)字第一個(gè)為receiptType,而另一個(gè)為交易類型,對(duì)應(yīng)了第3種交易類型:transferType: 交易類型,1: 銀行轉(zhuǎn)賬給公司,2: 公司與公司間轉(zhuǎn)賬,3: 公司轉(zhuǎn)賬給銀行
? ? ? ? ? ? ? ? ③.公司向公司交易(接收存證的公司需要給發(fā)送存證的公司提供交易存證)
????????????????我們以百度在線網(wǎng)絡(luò)技術(shù)有限公司向上海嗶哩嗶哩科技有限公司發(fā)起交易為例。
????????????????
? ? ? ? ? ? ? ? 此時(shí)對(duì)兩個(gè)公司,以及交易索引3查詢
????????????????
????????????????百度在線網(wǎng)絡(luò)技術(shù)有限公司的資金確實(shí)減少了,多了一筆索引為3的交易,查詢后我們得知,公司之間的receiptType值為2,屬于現(xiàn)金交易,而第二個(gè)2即為上文所提到的transferType,第二種類型:公司與公司間轉(zhuǎn)賬。文章來源:http://www.zghlxwxcb.cn/news/detail-740659.html
? ? ? ? 至此,合約的流程完畢,該合約提供了一個(gè)透明、高效、安全的供應(yīng)鏈金融解決方案,可以幫助企業(yè)和金融機(jī)構(gòu)更加靈活地管理資產(chǎn)。文章來源地址http://www.zghlxwxcb.cn/news/detail-740659.html
到了這里,關(guān)于【Solidity】智能合約案例——②供應(yīng)鏈金融合約的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!