public async Task <MResellerController> init() { user = await user.init(); nanoFinAddr = await MUtilityClass.getAddress(client, 1); burnAddress = await MUtilityClass.getBurnAddress(client); return(this); }
//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); }