public void OnClickTransfer() { string strMoney = m_ifMoney.text; string strDestAddress = m_ifDestAddress.text; string strChangeCLAddress = null; if (m_iID > 1000) { strChangeCLAddress = m_kCLB.GenerateNewMCLAddress(m_strMasterKeyName); } if (string.IsNullOrEmpty(strMoney) || string.IsNullOrEmpty(strDestAddress)) { MessageBox.ms_kSig.Show("Prompt", "Money or DestAddress is null"); return; } float fMoney = Convert.ToSingle(strMoney); if (fMoney <= 0.0f) { MessageBox.ms_kSig.Show("Prompt", "Money must > 0"); return; } if (fMoney > m_fBalance) { MessageBox.ms_kSig.Show("Prompt", "Not enough money"); return; } IxMagnaChainBridge.ON_TRANSFER_DONE fnTransferDone = delegate(RPCError kError, string strTxid) { if (kError != null) { Debug.LogError(kError.Message); return; } Debug.Log("Transfer done."); if (m_iID > 1000) { m_strAddress = strChangeCLAddress; m_txtAddress.text = strChangeCLAddress; string strName; string strPath; string strBTAddress; m_kCLB.DecodeMCLAddress(strChangeCLAddress, out strName, out strPath, out strBTAddress); m_txtBTAddress.text = strBTAddress; m_kOtherRole.SetDestCLAddress(strChangeCLAddress); string strSaveName = SAVE_ADDRESS_NAME_PREFIX + m_iID; PlayerPrefs.SetString(strSaveName, strChangeCLAddress); } m_fUpdateTick = m_fUpdateTime; UpdateBalance(); }; m_kCLB.TransferMCLToMCLAddressAsync(m_strAddress, strDestAddress, fMoney, fnTransferDone, -1.0f, strChangeCLAddress); }