新聞中心
同步和觀看地址
定義
您可以獲取所有歷史交易并實(shí)時收聽新交易。 它需要以下信息:

西疇ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
- ?
ChainId?(必填):要同步的鏈 - ?
Address?(必填):您將為此事件收聽的地址。 - ?
Sync_historical?(可選):同步歷史數(shù)據(jù)選項(xiàng)。 默認(rèn)值true
歷史事件限額
如果創(chuàng)建的同步作業(yè)會導(dǎo)致檢索更多歷史事件,則?Sync_historical?選項(xiàng)將被禁用并且不會保存歷史數(shù)據(jù)??梢月?lián)系支持人員升級您的帳戶以啟用保存它,無論如何,但在這樣做之前要仔細(xì)考慮是否真的有必要??梢詫?shí)時處理事件而無需將數(shù)據(jù)保存到數(shù)據(jù)庫中。
監(jiān)控經(jīng)過身份驗(yàn)證的用戶
Moralis 服務(wù)器為在某些時候通過您的應(yīng)用程序進(jìn)行身份驗(yàn)證的用戶實(shí)時同步所有交易和余額。 您無需執(zhí)行任何操作即可啟用此功能,因?yàn)樗谒?nbsp;Moralis 服務(wù)器中默認(rèn)啟用。
與往常一樣,我們希望您專注于用戶體驗(yàn),并將同步區(qū)塊鏈數(shù)據(jù)這一平凡而復(fù)雜的任務(wù)留給我們。
Moralis Server 將實(shí)時將數(shù)據(jù)插入和更新到您的數(shù)據(jù)庫中,以便您通過簡單的數(shù)據(jù)庫查詢即可獲取用戶的所有最新交易和余額。
監(jiān)控非認(rèn)證地址
默認(rèn)情況下,?EthTransactions ?集合中只會出現(xiàn)注冊用戶的交易數(shù)據(jù)。 要觀看特定地址(例如集中式交易所熱錢包),請?zhí)砑有碌耐胶陀^看地址插件,輸入地址,然后單擊“添加插件”按鈕。
這將啟動一個同步作業(yè)并向 ?WatchedXxxAddress ?集合添加一個條目,其中“?Xxx?”是此處定義的鏈名稱之一。 一旦交易被同步,它們就可以像任何其他交易一樣被查詢,包括實(shí)時查詢。
const Web3 = new Moralis.Web3();
const binanceWallet = "0x...";
// create query
const query = new Moralis.Query("EthTransactions");
query.equalTo("to_address", binanceWallet);
// subscribe for real-time updates
const subscription = await query.subscribe();
subscription.on("create", function (data) {
const amountEth = web3.utils.fromWei(data.attributes.value);
console.log(`${amountEth} deposited to Binance`);
});注意:在新的 Nitro 服務(wù)器上,訂閱將更新而不是創(chuàng)建
注意:最新版本服務(wù)器的表名將是 ?_AddressSyncStatus ?而不是 ?WatchedXxxAddress ?
請記住,如果啟用了 ?Sync_historical ?選項(xiàng),則查看具有大量交易量的地址將導(dǎo)致存儲大量數(shù)據(jù)。
歷史交易限額
如果監(jiān)視的地址會導(dǎo)致檢索更多歷史事務(wù),則 ?Sync_historical ?選項(xiàng)將被禁用并且不會保存任何歷史數(shù)據(jù)。 可以聯(lián)系支持以升級您的帳戶以啟用保存它,但在這樣做之前請仔細(xì)考慮是否真的有必要。 無需將數(shù)據(jù)保存到數(shù)據(jù)庫即可實(shí)時處理新事務(wù)。 您也可以調(diào)用 ?Deep Index API? 選擇性地查詢歷史數(shù)據(jù)。
從代碼中查看地址
?Sync and Watch Address? 插件在底層調(diào)用了一個名為 ?watchXxxAddress ?的云函數(shù),其中“?Xxx?”是這里的鏈名。 這些云函數(shù)也可以直接從自己的代碼中調(diào)用!
const results = await Moralis.Cloud.run("watchBscAddress", {
address: "0x...",
});默認(rèn)情況下,只有使用此云功能被監(jiān)視的地址所做的新交易才會被添加到數(shù)據(jù)庫中。 如果您還想為要查看的地址添加歷史數(shù)據(jù),可以添加 ?sync_historical:true?:
const results = await Moralis.Cloud.run("watchBscAddress", {
address: "0x...",
sync_historical: true,
});監(jiān)視地址函數(shù)在開始作業(yè)時不返回任何值。 它們?nèi)匀皇钱惒降模?nbsp;一旦 ?promise返回同步的事務(wù),它們應(yīng)該在相應(yīng)鏈的 ?XxxTransactions ?表中。
取消監(jiān)視代碼中的地址
當(dāng)刪除某個地址上的同步和監(jiān)視地址插件時,該插件會在后臺調(diào)用一個名為 ?unwatchXxxAddress ?的云函數(shù),其中“?Xxx?”是這里的鏈名。 和代碼看地址一樣,這個云函數(shù)也可以直接從自己的代碼中調(diào)用!
const results = await Moralis.Cloud.run("unwatchBscAddress", {
address: "0x...",
});
未經(jīng)確認(rèn)的交易
測試網(wǎng)和主網(wǎng)上的交易可能需要一段時間才能得到確認(rèn)。 當(dāng) Moralis 檢測到處于未確認(rèn)狀態(tài)的新交易(或事件)時,這些交易將被放入交易表中,例如 ?EthTransactions?,并帶有確認(rèn):?false?。 當(dāng)交易被確認(rèn)時,狀態(tài)更新為已確認(rèn):?true?。
需要注意的是,不同的區(qū)塊鏈會有不同的確認(rèn)號來保證交易的有效性。 這意味著,為了讓交易將其在 ?DB ?中的確認(rèn)值更改為 ?true?,它需要一定數(shù)量的確認(rèn):
- ?
Ethereum?: 12 - ?
Polygon?: 100 - ?
BSC?: 18 - ?
Avalanche?: 100 - ?
Fantom?: 100
觸發(fā)器的后果
這意味著,如果您在具有已確認(rèn)屬性(如 ?EthTransactions?)或任何“同步和觀察合同事件”集合的集合上定義 ?afterSave ?觸發(fā)器,則觸發(fā)器可以被觸發(fā)兩次——一次為確認(rèn):false,再次為確認(rèn):true!
禁用用戶歷史同步
默認(rèn)情況下,Moralis 將自動同步您用戶過去的所有交易。 這是非常耗費(fèi)資源的,CPU 和 RAM 可能是這里的瓶頸。 想象一下,你有 5000 個用戶,他們都有 100 次交易的歷史——突然你的服務(wù)器需要處理 500,000 個歷史事件,這將很快消耗 CPU 和 RAM 資源,特別是如果你有很多新用戶同時加入。
如果您知道不需要所有用戶的所有歷史記錄,則應(yīng)在服務(wù)器設(shè)置中禁用歷史同步。 見下圖。
通過 API 獲取歷史數(shù)據(jù)
請記住,禁用歷史同步僅意味著您的數(shù)據(jù)庫不會被歷史事件填充。
您仍然可以使用 Web3 API 函數(shù)獲取所有歷史數(shù)據(jù)。 Web3 API 完全獨(dú)立于數(shù)據(jù)庫的內(nèi)容。
因此,請查看 Web3 API 的功能,如果 Web3 API 中的歷史端點(diǎn)足以滿足您的用例,那么您應(yīng)該禁用服務(wù)器中的歷史同步,因?yàn)槟粫褂盟?/p>
什么時候不應(yīng)該禁用歷史同步?
如果您需要運(yùn)行 Web3 API 不提供的某些特定查詢,您需要啟用歷史同步,以便您可以使用 Moralis 提供的數(shù)據(jù)庫查詢對歷史數(shù)據(jù)運(yùn)行自定義查詢。
智能合約歷史事件仍然有效
請記住,此設(shè)置只會禁用自動獲取用戶歷史記錄。 如果您添加了智能合約事件 - 它們?nèi)詴@取歷史記錄并將該信息放入您的數(shù)據(jù)庫,因?yàn)樗鼈儶?dú)立于此設(shè)置工作。
優(yōu)化示例
在本節(jié)中,我們將給出具體的優(yōu)化示例,可以為您節(jié)省大量 CPU 和 RAM 使用率。
僅與您的合同相關(guān)的歷史和活動
假設(shè)你有一個 ?NFT ?合約,你只關(guān)心與該合約相關(guān)的用戶歷史和用戶實(shí)時交易。
在這種情況下,您應(yīng)該按照上面的說明禁用歷史同步,而只需為您的 ?NFT ?代幣合約添加智能合約事件同步。 這樣,您將只保留歷史記錄并查看智能合約的實(shí)時交易,而不是其他任何東西。
集合模式
Moralis Server 將獲得來自或向任何經(jīng)過身份驗(yàn)證的用戶地址(包括鏈接地址)或監(jiān)視地址進(jìn)行的所有價值轉(zhuǎn)移、代幣轉(zhuǎn)移 (ERC20) 和 ?NFT轉(zhuǎn)移(?ERC721?、?ERC1155?)。 在創(chuàng)建用戶(或查看地址)后,Moralis 服務(wù)器將為 Moralis 服務(wù)器同步的每個區(qū)塊鏈填充以下集合。 這些名稱將以它們來自的鏈作為前綴。
- ?
xxxTransactions? - ?
xxxTokenTransfers? - ?
xxxTokenBalances? - ?
xxxNFTTransfers? - ?
xxxNFTOwners?
這些集合可以在“?Moralis Dashboard?”中查看。
鏈前綴
| Chain | Prefix |
| Ethereum Mainnet, Ropsten, Georli, Kovan, Local Devchain | ?Eth? |
| Binance Smart Chain Mainnet, Testnet | ?Bsc? |
| Polygon (Matic) Mainnet, Mumbai Testnet | ?Matic? |
| Elrond | ?Erd? |
交易
在該鏈上與用戶或受監(jiān)視地址之間的所有交易不包括智能合約內(nèi)的內(nèi)部轉(zhuǎn)賬,例如代幣轉(zhuǎn)賬。
{
"objectId": String,
"block_hash": String,
"gas_price": Number,
"block_timestamp": Date,
"receipt_cumulative_gas_used": Number,
"ACL": ACL,
"receipt_gas_used": Number,
"input": String,
"receipt_contract_address": String,
"hash": String,
"updatedAt": Date,
"nonce": Number,
"to_address": String,
"transaction_index": Number,
"value": String,
"gas": Number,
"receipt_status": Number,
"createdAt": Date,
"block_number": Number,
"from_address": String,
"confirmed": Boolean,
}
代幣轉(zhuǎn)移
用戶地址和監(jiān)視地址的所有 ERC20 代幣轉(zhuǎn)移事件都將在此處找到。
{
"objectId": String,
"block_hash": String,
"block_timestamp": Date,
"ACL": ACL,
"updatedAt": Date,
"token_address": String,
"transaction_hash": String,
"to_address": String,
"transaction_index": Number,
"value": String,
"log_index": Number,
"createdAt": Date,
"block_number": Number,
"from_address": String,
"confirmed": Boolean,
}
代幣余額
用戶和觀察地址代幣余額的摘要。 這將在進(jìn)行新交易時實(shí)時更新。
{
"objectId": String,
"decimals": String,
"contract_type": String,
"ACL": ACL,
"name": String,
"updatedAt": Date,
"token_address": String,
"address": String,
"symbol": String,
"createdAt": Date,
"block_number": Number,
"balance": String,
}
NFT轉(zhuǎn)賬
轉(zhuǎn)移用戶和觀察地址的 ?NFT?(?ERC721 ?和 ?ERC1155 ?代幣)事件。
{
"objectId": String,
"block_hash": String,
"token_id": String,
"block_timestamp": Date,
"contract_type": String,
"ACL": ACL,
"updatedAt": Date,
"token_address": String,
"transaction_hash": String,
"to_address": String,
"transaction_index": Number,
"log_index": Number,
"amount": String,
"createdAt": Date,
"block_number": Number,
"transaction_type": String,
"from_address": String,
"confirmed": Boolean,
}
NFTO所有者
用戶和觀察地址的 ?NFT ?余額(?ERC721 ?和 ?ERC1155 ?代幣)摘要。
{
"objectId": String,
"token_id": String,
"owner_of": String,
"token_uri": String,
"contract_type": String,
"ACL": ACL,
"name": String,
"updatedAt": Date,
"token_address": String,
"amount": Sring,
"symbol": String,
"createdAt": Date,
"block_number": Number,
} 分享文章:創(chuàng)新互聯(lián)Moralis教程:Moralis用戶余額和交易
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/ccepeph.html


咨詢
建站咨詢
