概要 : ZetaChainのdevnet(別名Sparta)はライブです。docs.zetachain.comで私たちのドキュメントを読み、オムニチェーンdAppsの構築を開始しましょう。
私たちは、ZetaChainのSparta(devnet)ネットワーク上に、初となるオムニチェーンdAppsが構築できる、開発者ドキュメントの公開リリースの発表に興奮しています。先月、私たちはSpartaへの早期アクセスを一部の開発者チームに開放し、それ以来、目覚ましい進歩を遂げています。すべての肯定的なフィードバックで、私たちは、誰もが見るだけで、簡単にZetaChain上に構築が開始できるように、それをオープンにすることにしました。ドキュメントには、以下の概要が記載されています。
現時点において、Sparta devnetは、開発者がZetaChainの最新の機能とAPIの更新が確認できます。注意点としては、私たちはメインネットを立ち上げる前に、ZetaChainブロックチェーンの複数のバージョンで異なる機能を維持し、テストし、実験する予定である点です。以下は、ZetaChainのネットワーク開発段階についての簡単な説明です。
Copr. 2006 Warner Bros. Pictures
メッセージパッシングインターフェース(MPI)APIがSparta上に展開されたことにより、チェーン間で値やデータを送信するdAppsが簡単に構築できるようになりました。このセクションでは、開発者が自分のdAppsにクロスチェーン機能を追加することがいかに簡単であるかを紹介します。もちろん、詳細については、完全なドキュメントサイトを確認してください。
Spartaは現在、Goerli、BSC Testnet、Polygon Mumbaiで稼働しています。ZetaChainはチェーンアグノスティックなので、より多くのチェーンが時間とともにサポートされていく予定です。
まず、使用するインターフェースについて説明します。EVMコントラクトの場合は、以下のようなものです。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.12;interface ZetaInterfaces {
/**
* @dev Use SendInput to interact with our Message Passing Interface: zeta.send(SendInput)
*/
struct SendInput {
uint256 destinationChainId;
bytes destinationAddress;
/// @dev Total gas including the transactions on every chain
uint256 gasLimit;
/// @dev An encoded, arbitrary message to be parsed by the destination contract
bytes message;
/// @dev The amount of Zeta that you wanna send cross-chain, greater than or equal to 0
uint256 zetaAmount;
/// @dev Optional parameters for the Zeta protocol
bytes zetaParams;
} /**
* @dev Our Message Passing Interface will call your contract's onZetaMessage using this interface
*/
struct ZetaMessage {
bytes originSenderAddress;
uint256 originChainId;
address destinationAddress;
uint256 zetaAmount;
bytes message;
} /**
* @dev Our Message Passing Interface will call your contract's onZetaRevert using this interface
*/
struct ZetaRevert {
address originSenderAddress;
uint256 originChainId;
bytes destinationAddress;
uint256 destinationChainId;
uint256 zetaAmount;
bytes message;
}
}interface ZetaReceiver {
/**
* @dev onZetaMessage will be called when a cross-chain message is delivered to your contract
*/
function onZetaMessage(ZetaInterfaces.ZetaMessage calldata zetaMessage) external; /**
* @dev onZetaRevert will be called when a cross-chain message reverts
* It's useful to rollback your contract's state
*/
function onZetaRevert(ZetaInterfaces.ZetaRevert calldata zetaRevert) external;
}interface ZetaMPI {
/**
* @dev Sending value and data cross-chain is as easy as calling zeta.send(SendInput)
*/
function send(ZetaInterfaces.SendInput calldata input) external;
}