Today I noticed that calling run on a simple contract such as
#![no_std]
use soroban_sdk::{contract, contractimpl, Address, Env};
#[contract]
pub struct Contract;
#[contractimpl]
impl Contract {
pub fn run(env: Env, _nft_dest: Option<Address>) {
env.storage().instance().set(&0, &0);
env.storage().persistent().set(&0, &0);
env.storage().instance().bump(2000, 2000);
env.storage().persistent().bump(&0, 2000, 2000)
}
}
Will not record ledger entry updates for expiration in the txmeta, for instance, this is the first call to a freshly deployed contract: https://goonlinetools.com/snapshot/code/#4gxklirrzzxe10u6cxjs5u
but the second call: https://goonlinetools.com/snapshot/code/#cj1it0f2f8571nvtdnci75
I'm 99,99% sure something has changed recently (past month) as we have a check in place that worked about a month ago. Am I missing something new/obvious?
cc: @thin crow