removeTokenon DAI. You could only exitPool with whatever pool tokens you had - and the remaining DAI balance would represent the amount of liquidity added by the other LPs.
removeTokenon either. For instance, if a purchaser sold a large amount of your project token back into the pool, or someone added a large amount of liquidity. If you need to call
removeTokento reuse the pool, remember you can always "buy out" the other LPs. If you're 250 pool tokens short of what you need to remove the project token, you can join with 250 pool tokens' worth of DAI, after which
removeTokenwill succeed. All the other LPs wishing to withdraw their liquidity would get their proceeds entirely in DAI.
pokeWeights. A common mechanism is for the pool operator to set up something like a cron job to call it automatically, though it is a public function that anyone can call.
pokeWeightschanges weights, but not balances - therefore, it can change the price (albeit only along the trajectory set by the last call the updateWeightsGradually).
updateWeightchanges weights directly - but not the price. This means it must also adjust the balances at the same time (i.e., transfer tokens). So the controller can set weights arbitrarily -- but not while an
updateWeightsGraduallyis running. And they must have the tokens available to do it.