The Asset in the DMEX smart contract is a fundamental object that defines the asset being traded in the futures contract. The Asset comprises of the following information:
the token used for margin (0x000... in the ETH case)
the url where the Oracle will take the settlement price from
the JSON parameter inside the priceUrl that represent the last traded price
if true, the asset cannot be used in contract creation (when priceUrl no longer valid or decimals have changed)
number of decimals in the price
Every Asset has a unique hash. That unique hash is used in the “Asset” parameter when creating a new Futures Contract. There can be no two assets with different parameters but the same hash because all parameters are part of the hash, therefore a change in parameters would result in a new unique asset hash.
bytes32 futuresAssetHash = keccak256(this,baseToken,priceUrl,pricePath,decimals);