System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及區塊鏈,尤其涉及一種支持不同合約語言的智能合約相互調用的方法、系統、終端及介質。
技術介紹
1、自智能合約技術提出以來,其獨特的去中心化和透明化特性已在金融、供應鏈等多個行業引領了顯著的變革。作為第一個廣泛采用智能合約的區塊鏈平臺,以太坊引入了solidity編程語言,使開發者能夠創建復雜的合約。在多年的發展中,solidity已成為智能合約開發者的首選語言,并在以太坊平臺上建立了各種不同的項目,形成了一個繁榮的生態系統。這一生態系統的形成不僅促進了智能合約技術的應用,還推動了區塊鏈技術的進一步發展與創新。
2、隨著時間的推移,其他智能合約語言和平臺相繼出現,憑借各自獨特的特性和賣點,這些語言吸引了眾多開發者。但是,非solidity語言實現的智能合約無法引入和調用solidity語言實現的智能合約方法/函數,?而solidity語言實現的智能合約無法調用非solidity語言實現的智能合約函數/方法。可見,現有技術中采用不合約語言的智能合約無法互相調用。
技術實現思路
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、在一種實現方式中,所述當所述初始跨合約調用語句編譯通過后,根據所述初始跨合約調用語句得到所述初始本文檔來自技高網...
【技術保護點】
1.一種多智能合約相互調用的方法,其特征在于,所述方法應用于第一智能合約與不同合約語言的第二智能合約相互調用時,所述方法包括:
2.根據權利要求1所述的多智能合約相互調用的方法,其特征在于,所述基于預先定義跨合約調用語句的語法結構生成初始跨合約調用語句,包括:
3.根據權利要求1所述的多智能合約相互調用的方法,其特征在于,根據所述預先定義跨合約調用語句的語法結構生成所述第一智能合約的編譯規則,包括:
4.根據權利要求3所述的多智能合約相互調用的方法,其特征在于,根據預先定義跨合約調用語句的語法結構構建詞法分析規則,包括:
5.根據權利要求4所述的多智能合約相互調用的方法,其特征在于,根據預先定義跨合約調用語句的語法結構構建語法分析規則,包括:
6.根據權利要求3-5任一項所述的多智能合約相互調用的方法,其特征在于,所述基于所述第一智能合約的編譯規則得到所述初始跨合約調用語句的跨合約調用函數,包括:
7.根據權利要求6所述的多智能合約相互調用的方法,其特征在于,所述基于所述第一智能合約的編譯規則對所述初始跨合約
8.根據權利要求7所述的多智能合約相互調用的方法,其特征在于,所述基于構建的詞法規則對所述初始跨合約調用語句進行分析,得到詞法分析結果,包括:
9.根據權利要求8所述的多智能合約相互調用的方法,其特征在于,所述基于所述語法分析規則對所述初始跨合約調用語句進行分析,得到語法分析結果,包括:
10.根據權利要求7所述的多智能合約相互調用的方法,其特征在于,所述根據所述語法分析結果,對所述初始跨合約調用語句進行編譯處理,包括:
11.根據權利要求10所述的多智能合約相互調用的方法,其特征在于,所述對所述第二智能合約的源碼和編譯參數進行編譯,得到編譯結果,包括:
12.根據權利要求11所述的多智能合約相互調用的方法,其特征在于,所述當所述初始跨合約調用語句編譯通過后,根據所述初始跨合約調用語句得到所述初始跨合約調用語句的跨合約調用函數,包括:
13.根據權利要求11所述的多智能合約相互調用的方法,其特征在于,所述通過所述初始跨合約調用語句所對應的跨合約調用函數對所述第二智能合約進行調用,包括:
14.根據權利要求1所述的多智能合約相互調用的方法,其特征在于,所述獲取帶有跨語言調用語句的第二智能合約,包括:
15.根據權利要求14所述的多智能合約相互調用的方法,其特征在于,所述通過所述跨語言調用語句調用所述第一智能合約,包括:
16.一種多智能合約相互調用的系統,其特征在于,所述系統應用于第一智能合約與不同合約語言的第二智能合約相互調用,所述系統包括:
17.一種終端,其特征在于,所述終端包括存儲器、處理器及存儲在所述存儲器中并可在所述處理器上運行的多智能合約相互調用的程序,所述處理器執行多智能合約相互調用的程序時,實現如權利要求1-15任一項所述的多智能合約相互調用的方法的步驟。
18.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有多智能合約相互調用的程序,所述多智能合約相互調用的程序被處理器執行時,實現如權利要求1-15任一項所述的多智能合約相互調用的方法的步驟。
...【技術特征摘要】
1.一種多智能合約相互調用的方法,其特征在于,所述方法應用于第一智能合約與不同合約語言的第二智能合約相互調用時,所述方法包括:
2.根據權利要求1所述的多智能合約相互調用的方法,其特征在于,所述基于預先定義跨合約調用語句的語法結構生成初始跨合約調用語句,包括:
3.根據權利要求1所述的多智能合約相互調用的方法,其特征在于,根據所述預先定義跨合約調用語句的語法結構生成所述第一智能合約的編譯規則,包括:
4.根據權利要求3所述的多智能合約相互調用的方法,其特征在于,根據預先定義跨合約調用語句的語法結構構建詞法分析規則,包括:
5.根據權利要求4所述的多智能合約相互調用的方法,其特征在于,根據預先定義跨合約調用語句的語法結構構建語法分析規則,包括:
6.根據權利要求3-5任一項所述的多智能合約相互調用的方法,其特征在于,所述基于所述第一智能合約的編譯規則得到所述初始跨合約調用語句的跨合約調用函數,包括:
7.根據權利要求6所述的多智能合約相互調用的方法,其特征在于,所述基于所述第一智能合約的編譯規則對所述初始跨合約調用語句進行編譯處理,包括:
8.根據權利要求7所述的多智能合約相互調用的方法,其特征在于,所述基于構建的詞法規則對所述初始跨合約調用語句進行分析,得到詞法分析結果,包括:
9.根據權利要求8所述的多智能合約相互調用的方法,其特征在于,所述基于所述語法分析規則對所述初始跨合約調用語句進行分析,得到語法分析結果,包括:
10.根據權利要求7所述的多智能合約相互調用的方法,其特征在于,所述根據所述語法分...
【專利技術屬性】
技術研發人員:潘明皓,葉子然,汪浩,王嘉平,
申請(專利權)人:粵港澳大灣區數字經濟研究院福田,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。