Пример #1
0
//Sample of new features / requests
    public IEnumerator GetArrayUInt256()
    {
        var url        = "http://localhost:8545";
        var privateKey = "0xb5b1870957d373ef0eeffecc6e4812c0fd08f554b37b233526acc331bf1544f7";
        var account    = "0x12890d2cce102216644c59daE5baed380d84830c";
        //initialising the transaction request sender
        var transactionRequest = new TransactionSignedUnityRequest(url, privateKey, account);

        //deploy the contract and True indicates we want to estimate the gas
        yield return(transactionRequest.SignAndSendDeploymentContractTransaction <ArrayUint256DynamicDeployment>());

        if (transactionRequest.Exception != null)
        {
            Debug.Log(transactionRequest.Exception.Message);
            yield break;
        }

        var transactionHash = transactionRequest.Result;

        //create a poll to get the receipt when mined
        var transactionReceiptPolling = new TransactionReceiptPollingRequest(url);

        //checking every 2 seconds for the receipt
        yield return(transactionReceiptPolling.PollForReceipt(transactionHash, 2));

        var deploymentReceipt = transactionReceiptPolling.Result;

        //Query request using our acccount and the contracts address (no parameters needed and default values)
        var queryRequest = new QueryUnityRequest <GiveMeTheArrayFunction, GiveMeTheArrayOutputDTO>(url, account);

        yield return(queryRequest.Query(deploymentReceipt.ContractAddress));

        //Getting the dto response already decoded
        var dtoResult = queryRequest.Result;

        Debug.Log(dtoResult.Result [0]);
        Debug.Log(dtoResult.Result [1]);
    }
Пример #2
0
    //Sample of new features / requests
    public IEnumerator DeployAndTransferToken()
    {
        var url        = "http://localhost:8545";
        var privateKey = "0xb5b1870957d373ef0eeffecc6e4812c0fd08f554b37b233526acc331bf1544f7";
        var account    = "0x12890d2cce102216644c59daE5baed380d84830c";
        //initialising the transaction request sender
        var transactionRequest = new TransactionSignedUnityRequest(url, privateKey);


        var deployContract = new EIP20Deployment()
        {
            InitialAmount = 10000,
            FromAddress   = account,
            TokenName     = "TST",
            TokenSymbol   = "TST"
        };

        //deploy the contract and True indicates we want to estimate the gas
        yield return(transactionRequest.SignAndSendDeploymentContractTransaction <EIP20DeploymentBase>(deployContract));

        if (transactionRequest.Exception != null)
        {
            Debug.Log(transactionRequest.Exception.Message);
            yield break;
        }

        var transactionHash = transactionRequest.Result;

        Debug.Log("Deployment transaction hash:" + transactionHash);

        //create a poll to get the receipt when mined
        var transactionReceiptPolling = new TransactionReceiptPollingRequest(url);

        //checking every 2 seconds for the receipt
        yield return(transactionReceiptPolling.PollForReceipt(transactionHash, 2));

        var deploymentReceipt = transactionReceiptPolling.Result;

        Debug.Log("Deployment contract address:" + deploymentReceipt.ContractAddress);

        //Query request using our acccount and the contracts address (no parameters needed and default values)
        var queryRequest = new QueryUnityRequest <BalanceOfFunction, BalanceOfFunctionOutput>(url, account);

        yield return(queryRequest.Query(new BalanceOfFunction()
        {
            Owner = account
        }, deploymentReceipt.ContractAddress));

        //Getting the dto response already decoded
        var dtoResult = queryRequest.Result;

        Debug.Log(dtoResult.Balance);


        var transactionTransferRequest = new TransactionSignedUnityRequest(url, privateKey);

        var newAddress = "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe";

        var transactionMessage = new TransferFunction
        {
            FromAddress = account,
            To          = newAddress,
            Value       = 1000,
        };

        yield return(transactionTransferRequest.SignAndSendTransaction(transactionMessage, deploymentReceipt.ContractAddress));

        var transactionTransferHash = transactionTransferRequest.Result;

        Debug.Log("Transfer txn hash:" + transactionHash);

        transactionReceiptPolling = new TransactionReceiptPollingRequest(url);
        yield return(transactionReceiptPolling.PollForReceipt(transactionTransferHash, 2));

        var transferReceipt = transactionReceiptPolling.Result;

        var transferEvent = transferReceipt.DecodeAllEvents <TransferEventDTO>();

        Debug.Log("Transferd amount from event: " + transferEvent[0].Event.Value);

        var getLogsRequest = new EthGetLogsUnityRequest(url);

        var eventTransfer = TransferEventDTO.GetEventABI();

        yield return(getLogsRequest.SendRequest(eventTransfer.CreateFilterInput(deploymentReceipt.ContractAddress, account)));

        var eventDecoded = getLogsRequest.Result.DecodeAllEvents <TransferEventDTO>();

        Debug.Log("Transferd amount from get logs event: " + eventDecoded[0].Event.Value);
    }
Пример #3
0
        //Sample of new features / requests
        public IEnumerator DeployAndTransferToken()
        {
            var url        = "https://ropsten.infura.io/v3/4394d608f8694f62ac54a673f7940e11";
            var privateKey = "622bdcf3915f11859a8657af0aa0dea840fbbf52c9fb9607adfa156f18f734e1";
            var account    = "0x88144534Bd291b9c3D7BDB9A92D7270566f5622d";
            //initialising the transaction request sender

            var transactionRequest = new TransactionSignedUnityRequest(url, privateKey);

            var deployContract = new Eip20Deployment()
            {
                InitialAmount = 100000,
                FromAddress   = account,
                TokenName     = "GameBank",

                TokenSymbol = "GB"
            };

            //deploy the contract
            yield return(transactionRequest.SignAndSendDeploymentContractTransaction <Eip20DeploymentBase>(deployContract));

            if (transactionRequest.Exception != null)
            {
                Debug.Log(transactionRequest.Exception.Message);
                yield break;
            }

            var transactionHash = transactionRequest.Result;

            Debug.Log("Deployment transaction hash:" + transactionHash);

            //create a poll to get the receipt when mined
            var transactionReceiptPolling = new TransactionReceiptPollingRequest(url);

            //checking every 2 seconds for the receipt
            yield return(transactionReceiptPolling.PollForReceipt(transactionHash, 2));

            var deploymentReceipt = transactionReceiptPolling.Result;

            Debug.Log("Deployment contract address:" + deploymentReceipt.ContractAddress);

            //Query request using our acccount and the contracts address (no parameters needed and default values)
            var queryRequest = new QueryUnityRequest <BalanceOfFunction, BalanceOfFunctionOutput>(url, account);

            yield return(queryRequest.Query(new BalanceOfFunction()
            {
                Owner = account
            }, deploymentReceipt.ContractAddress));

            //Getting the dto response already decoded
            var dtoResult = queryRequest.Result;

            Debug.Log(dtoResult.Balance);

            /*var transactionTransferRequest = new TransactionSignedUnityRequest(url, privateKey);
             * var newAddress = "0x88144534Bd291b9c3D7BDB9A92D7270566f5622d";
             *
             *
             * var transactionMessage = new TransferFunction
             * {
             *  FromAddress = account,
             *  To = newAddress,
             *  Value = 100000,
             * };
             *
             * yield return transactionTransferRequest.SignAndSendTransaction(transactionMessage, deploymentReceipt.ContractAddress);
             * var transactionTransferHash = transactionTransferRequest.Result;
             *
             * Debug.Log("Transfer txn hash:" + transactionHash);
             *
             * transactionReceiptPolling = new TransactionReceiptPollingRequest(url);
             * yield return transactionReceiptPolling.PollForReceipt(transactionTransferHash, 2);
             * var transferReceipt = transactionReceiptPolling.Result;
             *
             * var transferEvent = transferReceipt.DecodeAllEvents<TransferEventDto>();
             * Debug.Log("Transferd amount from event: " + transferEvent[0].Event.Value);
             *
             * var getLogsRequest = new EthGetLogsUnityRequest(url);
             * var eventTransfer = TransferEventDto.GetEventABI();
             * yield return getLogsRequest.SendRequest(eventTransfer.CreateFilterInput(deploymentReceipt.ContractAddress, account));
             *
             * var eventDecoded = getLogsRequest.Result.DecodeAllEvents<TransferEventDto>();
             * Debug.Log("Transferd amount from get logs event: " + eventDecoded[0].Event.Value);*/
        }
Пример #4
0
    //Sample of new features / requests
    public IEnumerator DeployAndTransferToken()
    {
        var url        = "http://localhost:8545";
        var privateKey = "0xa5ca770c997e53e182c5015bcf1b58ba5cefe358bf217800d8ec7d64ca919edd";
        var account    = "0x47E95DCdb798Bc315198138bC930758E6f399f81";
        //initialising the transaction request sender
        var transactionRequest = new TransactionSignedUnityRequest(url, privateKey, account);


        var deployContract = new EIP20Deployment()
        {
            InitialAmount = 10000,
            FromAddress   = account,
            TokenName     = "TST",
            TokenSymbol   = "TST"
        };

        //deploy the contract and True indicates we want to estimate the gas
        yield return(transactionRequest.SignAndSendDeploymentContractTransaction <EIP20DeploymentBase>(deployContract));

        if (transactionRequest.Exception != null)
        {
            Debug.Log(transactionRequest.Exception.Message);
            yield break;
        }

        var transactionHash = transactionRequest.Result;

        Debug.Log("Deployment transaction hash:" + transactionHash);

        //create a poll to get the receipt when mined
        var transactionReceiptPolling = new TransactionReceiptPollingRequest(url);

        //checking every 2 seconds for the receipt
        yield return(transactionReceiptPolling.PollForReceipt(transactionHash, 2));

        var deploymentReceipt = transactionReceiptPolling.Result;

        Debug.Log("Deployment contract address:" + deploymentReceipt.ContractAddress);

        //Query request using our acccount and the contracts address (no parameters needed and default values)
        var queryRequest = new QueryUnityRequest <BalanceOfFunction, BalanceOfFunctionOutput>(url, account);

        yield return(queryRequest.Query(new BalanceOfFunction()
        {
            Owner = account
        }, deploymentReceipt.ContractAddress));

        //Getting the dto response already decoded
        var dtoResult = queryRequest.Result;

        Debug.Log(dtoResult.Balance);


        var transactionTransferRequest = new TransactionSignedUnityRequest(url, privateKey, account);

        var newAddress = "0x4e70A9177Aff5077217f069E582992f7F9bec945";

        var transactionMessage = new TransferFunction
        {
            FromAddress = account,
            To          = newAddress,
            Value       = 1000,
        };

        yield return(transactionTransferRequest.SignAndSendTransaction(transactionMessage, deploymentReceipt.ContractAddress));

        var transactionTransferHash = transactionTransferRequest.Result;

        Debug.Log("Transfer txn hash:" + transactionHash);

        transactionReceiptPolling = new TransactionReceiptPollingRequest(url);
        yield return(transactionReceiptPolling.PollForReceipt(transactionTransferHash, 2));

        var transferReceipt = transactionReceiptPolling.Result;

        var transferEvent = transferReceipt.DecodeAllEvents <TransferEventDTO>();

        Debug.Log("Transferd amount from event: " + transferEvent[0].Event.Value);

        var getLogsRequest = new EthGetLogsUnityRequest(url);

        var eventTransfer = TransferEventDTO.GetEventABI();

        yield return(getLogsRequest.SendRequest(eventTransfer.CreateFilterInput(deploymentReceipt.ContractAddress, account)));

        var eventDecoded = getLogsRequest.Result.DecodeAllEvents <TransferEventDTO>();

        Debug.Log("Transferd amount from get logs event: " + eventDecoded[0].Event.Value);
    }