pokeWeightscould fail in some edge cases where the total would temporarily be exceeded. Unless you need the maximum 98%/2% (49/1 denorm) weights, it's best to use weights that sum to a lower total number (e.g., 38/2), and put the project token first in the list when you create the pool, so that the weight decrease would be processed first. (We may be updating the GUI to avoid this issue by lowering the "resolution" in these cases - the max for a pool with canChangeWeights enabled would then be 96%/4%.)
pokeWeightsfunction themselves to tell the contract to update weights to the proper values at the current block.)
updateWeightsGraduallyfunction to put the contract into a state where it will respond to the
pokeWeightscall by setting all the weights according to the point on the "weight curve" corresponding to the current block.
pokeWeightscan be called by you, or anyone, to update the weights according to your LBP’s configuration.
updateWeight(as long as a gradual update is not running) to set weights arbitrarily - but this will not affect the price. It will transfer tokens as required such that the new balances and weights maintain current prices.
setControllerto the account running the script (e.g., to set the swap fee dynamically based on an off-chain algorithm). To transfer it back, just call
setControlleragain from that script, setting it to your DSProxy address.