如何使用OFMF API 進行BTC/LTC跨鏈

ofmf查詢服務api是面向使用者的公開的跨鏈查詢介面,使用者可以透過交易雜湊查詢到準確的跨鏈資訊也可以用條件篩選的方法查詢多組資料。api文件詳見:ofmf查詢服務api

本文透過python3實現的簡單示例展示如何使用ofmf api 跨鏈並查詢跨鏈的結果。在示例中,我們透過ltc跨鏈和查詢的例子告訴你,如何使用ofmf api 進行跨鏈。為此,我們需要做如下準備:

python: 演示程式碼使用python編寫,使用前請確保在你有 python3 開發環境。本教程所有過程使用的版本為 python 3.9.0

詳細演示

為了詳細的演示,我們透過demo來講解如何使用ofmf api 進行跨鏈。每一個api都會對應一個函式。

 

1、使用者若想透過api跨鏈,首先需要建立一個跨鏈地址,目前暫時只支援btc、ltc兩個幣種,以ltc為例。我們需要post 介面:/api/v1/create-cross-address 針對介面,使用者可以使用api請求工具(如postman)或是自己編寫程式進行訪問。

需要注意的是:本文件中的所有api在使用的時候都需要accesstoken:

username:summary   password:ofmf

demo請求函式中對於accesstoken的新增已經封裝完成,但如果使用者使用postman軟體來呼叫介面,則需要在authorization中選擇basic auth 並輸入username和password,如圖:

python demo的請求方法如下:

def create_cross_address(chain_name, vapor_address):
url = "https://ofmf.movapi.com/api/v1/create-cross-address"
params = {
"chain_name": chain_name,
"vapor_address": vapor_address
}
encoded_data = json.dumps(params).encode('utf-8')
res = requests.post(url, encoded_data, auth=('summary', 'ofmf'))
print(res.json())

demo呼叫的示例:

create_cross_address("ltc",
"vp1qphgfqj9wyvcnqnfts3gdtp9ecms3shdkq7zcws")

目前本介面接入ip有白名單限制,如果非白名單ip內的請求,會報錯“permission denied”,如下:

目前ip白名單暫未對普通使用者開放。

白名單下正確訪問,則返回如下結果:

{
"code": 200,
"msg": "",
"data": {
"cross_address": "ma4eeesuthwcu4jmf12dpunubqbjpvd1hz"
}
}

使用者可以對建立的跨鏈地址轉入對應資產,收到轉賬後,合約會將相應側鏈資產轉入使用者設定的側鏈地址。

以下是資產跨鏈的示例:

ltc交易雜湊:2cbf2aa6f9b8a6f3643d3ddab41f61cdd9ca6d0a9d2c2a06398061fcc0ca8437

vapor交易雜湊:

884d5196e26d21b4c7667ba03f56430c429a3eb4cc765ee23a55e37b1376ed3e

 

2、在上一步中,我們成功完成跨鏈,接下來我們透過交易雜湊查詢跨鏈資訊,需要請求的介面:post /api/v1/life-cycle

demo示例:

def list_cycle(hash):
url = "https://ofmf.movapi.com/api/v1/life-cycle"
params = {
"tx_hash": hash
}
encoded_data = json.dumps(params).encode('utf-8')
res = requests.post(url, encoded_data, auth=('summary', 'ofmf'))
print(res.json())

透過如下方法使用

list_cycle("884d5196e26d21b4c7667ba03f56430c429a3eb4cc765ee23a55e37b1376ed3e")

3.使用者如果需要對歷史的跨鏈資料按條件查詢,可以透過介面:post /api/v1/life-cycles實現

以下所有篩選項都使用,但是必選其中一項:

  • chain_name - 幣種,目前支援的幣種:btc、ltc、eth、usdt、dai、usdc
  • direction - 跨鏈方向,in - 跨入, out - 跨出
  • before_timestamp - 跨入交易所入區塊時間戳之前的跨鏈資訊(跟after_timestamp配置使用,可以查詢特定時間範圍的跨鏈資訊)
  • after_timestamp - 跨入交易所入區塊時間戳之後的跨鏈資訊

demo請求方法:

def list_cycles(chain_name="", direction="", before_timestamp="", after_timestamp=""):
url = "https://ofmf.movapi.com/api/v1/life-cycles"
params = {}
if chain_name != "":
params["chain_name"] = chain_name
if direction != "":
params["direction"] = direction
if before_timestamp != "":
params["before_timestamp"] = before_timestamp
if after_timestamp != "":
params["after_timestamp"] = after_timestamp
encoded_data = json.dumps(params).encode('utf-8')
res = requests.post(url, encoded_data, auth=('summary', 'ofmf'))
print(res.json())

請求示例:

list_cycles(chain_name="eth", direction="in")

由於查詢返回的資料較多,文中僅做部分展示。

以上內容透過例子完成了跨鏈及查詢的基本過程,使用者如需要文章中原始碼檔案,請點選:ofmfquerydemo


免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读