コード例 #1
0
    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);
    }