LoginSignup
0
0

More than 1 year has passed since last update.

Substrate ink! 送金 toContract toSomeone

Last updated at Posted at 2021-07-19

要約

  • 以前調べて記事にしたのですが、すっかり忘れてしまっていたので、再度メモをします。
  • 今回は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(())
        }
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0