Smart Contracts without ETH Transactions

Maybe I’m wrong, but I understand that Smart Contract Transactions must always contain a “VALUE” field, that’s to say, the amount of Ether Alice will transfer to Bob in case certain condition accomplishes.

Taking this into consideration, ¿does it means that Ethereum Smart Contracts can’t be used to set clauses which don’t involve Ether? Like for example:

a) IF Alice transfers the Property Title of a house to Bob, THEN Bob in exchange transfers her another Property Tittle;

Or for example:
b) IF Temperature value for January is below X, THEN Insurance decreases the insurance prime for next month;

c) IF consumer A buys something but it’s broken, THEN gets (non monetary) compensation from the seller.

In case this is possible, nodes will have a compensation according to used Gas, even if there’s no an Ether transaction between the parties. Isn’t it?

Thanks in advance.

How are ‘Not Mineable ‘ cryptos able to verify transactions?

NEM, Stratis, BitShares are ‘non mineable’ cryptocurrencies.

How do they verify transactions if there are no miners? Maybe nodes only? Or… what am I missing here?

I ask because I assume with a non mineable currency I believe miner fees, aka transaction fees, would be super low. Transactions would also clear faster. Like Ripple. Takes about 10 seconds to transfer XRP.

Creating raw transactions for sending ERC721 tokens

I was able to create raw transactions for eth following this article https://medium.com/blockchain-musings/how-to-create-raw-transactions-in-ethereum-part-1-1df91abdba7c

However, how can I create raw transactions when send ERC721 tokens? More specifically, where do I add the token id field when creating raw transactions?

How to send signed transactions concurrently via Infura?

I’m using web3js and web3js-raw as follows to change state of my smart contract on ethereum,

let initiateAddLoyaltyTransaction = function (fromWallet, toWallet, companyName, amount, callback) {
let functionName = 'transferWithAddLoyalty';
amount = web3.utils.toWei(amount.toString(), 'ether');
let params = [fromWallet, toWallet, amount, companyName];
W3JSR.prepareSignSend(config.ethereum[ethereumNetwork].ABI_DEFINITION, config.ethereum[ethereumNetwork].CONTRACT_ADDRESS, functionName,
    config.ethereum[ethereumNetwork].WALLET_ADDRESS, privateKey, params, 10000000000).then((result, error) => {
    callback(result, error);
});

};

It works fine when I call this function and wait for the transaction to mined by miners. But the problem is when I send another transaction before first one completes( because my use case needs to do several transactions in a short period of time) it gives an error saying

message: Error: Returned error: known transaction: 5abe27f97e23fb660b514c87c4d7db150dbd23bcf54632eef09fad6ec64427fe

I can see that the nonce is same for both transactions. Could someone please explain me how to deal with nonce while using Infura. Do I need to maintain nonce localy? And how to retry if one transaction fails

Removing pending transactions or not after local snapshot?

We know full-node will remove all pending transactions but keeps value address after global snapshot. In the local snapshot, after reading the article: Coming Up: Local Snapshots, we know full-node maintainer need choose a confirmed transaction that is sufficiently old and use this transaction as an “anchor” for the local snapshot and clean the old transactions before the “anchor”, my question is: The pending transactions should be removed after local snapshot?

  • No: It pending transactions have not removed after local snapshot, the size of IRI database will still very big after local snapshot, especially after a SPAM attack (SPAMer will issue large numbers of tips and they all, not solid, e.g: invalid or no Parent transactions, like this transaction that was pending 2 months).

  • Yes: The pending transactions will be removed. But how to do the local snapshot announcement? in the Global snapshot … it will be announced on IOTA discord. But how about local snapshot? If I issue a transaction by random choice a public full-node, and the node makes a local snapshot immediately and my transaction still pending. My transaction will be removed and I have no idea the reason is the local snapshot.


Controlling access to functions with VIEW visibility with signed transactions?

Controlling access to functions that require ETH is straight forward because you get an address you can trust because it has been signed and verified, and therefore upi can use for access control simply by inspecting the value in the msg.sender field.

I have heard of a similar technique being used in something called “meta-transactions”, used for identity purposes in non-SEND transactions. But I don’t know enough to be able to execute such a technique. I would need to know how to do both of the operation, from the Node.JS/Web3JS side and the smart contract side. I do know how to create SEND transactions and I am doing that now from my dApp, because I sign the data package I use with sendSignedTransaction(). But I’m not sure how to do this when using a straight method call executed from the Web3JS side. I’m referring to the common technique of calling a contract method from an contract instance object that has the ABI loaded that contains the contract method calls (e.g. – contractInstance.methods.getSomeData().call()).

If I’m correct on this, can someone point me to a code sample or document that would show me how to sign a smart contract method call with VIEW visibility, from a Node.JS/Web3JS app? And then show me on the smart contract side how to validate the signed method call? The data packet I would send would contain the Ethereum address I want to use for access control. Then on the smart contract side I would validate the signature before executing the access control rules.

What is the cost associated with a market that has no transactions?

I know that there’s plenty of questions on fees, but they’re mostly from 2017 and I’d like to get some current answers as of late 2018

If I start a market, where I’m also the designated reporter, that had no participants besides my liquidity orders, how much have I lost? I’m primarily concerned with the validity bond and the reporters stake when I report on the event. Am I getting both of those fees back?

Once the event and reporting is completely finished, what is my net outlay – in REP and ETH – for this type of market?

How can I submit transactions on the Augur docker container?

Followed the instructions at this link: https://github.com/AugurProject/augur-ui/blob/master/docs/dev-local-node.md

I deployed the latest version of the containers with existing markets. I ran the UI and was able to access the marketplace as the address that deployed all the markets. I tried to create a new market, and submitted the transaction with metamask, but the notification bell at the top right of the GUI just says “pending” forever. Further, it says that the transaction was submitted 3 months ago.

How can I get the transactions to successfully go through and create a new market?

create multiple transactions between two accounts using SendTransactionAsync method nethereum

I am trying to create multiple transactions between two accounts using SendTransactionAsync method. But I am getting “replacement transaction underpriced” message. I found some links which says we need to increase nonce to create new transactions in loop. But I am not able to find Nethereum function where I can mention nonce value while creating transaction. Can anybody guide me with solution to this?

 HexBigInteger gas = new HexBigInteger(25000);
    HexBigInteger value = new HexBigInteger(100);
 for (int i = 0; i < 1000; i++)
 {
    var privateKey1 = "0x5083ff34a6610ad0d08d5e568fcee84e29a1391a6fffa8cf96484388f57de731";
    var account = new Account(privateKey1);
    var web3 = new Web3(account, "http://127.0.0.1:8001/", null, null);
    var addressTo = "0x12890D2cce102216644c59daE5baed380d84830c";
    string data = "ASDF";
    var transaction = await web3.TransactionManager.SendTransactionAsync(new TransactionInput(data.ToHexUTF8(), addressTo, account.Address,new HexBigInteger(gas.Value + (gas.Value * 20) / 100), new HexBigInteger(value.Value + (value.Value * 20) / 100)));
 }