要約
- 以前調べて記事にしたのですが、すっかり忘れてしまっていたので、再度メモをします。
- 今回はContract Addressに送金する方法 と 他のアカウントに送金する方法の二つです。
Contract Addressに送金する方法
#[ink(message)]
#[ink(payable)]
pub fn transfer_to_contract_address(&mut self) -> Result<(),Error>{
let caller = self.env().caller();
if self.env().transferred_balance() <= 0 {
return Err(Error::TokenValueIsZero);
}
Ok(())
}
コントラクトアドレスの残高を確認する
#[ink(message)]
pub fn get_contract_balances(&self) -> u128{
self.env().balance()
}
他のアカウントに送金する方法
#[ink(message)]
#[ink(payable)]
pub fn transfer_to(&mut self, to:AccountId) -> Result<(),Error> {
if self.env().transfer(to, self.env().transferred_balance()) != Ok(()){
return Err(Error::ErrTransfer);
}
Ok(())
}