PSA bug on old version of TrieMap

DFX version 0.8.3

Using TrieMap.TrieMap

let upstream = https://github.com/dfinity/vessel-package-set/releases/download/mo-0.6.7-20210818/package-set.dhall sha256:c4bd3b9ffaf6b48d21841545306d9f69b57e79ce3b1ac5e1f63b068ca4f89957

getAllowanceSize works the first you try to get the size but after you delete X amount of records keeps the old number.

getASize works all the time.

Upgrading to dfx 0.9.3 and updating the package set dhall will fix the issue.

public query func getAllowanceSize () : async Nat {
        var size : Nat = 0;
        for ((k, v) in allowances.entries()) {
            size += v.size();
        };
        return size;
    };
    public query func getASize () : async Nat {
        var size : Nat = 0;
       
        for(spenders in allowances.entries()){
            
            for(allowee in spenders.1.entries()){
               size += 1;
            };
        }; 
        return size;
    };

1 Like