I was looking at BAT's token contract and the transactions being rejected, so I wondered how you scheduled these distributions. That led me to First Blood's sale contract. The first mention of 'startBlock' that I saw was on line 145.

uint public startBlock; //crowdsale start block (set in constructor)

uint public endBlock; //crowdsale end block (set in constructor)

The last mention of either (outside of some comparison) is here:

function FirstBloodToken(address founderInput, address signerInput, uint startBlockInput, uint endBlockInput) {

    founder = founderInput;
    signer = signerInput;
    startBlock = startBlockInput;
    endBlock = endBlockInput;

...what exactly am I missing here? I haven't exactly poured over this yet, though I feel like this should be fairly obvious and yet I'm not seeing which block this contract started accepting transactions at.

1 Answer 1


The startBlock and endBlock are passed to contract through a constructor. So you should query them from the contract state and as they are public variables you should be able to use call to query both the variables from the public network without costing any ether. The following gives an idea as to how to interact with contract using call https://ethereum.gitbooks.io/frontier-guide/content/interacting_contract.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.