Se ho capito bene qualcosa del genere:
Per la lista assumo che sia così:
mapping (address => bool) whiteList;
La funzione dove controlli se il chiamante è nella lista:
function doSomething() {
// recupera la lista whiteList dall altro smart contract
if (whiteList[msg.sender] == false) throw;
// fai qualcosa
}
Se la funzione che chiami internamente al tuo contratto non apporta modifiche non dovrebbe costare niente chiamarla, comunque in generale il chiamante paga tutto il gas per le operazioni che vengono eseguite.
Per verificare il costo da javascript, quindi nella tua applicazione, c'è questo, in pratica simula l'esecuzione e ti dice quanto gas serve, comunque non ho ancora sperimentato:
https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethestimategasGrazie Makkara, molto utile web3ethestimategas esattamente quello che cercavo.
Mi chiedevo cosa succede nel caso in cui si dovessero mandare al contratto meno o più' Ethereum del necessario... Grazie!