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