code: func (r *Registry) setupSpec() {
  	// first create the "bare" spec
  	r.createSpec()
  	// now create the pricing object
  	r.createPriceOracle()
  	// if balance is nil, this node has been started without swap support (swapEnabled flag is false)
  	if r.balance != nil && !reflect.ValueOf(r.balance).IsNil() {
  		// swap is enabled, so setup the hook
  		r.spec.Hook = protocols.NewAccounting(r.balance, r.prices)
  	}
  }
docs: // This is an accounted protocol, therefore we need to provide a pricing Hook to the spec
  // For simulations to be able to run multiple nodes and not override the hook's balance,
  // we need to construct a spec instance per node instance