合约量化开发系统详情丨量化合约系统开发技术逻辑方案

2023-02-07 10:59:51 浏览数 (1)

17.1DIFF协议

DIFF(Differential Information Flow for Finance)是一个基于websocket和json的应用层协议。websocket是全双工通信,当客户端和服务器端建立连接后,就可以相互发数据,建立连接又称为“握手”,“握手”成功就可以建立通信了,不用在每次需要传输信息时重新建立连接,即不会“掉线”。json是数据存储格式,json数据可以方便的反序列化为Python数据。

接下来几个基础步骤,使用以下代码段更新您的pallet代码(如果您不想使用模板代码,请跳过此步骤):

![cfg_attr(not(feature = "std"), no_std)]

pub use pallet::*;

[frame_support::pallet]

pub mod pallet {

代码语言:javascript复制
use frame_support::pallet_prelude::*;
use frame_system::pallet_prelude::*;
use frame_support::{
    sp_runtime::traits::Hash,
    traits::{ Randomness, Currency, tokens::ExistenceRequirement },
    transactional
};
use sp_io::hashing::blake2_128;

#[cfg(feature = "std")]
use frame_support::serde::{Deserialize, Serialize};

// ACTION #1: Write a Struct to hold Kitty information.

// ACTION #2: Enum declaration for Gender.

// ACTION #3: Implementation to handle Gender type in Kitty struct.

#[pallet::pallet]
#[pallet::generate_store(pub(super) trait Store)]
pub struct Pallet<T>(_);

/// Configure the pallet by specifying the parameters and types it depends on.
#[pallet::config]
pub trait Config: frame_system::Config {
    /// Because this pallet emits events, it depends on the runtime's definition of an event.
    type Event: From<Event<Self>>   IsType<<Self as frame_system::Config>::Event>;

    /// The Currency handler for the Kitties pallet.
    type Currency: Currency<Self::AccountId>;

    // ACTION #5: Specify the type for Randomness we want to specify for runtime.

    // ACTION #9: Add MaxKittyOwned constant
}

// Errors.
#[pallet::error]
pub enum Error<T> {
    // TODO Part III
}

// Events.
#[pallet::event]
#[pallet::generate_deposit(pub(super) fn deposit_event)]
pub enum Event<T: Config> {
    // TODO Part III
}

#[pallet::storage]
#[pallet::getter(fn count_for_kitties)]
pub(super) type CountForKitties<T: Config> = StorageValue<_, u64, ValueQuery>;

// ACTION #7: Remaining storage items.

// TODO Part IV: Our pallet's genesis configuration.

#[pallet::call]
impl<T: Config> Pallet<T> {

    // TODO Part III: create_kitty

    // TODO Part IV: set_price

    // TODO Part IV: transfer

    // TODO Part IV: buy_kitty

    // TODO Part IV: breed_kitty
}

//** Our helper functions.**//

impl<T: Config> Pallet<T> {

    // ACTION #4: helper function for Kitty struct

    // TODO Part III: helper functions for dispatchable functions

    // ACTION #6: function to randomly generate DNA

    // TODO Part III: mint

    // TODO Part IV: transfer_kitty_to
}

} 复制 除了此代码,我们还需要导入serde 。将其添加到pallet的 Cargo.toml 文件中,使用匹配的版本作为substrate upstream。

0 人点赞