gasWanted 값을 포함합니다. 값은 단일 Msg 유형을 포함하는 트랜잭션에 대한 MsgServer 실행 중 가스 소비를 관찰하여 경험적으로 얻어졌습니다. 개념적으로 모든 트랜잭션에 다음 공식이 적용됩니다:
ante_gas는 AnteHandler 중에 소비되는 가스이고 msg_gas의 후속 합은 각 특정 msg의 MsgServer에서 소비되는 가스입니다 (관찰된 가장 높은 ante_gas는 120,000입니다).
Exchange params에서 fixed_gas_enabled가 true로 설정된 경우, 다음 값을 gasWanted로 사용하여 트랜잭션이 가스 부족으로 실패하지 않도록 할 수 있습니다:
참고: 값은 트랜잭션에 단일 메시지가 포함된 경우를 가정합니다. 권장 gasWanted는 고정 메시지 가스에 120,000 ante 허용량을 더한 값입니다.
GTB (Good Till Block) limit order의 경우, 고정 메시지 가스에
1.1(GTBOrdersGasMultiplier)을 곱한 다음 ante 허용량을 더합니다. 이 배수는 post-only 변형을 포함하여 고정 메시지 가스에만 적용됩니다. market orders나 취소에는 적용되지 않습니다.
Batch Msg 유형
Batch 메시지 유형의 가스는 메시지 내용에 따라 달라집니다. 또한 ante_gas는 orders 수에 따라 증가합니다 (3000 가스면 ante handler 여유분으로 충분한 것으로 추정됩니다).
N은 orders 수입니다.
MsgBatchCreateSpotLimitOrders:tx_gas = 120_000 + N x 183_000(3개 orders의 경우 결과는669_000)MsgBatchCancelSpotOrders:tx_gas = 120_000 + N x 68_000MsgBatchCreateDerivativeLimitOrders:tx_gas = 120_000 + N x 213_000MsgBatchCancelDerivativeOrders:tx_gas = 120_000 + N x 83_000MsgBatchCancelBinaryOptionsOrders:tx_gas = 120_000 + N x 83_000
- Market A에서 3개 spot orders 취소
- Market B에서 2개 derivative orders 생성
- Market C에서 1개 binary options post-only order 생성
- Spot markets X와 Y의 모든 orders 취소 (X에 2개 orders, Y에 2개 orders)
1_269_000 gas가 됩니다.