コード例 #1
0
        public async Task <MResellerController> init()
        {
            user = await user.init();

            nanoFinAddr = await MUtilityClass.getAddress(client, 1);

            burnAddress = await MUtilityClass.getBurnAddress(client);

            return(this);
        }
コード例 #2
0
        public async Task <bool> invalidateProduct(int productID, int userID, int amount)
        {
            string productName = MUtilityClass.removeSpaces(await prodIDToProdName(productID));

            MConsumerController consumerCtrl = new MConsumerController(userID);

            consumerCtrl = await consumerCtrl.init();

            await consumerCtrl.invalidateProduct(productName, amount);

            return(true);
        }
コード例 #3
0
        public async Task atomicVoucherExchange(int resellerUserID, int bulkVoucherAmount, int UserID, int voucherAmount)
        {
            var jVoucher = new voucherJSON()
            {
                Voucher = voucherAmount
            };

            var jBulkVoucher = new bulkVoucherJSON()
            {
                BulkVoucher = bulkVoucherAmount
            };

            var voucherJsonStr     = JsonConvert.SerializeObject(jVoucher.Values);
            var bulkVouckerJsonStr = JsonConvert.SerializeObject(jBulkVoucher.Values);
            await MUtilityClass.atomicExchange(client, resellerUserID, bulkVouckerJsonStr, UserID, voucherJsonStr);
        }
コード例 #4
0
        //issue - 'open: true' with metadata
        public Task <JsonRpcResponse <string> > IssueOpenWithMetadataFromAsync(string fromAddress, string toAddress, string newAssetName, int quantity, string metadataStr)
        {
            string newAssetNameNoSpaces = MUtilityClass.removeSpaces(newAssetName);
            var    metadataJson         = new MetadataJSON()
            {
                metadata = metadataStr
            };

            var issueAssetParamsJson = new IssueAssetParamsJSON()
            {
                name = newAssetNameNoSpaces,
                open = true
            };

            var metadataJsonStr = JsonConvert.SerializeObject(metadataJson.Values);
            var paramsJsonStr   = JsonConvert.SerializeObject(issueAssetParamsJson.Values);

            return(this.ExecuteAsync <string>("issuefrom", 0, fromAddress, toAddress, paramsJsonStr, quantity, 0.01, 0, metadataJsonStr));
        }
コード例 #5
0
        //burn reseller bulk voucher. issue consumer voucher
        public async Task <int> sendBulk(int recipientUserID, int amount)
        {
            string recipientAddr = await MUtilityClass.getAddress(client, recipientUserID);

            //await user.grantPermissions(BlockchainPermissions.Send);
            //spend reseller BulkVoucher inputs
            string metadata             = "Reseller \'" + user.propertyUserID() + "\' spent " + amount.ToString() + " BulkVoucher. " + amount.ToString() + " Voucher of same amount to be issued to user \'" + recipientUserID.ToString() + "\'.";
            var    sendWithMetaDataFrom = await client.SendWithMetadataFromAsync(user.propertyUserAddress(), burnAddress, "BulkVoucher", amount, MUtilityClass.strToHex(metadata)); //metadata has to be converted to hex. convert back to string online or with MUtilityClasss

            sendWithMetaDataFrom.AssertOk();

            //check if recipient has the correct permissions, if not grant permissions
            MUserController recipientUser = new MUserController(recipientUserID);

            recipientUser = await recipientUser.init();

            //await recipientUser.grantPermissions(BlockchainPermissions.Receive);
            //issue recipient voucher
            var issueMore = await client.IssueMoreFromWithMetadataAsync(nanoFinAddr, recipientAddr, "Voucher", amount, "Issue consumer \'" + recipientUserID.ToString() + "\' " + amount.ToString() + " Voucher");

            issueMore.AssertOk();

            return(0);
        }