gas

mail@pastecode.io avatar
unknown
plain_text
4 months ago
1.8 kB
14
Indexable
Шлю короче 2 обычные транзы с каким-то amount + 3 jetton транзы

Пытаюсь считать так, но тут получается что required_amount больше чем тратится на самом деле:

int required_amount = fwd_fee + get_compute_fee(WORKCHAIN, GAS_MAKER_TYPE_ONE) + (2 * get_compute_fee(WORKCHAIN, GAS_TRANSACTION)) + (3 * get_jetton_forward_fee()) + (3 * JETTON_TRANSFER_MIN_AMOUNT);

----------------------------------------------
fwd_fee:

int get_original_fwd_fee(int workchain, int fwd_fee) asm(fwd_fee workchain) "GETORIGINALFWDFEE";

int fwd_fee_from_in_msg = cs~retrieve_fwd_fee();
int fwd_fee = get_original_fwd_fee(WORKCHAIN, fwd_fee_from_in_msg);

----------------------------------------------
ГАЗ: (Газ взял из лога блюпринта)

const GAS_TRANSACTION = 100;

int get_compute_fee(int workchain, int gas_used) asm(gas_used workchain) "GETGASFEE";

----------------------------------------------
Jetton forward fee:

const JETTON_TRANSFER_BITS = 680;
const JETTON_TRANSFER_CELLS = 1;

int get_forward_fee(int workchain, int bits, int cells) asm(cells bits workchain) "GETFORWARDFEE";

(int) get_jetton_forward_fee() inline {
    return get_forward_fee(WORKCHAIN, JETTON_TRANSFER_BITS, JETTON_TRANSFER_CELLS);
}

----------------------------------------------
Jetton min amount (типа сколько нужно минимально для транзы отослать, у меня это 0.033 TON получилось) 

const JETTON_TRANSFER_MIN_AMOUNT = 33000000;

Не работает тварь, считает что тут используется 111019200 nanoTON, а по факту кушает меньше!!!!!! УУУУ!!!!!!!

Leave a Comment