The Open Zeppelin Crowdsale contract mints new tokens, it doesn't deplete them from a pool.
// low level token purchase function
function buyTokens(address beneficiary) public payable {
require(beneficiary != address(0));
require(validPurchase());
uint256 weiAmount = msg.value;
// calculate token amount to be created
uint256 tokens = getTokenAmount(weiAmount);
// update state
weiRaised = weiRaised.add(weiAmount);
token.mint(beneficiary, tokens);
TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);
forwardFunds();
}
You can see this in the call to token.mint
, which creates the MintableToken
and then sends it to the beneficiary
. MintableTokens increase their supply when the mint function is called, and only then.
So, to put it another way, using the Open Zeppelin Crowdsale contract, you have no unsold tokens, because all created tokens are instantly transferred when sold. If your goal is just to give yourself free tokens, you can modify the constructor or create a method that calls token.mint
with your address and a given amount.