@@ -209,11 +209,14 @@ module KMIR-SPL-TOKEN
209209 ListItem(Aggregate(variantIdx(0), ListItem(Range(?SplMintKey:List)))) // Account.mint: Pubkey
210210 ListItem(Aggregate(variantIdx(0), ListItem(Range(?SplTokenOwnerKey:List)))) // Account.owner: Pubkey
211211 ListItem(Integer(?SplAmount:Int, 64, false)) // Account.amount: u64
212- ListItem(Aggregate(variantIdx(0), .List)) // COption<Pubkey> default None
212+ // Model COption<Pubkey> as Some(pubkey); None is not represented here.
213+ ListItem(Aggregate(variantIdx(1), ListItem(Aggregate(variantIdx(0), ListItem(Range(?SplDelegateKey:List))))))
213214 ListItem(Integer(?SplAccountState:Int, 8, false)) // Account.state: AccountState (repr u8)
214- ListItem(Aggregate(variantIdx(0), .List)) // COption<u64> default None
215+ // Model COption<u64> as Some(amount); None is not represented here.
216+ ListItem(Aggregate(variantIdx(1), ListItem(Integer(?SplIsNativeLamports:Int, 64, false))))
215217 ListItem(Integer(?SplDelegatedAmount:Int, 64, false)) // Account.delegated_amount: u64
216- ListItem(Aggregate(variantIdx(0), .List)) // COption<Pubkey> default None
218+ // Model COption<Pubkey> as Some(pubkey); None is not represented here.
219+ ListItem(Aggregate(variantIdx(1), ListItem(Aggregate(variantIdx(0), ListItem(Range(?SplCloseAuthKey:List))))))
217220 )
218221 )
219222 )
@@ -239,9 +242,9 @@ module KMIR-SPL-TOKEN
239242 andBool 0 <=Int ?SplAmount andBool ?SplAmount <Int (1 <<Int 64)
240243 andBool 0 <=Int ?SplAccountState andBool ?SplAccountState <Int 256
241244 andBool 0 <=Int ?SplDelegatedAmount andBool ?SplDelegatedAmount <Int (1 <<Int 64)
242- andBool #isSplCOptionPubkey(Aggregate(variantIdx(0), .List) )
243- andBool #isSplCOptionPubkey(Aggregate(variantIdx(0), .List) )
244- andBool #isSplCOptionU64(Aggregate(variantIdx(0), .List) )
245+ andBool #isSplPubkey(?SplDelegateKey )
246+ andBool #isSplPubkey(?SplCloseAuthKey )
247+ andBool 0 <=Int ?SplIsNativeLamports andBool ?SplIsNativeLamports <Int (1 <<Int 64 )
245248 [priority(30), preserves-definedness]
246249
247250 rule [cheatcode-is-spl-mint]:
@@ -277,11 +280,13 @@ module KMIR-SPL-TOKEN
277280 ),
278281 SPLDataBuffer(
279282 Aggregate(variantIdx(0),
280- ListItem(Aggregate(variantIdx(0), .List))
283+ // Model COption<Pubkey> as Some(pubkey); None is not represented here.
284+ ListItem(Aggregate(variantIdx(1), ListItem(Aggregate(variantIdx(0), ListItem(Range(?SplMintAuthorityKey:List))))))
281285 ListItem(Integer(?SplMintSupply:Int, 64, false))
282286 ListItem(Integer(?SplMintDecimals:Int, 8, false))
283287 ListItem(BoolVal(false))
284- ListItem(Aggregate(variantIdx(0), .List))
288+ // Model COption<Pubkey> as Some(pubkey); None is not represented here.
289+ ListItem(Aggregate(variantIdx(1), ListItem(Aggregate(variantIdx(0), ListItem(Range(?SplMintFreezeAuthorityKey:List))))))
285290 )
286291 )
287292 )
@@ -302,10 +307,10 @@ module KMIR-SPL-TOKEN
302307 andBool #isSplPubkey(?SplMintOwnerKey)
303308 andBool 0 <=Int ?SplMintLamports andBool ?SplMintLamports <Int 18446744073709551616
304309 andBool 0 <=Int ?SplMintRentEpoch andBool ?SplMintRentEpoch <Int 18446744073709551616
305- andBool #isSplCOptionPubkey(Aggregate(variantIdx(0), .List) )
310+ andBool #isSplPubkey(?SplMintAuthorityKey )
306311 andBool 0 <=Int ?SplMintSupply andBool ?SplMintSupply <Int (1 <<Int 64)
307312 andBool 0 <=Int ?SplMintDecimals andBool ?SplMintDecimals <Int 256
308- andBool #isSplCOptionPubkey(Aggregate(variantIdx(0), .List) )
313+ andBool #isSplPubkey(?SplMintFreezeAuthorityKey )
309314 [priority(30), preserves-definedness]
310315```
311316
0 commit comments