@kassealhq/sdk 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +15 -5
- package/SECURITY.md +1 -1
- package/STABILITY.md +2 -2
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k103.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k113.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k124.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k136.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k164.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k180.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k198.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k218.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k240.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k264.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k291.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k320.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k352.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k388.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k427.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k470.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k518.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k571.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-k629.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k1097.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k1209.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k122.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k1332.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k134.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k1468.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k147.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k161.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k1618.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k177.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k1783.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k195.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k1965.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k214.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k2166.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k235.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k2387.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k258.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k2631.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k284.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k2900.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k313.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k3197.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k344.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k3524.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k379.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k3885.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k417.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k4283.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k459.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k4722.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k506.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k5205.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k557.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k5738.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k613.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k6326.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k675.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k6974.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k744.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k7688.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k820.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k8475.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k904.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k9343.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard-lot10k-k996.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.ctor.standard.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k103.artifact.json +351 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k113.artifact.json +351 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k124.artifact.json +351 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k136.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k164.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k180.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k198.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k218.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k240.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k264.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k291.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k320.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k352.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k388.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k427.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k470.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k518.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k571.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-k629.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k1097.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k1209.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k122.artifact.json +351 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k1332.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k134.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k1468.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k147.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k161.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k1618.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k177.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k1783.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k195.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k1965.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k214.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k2166.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k235.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k2387.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k258.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k2631.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k284.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k2900.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k313.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k3197.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k344.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k3524.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k379.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k3885.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k417.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k4283.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k459.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k4722.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k506.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k5205.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k557.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k5738.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k613.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k6326.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k675.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k6974.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k744.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k7688.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k820.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k8475.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k904.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k9343.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard-lot10k-k996.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3/curve.standard.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k103.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k113.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k124.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k136.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k164.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k180.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k198.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k218.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k240.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k264.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k291.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k320.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k352.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k388.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k427.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k470.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k518.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k571.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-k629.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k1097.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k1209.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k122.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k1332.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k134.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k1468.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k147.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k161.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k1618.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k177.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k1783.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k195.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k1965.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k214.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k2166.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k235.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k2387.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k258.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k2631.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k284.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k2900.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k313.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k3197.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k344.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k3524.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k379.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k3885.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k417.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k4283.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k459.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k4722.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k506.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k5205.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k557.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k5738.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k613.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k6326.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k675.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k6974.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k744.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k7688.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k820.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k8475.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k904.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k9343.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard-lot10k-k996.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.ctor.standard.json +251 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k103.artifact.json +351 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k113.artifact.json +351 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k124.artifact.json +351 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k136.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k164.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k180.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k198.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k218.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k240.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k264.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k291.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k320.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k352.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k388.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k427.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k470.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k518.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k571.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-k629.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k1097.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k1209.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k122.artifact.json +351 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k1332.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k134.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k1468.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k147.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k161.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k1618.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k177.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k1783.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k195.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k1965.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k214.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k2166.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k235.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k2387.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k258.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k2631.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k284.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k2900.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k313.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k3197.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k344.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k3524.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k379.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k3885.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k417.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k4283.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k459.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k4722.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k506.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k5205.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k557.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k5738.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k613.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k6326.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k675.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k6974.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k744.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k7688.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k820.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k8475.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k904.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k9343.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard-lot10k-k996.artifact.json +352 -0
- package/dist/artifacts/contracts/curve/v1/artifacts/v1-kasseal-mainnet-3-tn10/curve.standard.artifact.json +352 -0
- package/dist/artifacts/contracts/pool/v1/artifacts/v1-kasseal-mainnet-3/pool.artifact.json +483 -0
- package/dist/artifacts/contracts/pool/v1/artifacts/v1-kasseal-mainnet-3/pool.ctor.json +211 -0
- package/dist/artifacts/contracts/pool/v1/artifacts/v1-kasseal-mainnet-3-tn10/pool.artifact.json +483 -0
- package/dist/artifacts/contracts/pool/v1/artifacts/v1-kasseal-mainnet-3-tn10/pool.ctor.json +211 -0
- package/dist/artifacts/manifest.json +417 -1
- package/dist/chunks/chunk-FYCRPHEE.js +4 -0
- package/dist/chunks/chunk-JZJ7MFR5.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--base-AJNCIQVW.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--curve-template-D76BLM5C.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-EDPH4T24.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k103-M4RSAMCW.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k113-3P6MWPQS.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k124-RN7TIOHF.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k136-LFSS2YXM.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k164-ZUOXU7IG.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k180-KDS2UK2P.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k198-2COA74HK.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k218-6ZPCA27B.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k240-FEEJI4DG.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k264-YQNGD55V.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k291-JA3MZKXT.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k320-PBFTKR5I.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k352-YMX2BZVM.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k388-NQIIDPNA.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k427-UWVWIP5E.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k470-HGGPCBIG.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k518-YM6AJ4L7.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k571-UPNL6OTA.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-k629-CZEEOYVF.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k1097-4P3CUID5.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k1209-I4CXZARR.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k122-K4ZVEVQC.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k1332-LXESN2GT.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k134-ZWJ6V7T5.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k1468-6EA4C4KB.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k147-Z3ZP73QP.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k161-NGG6PIKX.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k1618-BCU5LQDG.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k177-OA5LFXXM.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k1783-GNRQNL6Q.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k195-JR3GBKOR.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k1965-52LS7F62.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k214-STDHHUYN.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k2166-JKOHATL2.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k235-B4OUS3TR.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k2387-KJ5TITHZ.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k258-WZYNL2NW.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k2631-NQRZULBR.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k284-MAH7SSBF.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k2900-3NGJPTEI.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k313-GD2FIOCH.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k3197-DVDFK2YI.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k344-JK5I5NO6.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k3524-PC77RWDZ.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k379-5JZBOP3U.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k3885-7E7DDD7E.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k417-YAL5BUYS.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k4283-OHDRS3YW.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k459-YVM6WOBR.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k4722-N52JARHY.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k506-FDTQ743C.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k5205-OZMUKQ74.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k557-KHXE6IGK.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k5738-3UO37PYG.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k613-IBLOU7D7.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k6326-OAVIHQ4J.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k675-PANIRLLY.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k6974-ANEWKO4H.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k744-XOR6GG6M.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k7688-7IY5FG3D.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k820-63CDKXRD.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k8475-R7LNR7P4.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k904-HSYPHWTU.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k9343-SKDK6U7G.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3--standard-lot10k-k996-KLXV44HW.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--base-ZIFKIN6E.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--curve-template-WUVHI37W.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-ZQ3IVPJ2.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k103-JCOBOXGC.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k113-HKB7YJ6S.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k124-R2B4XYLD.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k136-EW3QLQE4.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k164-U2H5SKJJ.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k180-DET5JJHA.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k198-APVCSVRD.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k218-FZDJEU5Q.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k240-BK37GRZH.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k264-BL6GUTLQ.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k291-U2ROJLPG.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k320-SLHV6QNB.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k352-36233BEJ.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k388-LNU3KNV4.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k427-VJ6MZ4TN.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k470-XFWPLM4R.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k518-ZWRQRZC2.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k571-XXNIJHD7.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-k629-GFHKVMYT.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k1097-2UOYPV3U.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k1209-ZZBGXZQL.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k122-4CZDIIQC.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k1332-PSG4QZ4D.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k134-UH7ZIW3J.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k1468-MEMJ2IRD.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k147-4RWZDMT5.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k161-LPWAUTY3.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k1618-LFNPUXWK.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k177-5AORVQFF.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k1783-SWOJODEZ.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k195-AYH3YNKO.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k1965-EHRRXJQQ.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k214-G5EY2FGH.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k2166-SC4TW2NS.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k235-W7K3ZV25.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k2387-5VYL6TBO.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k258-VCKFOOQA.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k2631-WFYKUQ25.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k284-MLWF3PK4.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k2900-XVKQVERB.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k313-2K6O3MSB.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k3197-XZJUALDO.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k344-2JOAOD6V.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k3524-HJYB6TVL.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k379-WOVL7ATN.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k3885-ND4M2UV4.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k417-HWP5AWKK.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k4283-GONKZ5KX.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k459-Z5ZN4PNT.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k4722-YXTPDNEF.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k506-LLZHZ55C.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k5205-DJTUQNGT.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k557-OO2KGHGK.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k5738-BVORVSF2.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k613-6ZKS4NAG.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k6326-T7B55LAR.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k675-CZNSXC37.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k6974-ZU5RKJDX.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k744-ENHFDIHK.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k7688-FLJV7OJ6.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k820-FM5FPCVM.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k8475-NJQVLPVK.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k904-TMC4ZNIB.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k9343-FPQFOLCE.js +1 -0
- package/dist/chunks/v1-kasseal-mainnet-3-tn10--standard-lot10k-k996-S2LNXMEE.js +1 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.js +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/node.js +1 -1
- package/dist/web-lite-mainnet.d.ts +4 -3
- package/dist/web-lite-mainnet.js +1 -1
- package/dist/web-lite-testnet-10.d.ts +4 -3
- package/dist/web-lite-testnet-10.js +1 -1
- package/dist/web-mainnet.d.ts +4 -3
- package/dist/web-mainnet.js +1 -1
- package/dist/web-testnet-10.d.ts +4 -3
- package/dist/web-testnet-10.js +1 -1
- package/dist/web.d.ts +1 -1
- package/dist/web.js +1 -1
- package/docs/contract-artifacts.md +18 -12
- package/docs/dex-and-routers.md +2 -2
- package/docs/explorers.md +2 -2
- package/package.json +1 -1
- package/dist/chunks/chunk-6UK3FMYW.js +0 -1
- package/dist/chunks/chunk-YVPNG55E.js +0 -4
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a}from"./chunk-XLPNXOE2.js";var La=class extends Error{static{a(this,"NotSupported")}constructor(t,n){super(`${t} is not supported by the "${n}" data source`);this.name="NotSupported"}};var yt=class extends Error{static{a(this,"LayoutError")}constructor(t){super(t);this.name=new.target.name}};var wn=class extends yt{static{a(this,"UnknownTemplateError")}templateHash;constructor(t){super(`unknown template hash ${t}: refusing to decode. A program is decodable only after its state offset and identifier semantics have been verified and registered. Never infer them.`);this.templateHash=t}};var bo=class extends yt{static{a(this,"TemplateMismatchError")}expected;computed;constructor(t,n){super(`template hash mismatch: caller asserted ${t} but the program hashes to ${n}`);this.expected=t;this.computed=n}};var ho=class extends yt{static{a(this,"TemplateNotDecodableError")}templateHash;constructor(t,n){super(`template ${t} is recognised but not decodable: ${n}`);this.templateHash=t}};var N=class extends yt{static{a(this,"DecodeError")}};var D=class extends yt{static{a(this,"ValidationError")}};var at=class extends yt{static{a(this,"SupplyError")}};var br=class extends yt{static{a(this,"OwnershipError")}};var Q=class extends yt{static{a(this,"TransferError")}};var ji=0;var Vi=76;var Gi=77;var qi=78;var Wi=79;var zi=81;var Tc=75;function ae(e){const t=e.length;if(t===0)return Uint8Array.of(ji);if(t<=Tc)return E(Uint8Array.of(t),e);if(t<=255)return E(Uint8Array.of(Vi,t),e);if(t<=65535)return E(Uint8Array.of(Gi,t&255,t>>>8),e);if(t<=4294967295){return E(Uint8Array.of(qi,t&255,t>>>8&255,t>>>16&255,t>>>24&255),e)}throw new D(`payload too large to push: ${t} bytes`)}a(ae,"encodePushExplicit");function ie(e){if(e.length===1){const t=e[0];if(t>=1&&t<=16)return Uint8Array.of(zi+t-1);if(t===129)return Uint8Array.of(Wi)}return ae(e)}a(ie,"encodePushMinimal");function xn(e,t){if(t>=e.length){throw new N(`truncated: expected a push at offset ${t}, buffer is ${e.length} bytes`)}const n=e[t];if(n===ji)return{payload:new Uint8Array(0),next:t+1};let r;let o;if(n<=Tc){r=n;o=1}else if(n===Vi){r=Hi(e,t+1,1)[0];o=2;if(r<=Tc)throw Ac(n,r,t)}else if(n===Gi){const c=Hi(e,t+1,2);r=c[0]|c[1]<<8;o=3;if(r<=255)throw Ac(n,r,t)}else if(n===qi){const c=Hi(e,t+1,4);r=(c[0]|c[1]<<8|c[2]<<16|c[3]<<24)>>>0;o=5;if(r<=65535)throw Ac(n,r,t)}else{throw new N(`offset ${t}: opcode 0x${n.toString(16).padStart(2,"0")} is not a PushExplicit data push`)}const i=t+o;const s=Hi(e,i,r);return{payload:s,next:i+r}}a(xn,"readPushExplicit");function Ac(e,t,n){return new N(`offset ${n}: non-canonical push -- opcode 0x${e.toString(16)} used for a ${t}-byte payload`)}a(Ac,"nonCanonical");function Hi(e,t,n){if(t+n>e.length){throw new N(`truncated: need ${n} bytes at offset ${t}, have ${e.length-t}`)}return e.subarray(t,t+n)}a(Hi,"need");var bt=8;var ht=(1n<<63n)-1n;var ig=-ht;function it(e){if(typeof e!=="bigint"){throw new D(`int state value must be a bigint, got ${typeof e}`)}if(e>ht||e<ig){throw new D(`int out of KCC1 range: ${e}`)}const t=e<0n;let n=t?-e:e;const r=new Uint8Array(bt);for(let o=0;o<bt;o++){r[o]=Number(n&0xffn);n>>=8n}if(t)r[bt-1]|=128;return r}a(it,"encodeIntState");function Jn(e){if(e.length!==bt){throw new N(`int state payload must be ${bt} bytes, got ${e.length}`)}const t=(e[bt-1]&128)!==0;let n=0n;for(let r=bt-1;r>=0;r--){const o=r===bt-1?e[r]&127:e[r];n=n<<8n|BigInt(o)}if(t&&n===0n){throw new N("non-canonical int: negative zero")}return t?-n:n}a(Jn,"decodeIntState");function Gu(e){return Uint8Array.of(e?1:0)}a(Gu,"encodeBoolState");function qu(e){if(e.length!==1||e[0]!==0&&e[0]!==1){throw new N(`bool payload must be exactly 00 or 01, got ${h(e)}`)}return e[0]===1}a(qu,"decodeBoolState");function E(...e){const t=e.reduce((o,i)=>o+i.length,0);const n=new Uint8Array(t);let r=0;for(const o of e){n.set(o,r);r+=o.length}return n}a(E,"concat");function h(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}a(h,"toHex");function _(e){const t=e.startsWith("0x")?e.slice(2):e;if(t.length%2!==0||/[^0-9a-fA-F]/.test(t)){throw new N(`invalid hex string: ${e.slice(0,32)}...`)}const n=new Uint8Array(t.length/2);for(let r=0;r<n.length;r++)n[r]=parseInt(t.slice(r*2,r*2+2),16);return n}a(_,"fromHex");function M(e,t){if(e.length!==t.length)return false;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return false;return true}a(M,"bytesEqual");var Ju=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]);var je=[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],[14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],[11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4],[7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8],[9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13],[2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9],[12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11],[13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10],[6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5],[10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],[14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3]].flat().map(e=>2*e);var hr=128;var H=new Uint32Array(32);var Ra=new Uint32Array(32);function Ji(e,t){const n=H[e]+H[t];let r=H[e+1]+H[t+1];if(n>=4294967296)r++;H[e]=n;H[e+1]=r}a(Ji,"add64vv");function Wu(e,t,n){const r=H[e]+t;let o=H[e+1]+n;if(r>=4294967296)o++;H[e]=r;H[e+1]=o}a(Wu,"add64vc");function Xn(e,t,n,r,o,i){Ji(e,t);Wu(e,Ra[o],Ra[o+1]);let s=H[r]^H[e];let c=H[r+1]^H[e+1];H[r]=c;H[r+1]=s;Ji(n,r);s=H[t]^H[n];c=H[t+1]^H[n+1];H[t]=s>>>24^c<<8;H[t+1]=c>>>24^s<<8;Ji(e,t);Wu(e,Ra[i],Ra[i+1]);s=H[r]^H[e];c=H[r+1]^H[e+1];H[r]=s>>>16^c<<16;H[r+1]=c>>>16^s<<16;Ji(n,r);s=H[t]^H[n];c=H[t+1]^H[n+1];H[t]=c>>>31^s<<1;H[t+1]=s>>>31^c<<1}a(Xn,"g");function Pc(e,t,n,r,o){for(let i=0;i<16;i++){H[i]=e[i];H[i+16]=Ju[i]}H[24]=H[24]^r>>>0;H[25]=H[25]^Math.floor(r/4294967296);if(o){H[28]=~H[28];H[29]=~H[29]}for(let i=0;i<32;i++){const s=n+4*i;Ra[i]=t[s]|t[s+1]<<8|t[s+2]<<16|t[s+3]<<24}for(let i=0;i<12;i++){const s=i*16;Xn(0,8,16,24,je[s],je[s+1]);Xn(2,10,18,26,je[s+2],je[s+3]);Xn(4,12,20,28,je[s+4],je[s+5]);Xn(6,14,22,30,je[s+6],je[s+7]);Xn(0,10,20,30,je[s+8],je[s+9]);Xn(2,12,22,24,je[s+10],je[s+11]);Xn(4,14,16,26,je[s+12],je[s+13]);Xn(6,8,18,28,je[s+14],je[s+15])}for(let i=0;i<16;i++)e[i]=e[i]^H[i]^H[i+16]}a(Pc,"compress");function wo(e,{outLen:t=32,key:n=new Uint8Array(0)}={}){if(!Number.isInteger(t)||t<1||t>64)throw new RangeError(`blake2b: outLen must be 1..64, got ${t}`);if(n.length>64)throw new RangeError(`blake2b: key must be at most 64 bytes, got ${n.length}`);const r=Ju.slice();r[0]=r[0]^(16842752^n.length<<8^t);let o=e;if(n.length>0){const s=new Uint8Array(hr);s.set(n);o=E(s,e)}if(o.length===0){Pc(r,new Uint8Array(hr),0,0,true)}else{const s=Math.ceil(o.length/hr);for(let d=0;d<s-1;d++)Pc(r,o,d*hr,(d+1)*hr,false);const c=new Uint8Array(hr);c.set(o.subarray((s-1)*hr));Pc(r,c,0,o.length,true)}const i=new Uint8Array(t);for(let s=0;s<t;s++)i[s]=r[s>>2]>>>8*(s&3);return i}a(wo,"blake2b");var sg=256;var zu=64;var kr=[];function cg(e,t){if(e.length!==t.length)return false;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return false;return true}a(cg,"sameBytes");function se(e){if(e.length<sg)return E(Uint8Array.of(170,32),wo(e,{outLen:32}),Uint8Array.of(135));for(let n=0;n<kr.length;n++){const r=kr[n];if(cg(r.program,e)){if(n>0){kr.splice(n,1);kr.unshift(r)}return Uint8Array.from(r.spk)}}const t=E(Uint8Array.of(170,32),wo(e,{outLen:32}),Uint8Array.of(135));kr.unshift({program:Uint8Array.from(e),spk:Uint8Array.from(t)});if(kr.length>zu)kr.length=zu;return t}a(se,"p2shScript");function dg(e,t){return h(e)===h(se(t))}a(dg,"p2shCommitsTo");function ko(e,t){const n=new Uint8Array(t);let r=BigInt(e);if(r<0n)throw new RangeError("le: negative value");for(let o=0;o<t;o++){n[o]=Number(r&0xffn);r>>=8n}if(r!==0n)throw new RangeError(`le: value does not fit in ${t} bytes`);return n}a(ko,"le");var ug=new TextEncoder().encode("CovenantID");function tt(e,t,n){const r=[_(e),ko(t,4),ko(n.length,8)];for(const o of n){r.push(ko(o.index,4),ko(o.value,8),ko(o.scriptVersion,2),ko(o.script.length,8),o.script)}return h(wo(E(...r),{outLen:32,key:ug}))}a(tt,"covenantIdKip20");var de=class extends N{static{a(this,"StateCodecError")}};var Xu=["v1"];function vo(e){switch(e){case"v3":return e;case"v1":return"v3";default:throw new de(`unknown contract set ${String(e)}`)}}a(vo,"poolStateLayoutOf");var s1=1;var vn=53;var c1=1;var wr=139;var nt=36;var Ve=new Uint8Array(32);var Xi=0;var kt=4;var xr=0;var wt=1;var Yu=1000000n;function Cc(e){vo(e);return wr}a(Cc,"poolStateLength");function d1(e){return e===wr?"v3":void 0}a(d1,"poolStateSetOfLength");function So(e){return"v3"}a(So,"poolStateSet");function Ua(e){return!M(e.lpCovId,Ve)}a(Ua,"isPoolBound");function vr(e){switch(e){case"v1":return"v2";default:throw new de(`unknown contract set ${String(e)}`)}}a(vr,"feeModelOf");function Jt(e){return e.length===nt&&e[0]===0&&e[1]===0&&e[2]===32&&e[35]===172}a(Jt,"isP2pkSpk36");function lg(e,t){if(!Number.isInteger(e)||e<0||e>255)throw new de(`${t} must be a byte`);return Uint8Array.of(e)}a(lg,"byteField");function Qu(e){let t=0;return{next(n){let r;try{r=xn(e,t)}catch(o){throw new de(o.message)}if(r.payload.length!==n)throw new de(`field at ${t}: ${r.payload.length} bytes, expected ${n}`);t=r.next;return r.payload},end(){if(t!==e.length)throw new de(`trailing bytes: consumed ${t} of ${e.length}`)}}}a(Qu,"reader");function xo(e){try{return Jn(e)}catch(t){throw new de(t.message)}}a(xo,"intField");function fg(e){const t=e[0];if(t===void 0)throw new de("byte field is empty");return t}a(fg,"byteOf");function Ao(e){if(e.tokenCovId.length!==32)throw new de("curve state: tokenCovId must be 32 bytes");const t=lg(e.phase,"curve state: phase");if(e.lotsSold<0n||e.feeAccrued<0n)throw new de("curve state: lotsSold and feeAccrued must be non-negative");const n=E(ae(e.tokenCovId),ae(it(e.lotsSold)),ae(it(e.feeAccrued)),ae(t));if(n.length!==vn)throw new de(`curve state encodes to ${n.length} B`);return n}a(Ao,"encodeCurveState");function To(e){if(e.length!==vn)throw new de(`curve state must be ${vn} B, got ${e.length}`);const t=Qu(e);const n={tokenCovId:Uint8Array.from(t.next(32)),lotsSold:xo(t.next(8)),feeAccrued:xo(t.next(8)),phase:fg(t.next(1))};t.end();if(!M(Ao(n),e))throw new de("curve state does not round-trip");return n}a(To,"decodeCurveState");function Ec(e){if(e.tokenCovId.length!==32)throw new de("pool state: tokenCovId must be 32 bytes");if(e.creatorSpk===void 0)throw new de("pool state: creatorSpk is required");if(e.creatorSpk.length!==nt)throw new de(`pool state: creatorSpk must be ${nt} bytes`);if(e.lpCovId===void 0||e.lpCovId.length!==32)throw new de("pool state: lpCovId must be 32 bytes");const t=E(ae(e.tokenCovId),ae(it(e.kasScaled)),ae(it(e.tokenReserve)),ae(it(e.lpShares)),ae(e.lpCovId),ae(it(e.feeAccruedScaled)),ae(e.creatorSpk));if(t.length!==wr)throw new de(`pool state encodes to ${t.length} B, expected ${wr}`);return t}a(Ec,"encodePoolState");function Oc(e,t){if(t!==void 0)vo(t);if(e.length!==wr)throw new de(`pool state must be ${wr} B, got ${e.length}`);const n=Qu(e);const r={tokenCovId:Uint8Array.from(n.next(32)),kasScaled:xo(n.next(8)),tokenReserve:xo(n.next(8)),lpShares:xo(n.next(8))};const o=Uint8Array.from(n.next(32));const i={...r,lpCovId:o,feeAccruedScaled:xo(n.next(8)),creatorSpk:Uint8Array.from(n.next(nt))};n.end();if(!M(Ec(i),e))throw new de("pool state does not round-trip");return i}a(Oc,"decodePoolState");var nl=32;var Co=64;var Zu=1024;var pg=1<<0;var mg=1<<1;var gg=1<<2;var yg=1<<3;var Na=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];var bg=[2,6,3,10,7,0,4,13,1,11,12,5,9,14,15,8];function Yi(e,t){return(e>>>t|e<<32-t)>>>0}a(Yi,"rotr");function Yn(e,t,n,r,o,i,s){e[t]=e[t]+e[n]+i>>>0;e[o]=Yi(e[o]^e[t],16);e[r]=e[r]+e[o]>>>0;e[n]=Yi(e[n]^e[r],12);e[t]=e[t]+e[n]+s>>>0;e[o]=Yi(e[o]^e[t],8);e[r]=e[r]+e[o]>>>0;e[n]=Yi(e[n]^e[r],7)}a(Yn,"g");function Sr(e,t){Yn(e,0,4,8,12,t[0],t[1]);Yn(e,1,5,9,13,t[2],t[3]);Yn(e,2,6,10,14,t[4],t[5]);Yn(e,3,7,11,15,t[6],t[7]);Yn(e,0,5,10,15,t[8],t[9]);Yn(e,1,6,11,12,t[10],t[11]);Yn(e,2,7,8,13,t[12],t[13]);Yn(e,3,4,9,14,t[14],t[15])}a(Sr,"round");function Po(e){const t=new Uint32Array(16);for(let n=0;n<16;n++)t[n]=e[bg[n]];return t}a(Po,"permute");function $c(e,t,n,r,o){const i=n%4294967296;const s=Math.floor(n/4294967296);const c=new Uint32Array(16);for(let l=0;l<8;l++)c[l]=e[l];c[8]=Na[0];c[9]=Na[1];c[10]=Na[2];c[11]=Na[3];c[12]=i>>>0;c[13]=s>>>0;c[14]=r>>>0;c[15]=o>>>0;let d=t;Sr(c,d);d=Po(d);Sr(c,d);d=Po(d);Sr(c,d);d=Po(d);Sr(c,d);d=Po(d);Sr(c,d);d=Po(d);Sr(c,d);d=Po(d);Sr(c,d);for(let l=0;l<8;l++){c[l]=(c[l]^c[l+8])>>>0;c[l+8]=(c[l+8]^e[l])>>>0}return c}a($c,"compress");function el(e){const t=new Uint32Array(16);for(let n=0;n<16;n++){const r=n*4;t[n]=(e[r]|e[r+1]<<8|e[r+2]<<16|e[r+3]<<24)>>>0}return t}a(el,"wordsFromLEBytes");function _c(e){return $c(e.cv,e.block,e.counter,e.blockLen,e.flags).subarray(0,8)}a(_c,"chainingValue");function hg(e,t){const n=new Uint8Array(t);let r=0;let o=0;while(o<t){const i=$c(e.cv,e.block,r,e.blockLen,e.flags|yg);for(let s=0;s<16&&o<t;s++){const c=i[s];for(let d=0;d<4&&o<t;d++)n[o++]=c>>>8*d&255}r++}return n}a(hg,"rootBytes");var Qi=class{static{a(this,"ChunkState")}cv;chunkCounter;block=new Uint8Array(Co);blockLen=0;blocksCompressed=0;constructor(t,n){this.cv=Uint32Array.from(t);this.chunkCounter=n}len(){return Co*this.blocksCompressed+this.blockLen}startFlag(){return this.blocksCompressed===0?pg:0}update(t){let n=0;while(n<t.length){if(this.blockLen===Co){this.cv=$c(this.cv,el(this.block),this.chunkCounter,Co,this.startFlag()).subarray(0,8);this.blocksCompressed++;this.block.fill(0);this.blockLen=0}const r=Co-this.blockLen;const o=Math.min(r,t.length-n);this.block.set(t.subarray(n,n+o),this.blockLen);this.blockLen+=o;n+=o}}output(){return{cv:this.cv,block:el(this.block),counter:this.chunkCounter,blockLen:this.blockLen,flags:this.startFlag()|mg}}};function tl(e,t,n){const r=new Uint32Array(16);r.set(e,0);r.set(t,8);return{cv:n,block:r,counter:0,blockLen:Co,flags:gg}}a(tl,"parentOutput");var Ic=class{static{a(this,"Blake3Hasher")}#e=Uint32Array.from(Na);#t=new Qi(this.#e,0);#n=[];update(t){let n=0;while(n<t.length){if(this.#t.len()===Zu){const i=_c(this.#t.output());const s=this.#t.chunkCounter+1;this.#r(i,s);this.#t=new Qi(this.#e,s)}const r=Zu-this.#t.len();const o=Math.min(r,t.length-n);this.#t.update(t.subarray(n,n+o));n+=o}return this}#r(t,n){let r=t;let o=n;while((o&1)===0){r=_c(tl(this.#n.pop(),r,this.#e));o=Math.floor(o/2)}this.#n.push(r)}digest(t=nl){let n=this.#t.output();for(let r=this.#n.length-1;r>=0;r--){n=tl(this.#n[r],_c(n),this.#e)}return hg(n,t)}};function Eo(e,t=nl){return new Ic().update(e).digest(t)}a(Eo,"blake3");function Oo(e){switch(e.semantic){case"pubkey":return{kind:"signature",semantic:"pubkey",pubkey:e.identifier};case"p2pkh-schnorr":case"p2pkh-ecdsa":return{kind:"signature-with-pubkey-reveal",semantic:e.semantic,pubkeyHash:e.identifier};case"script-hash":return{kind:"p2sh-input",semantic:"script-hash",scriptHash:e.identifier};case"covenant-id":return{kind:"covenant-input",semantic:"covenant-id",covenantId:e.identifier}}}a(Oo,"describeAuth");var Sn="kcc0020-112";var Ar=112;var Ge=32;var Xt=new Map([[0,"pubkey"],[1,"p2pkh-schnorr"],[2,"p2pkh-ecdsa"],[3,"script-hash"],[4,"covenant-id"]]);var kg=new Map([["pubkey","p2pk-schnorr/v1"],["p2pkh-schnorr","p2pkh-schnorr/v1"],["p2pkh-ecdsa","p2pkh-ecdsa/v1"],["script-hash","p2sh/v1"],["covenant-id","covenant-id/v1"]]);var il=0;var rs=1;var sl=2;var cl=3;var Uc=new Map([[il,"disabled/v1"],[rs,"amount-threshold/v1"],[sl,"schnorr-signature/v1"],[cl,"hash-chain/v1"]]);var wg=0;var xg=1;var Tn=3;var Cr=3;var Zi=65;var es=32;var Lc=33;var rl=129;var _o=Object.freeze({transfer:Object.freeze({signature:"transfer({int,byte[32],byte,byte,byte[32],byte[32]}[],byte[])",tagHex:"79c71c23"}),transferDelegator:Object.freeze({signature:"transfer_delegator(byte[])",tagHex:"fd3ef14a"})});function dl(e){return Eo(new TextEncoder().encode(e)).slice(0,4)}a(dl,"dispatchTag");var Qn="borrowScheme";var Tr="borrowGuard";var Pr="extensionCommitment";var ol=new Uint8Array(Ge);function xt(e,t=Xt){const n=t.get(e.ownerScheme);if(n===void 0){throw new D(`owner_scheme ${An(e.ownerScheme)} is not defined by this template (known: ${Nc(t)})`)}const r={layoutId:Sn,amount:e.amount,owner:{schemeByte:e.ownerScheme,semantic:n,identifier:Uint8Array.from(e.owner)},mintCapable:null,extra:Object.freeze({[Qn]:Uint8Array.of(e.borrowScheme),[Tr]:Uint8Array.from(e.borrowGuard??ol),[Pr]:Uint8Array.from(e.extensionCommitment??ol)})};vt.validate(r,t);return r}a(xt,"makeKcc0020State");function rt(e,t=Xt){vt.validate(e,t);return{amount:e.amount,owner:e.owner.identifier,ownerScheme:e.owner.schemeByte,borrowScheme:e.extra[Qn][0],borrowGuard:e.extra[Tr],extensionCommitment:e.extra[Pr]}}a(rt,"kcc0020Fields");function ts(e){return Cg(e,Qn)}a(ts,"borrowSchemeOf");function ns(e){return gl(e,Tr)}a(ns,"borrowGuardOf");function Rc(e){return gl(e,Pr)}a(Rc,"extensionCommitmentOf");function ul(e){const t=new Uint8Array(Ge);t.set(it(e),0);return t}a(ul,"thresholdGuard");function vg(e){if(e.length!==Ge)throw new D(`borrow_guard must be ${Ge} bytes, got ${e.length}`);const t=(e[7]&128)!==0;let n=0n;for(let o=7;o>=0;o--){const i=o===7?e[o]&127:e[o];n=n<<8n|BigInt(i)}const r=t?-n:n;return{decoded:r,effective:r<0n?0n:r}}a(vg,"decodeThresholdGuard");function ll(e,t){if(t.length!==Ge)throw new D(`covenant id must be ${Ge} bytes, got ${t.length}`);return e.owner.semantic==="covenant-id"&&M(e.owner.identifier,t)}a(ll,"isSelfOwned");function Ba(e,t,n="token output"){if(ll(e,t)){throw new Q(`${n} is self-owned: owner_scheme covenant-id/v1 with owner == its own covenant id ${h(t)} is anyone-can-spend; refusing to construct it`)}}a(Ba,"assertNotSelfOwned");var vt={id:Sn,stateLength:Ar,referenceSchemes:Xt,encode(e,t=Xt){this.validate(e,t);const n=E(ae(it(e.amount)),ae(e.owner.identifier),ae(Uint8Array.of(e.owner.schemeByte)),ae(e.extra[Qn]),ae(e.extra[Tr]),ae(e.extra[Pr]));if(n.length!==Ar){throw new D(`encoded ${n.length} bytes, expected ${Ar}`)}return n},decode(e,t){if(e.length!==Ar){throw new N(`${Sn} state must be exactly ${Ar} bytes, got ${e.length}`)}let n=0;const r=a((p,m)=>{const y=xn(e,n);if(y.payload.length!==m)throw new N(`${p} must be ${m} bytes, got ${y.payload.length}`);n=y.next;return y.payload},"field");const o=Jn(r("amount",8));const i=r("owner",Ge);const s=r("owner_scheme",1)[0];const c=r("borrow_scheme",1)[0];const d=r("borrow_guard",Ge);const l=r("extension_commitment",Ge);if(n!==e.length)throw new N(`trailing bytes: consumed ${n} of ${e.length}`);if(o<0n)throw new N(`negative amount ${o} in state ${h(e)}`);const u=t.get(s);if(u===void 0){throw new N(`owner_scheme ${An(s)} is not defined by this template (known: ${Nc(t)}). Refusing to guess an owner.`)}if(!Uc.has(c)){throw new N(`borrow_scheme ${An(c)} is unassigned (known: 0x00..0x03)`)}return{layoutId:Sn,amount:o,owner:{schemeByte:s,semantic:u,identifier:Uint8Array.from(i)},mintCapable:null,extra:Object.freeze({[Qn]:Uint8Array.of(c),[Tr]:Uint8Array.from(d),[Pr]:Uint8Array.from(l)})}},validate(e,t=Xt){if(e===null||typeof e!=="object")throw new D("state must be an object");if(e.layoutId!==Sn)throw new D(`expected ${Sn}, got ${String(e.layoutId)}`);if(typeof e.amount!=="bigint")throw new D(`amount must be a bigint, got ${typeof e.amount}`);if(e.amount<0n)throw new D(`amount must be non-negative, got ${e.amount}`);if(e.amount>ht)throw new D(`amount ${e.amount} exceeds the KCC1 int range`);const n=e.owner;if(n===null||typeof n!=="object")throw new D("owner must be an object");if(!(n.identifier instanceof Uint8Array)||n.identifier.length!==Ge){throw new D(`owner must be a ${Ge}-byte Uint8Array`)}if(!Number.isInteger(n.schemeByte)||n.schemeByte<0||n.schemeByte>255){throw new D(`owner_scheme must be a single byte, got ${String(n.schemeByte)}`)}const r=t.get(n.schemeByte);if(r===void 0){throw new D(`owner_scheme ${An(n.schemeByte)} is not defined by this template (known: ${Nc(t)})`)}if(r!==n.semantic){throw new D(`owner_scheme ${An(n.schemeByte)} means '${r}' under this template, but the state claims '${String(n.semantic)}'`)}if(e.mintCapable!==null){throw new D(`${Sn} has no minter concept; mintCapable must be null, got ${String(e.mintCapable)}`)}const o=e.extra;if(o===null||typeof o!=="object")throw new D("extra must be an object");const i=o[Qn];if(!(i instanceof Uint8Array)||i.length!==1){throw new D(`extra.${Qn} must be a 1-byte Uint8Array`)}if(!Uc.has(i[0])){throw new D(`borrow_scheme ${An(i[0])} is unassigned (known: 0x00..0x03)`)}for(const c of[Tr,Pr]){const d=o[c];if(!(d instanceof Uint8Array)||d.length!==Ge){throw new D(`extra.${c} must be a ${Ge}-byte Uint8Array`)}}const s=Object.keys(o);if(s.length!==3){throw new D(`extra must hold exactly ${Qn}, ${Tr}, ${Pr}; got ${s.join(", ")}`)}},checkOwnershipTransition(e,t){pl(e,t,Tn,Cr,Xt);return e.map(n=>Oo(n.state.owner))},checkSupply(e,t){if(e.length===0)throw new at("a transition must consume at least one state");for(const n of[...e,...t])this.validate(n.state);fl(e,t)}};function fl(e,t){const n=e.reduce((o,i)=>o+i.state.amount,0n);const r=t.reduce((o,i)=>o+i.state.amount,0n);if(n>ht)throw new at(`total input amount ${n} exceeds the KCC1 int range`);if(n!==r){throw new at(`supply not conserved: in=${n} out=${r} (delta ${r-n})`)}return n}a(fl,"checkConservation");function pl(e,t,n,r,o){if(e.length===0)throw new Q("a transfer must consume at least one state");if(e.length>n)throw new Q(`${e.length} token inputs exceed max_token_inputs ${n}`);if(t.length>r)throw new Q(`${t.length} token outputs exceed max_token_outputs ${r}`);for(const s of[...e,...t])vt.validate(s.state,o);const i=Rc(e[0].state);for(const s of e){if(!M(Rc(s.state),i)){throw new Q(`input ${s.index}: extension_commitment differs from the leader's`)}}for(const s of t){if(!M(Rc(s.state),i)){throw new Q(`output ${s.index}: extension_commitment differs from the inputs'`)}}}a(pl,"checkFamilyShape");function Sg(e,t){const n=a((r,o)=>{if(e.length!==r){throw new Q(`${kg.get(t.semantic)} owner-authentication bytes must be ${o} (${r} bytes), got ${e.length}`)}},"want");switch(t.semantic){case"pubkey":n(Zi,"a 65-byte signature");return{scheme:"p2pk-schnorr/v1",signature:e};case"p2pkh-schnorr":{n(es+Zi,"a 32-byte public key then a 65-byte signature");const r=e.subarray(0,es);al(r,t.identifier);return{scheme:"p2pkh-schnorr/v1",pubkey:r,signature:e.subarray(es)}}case"p2pkh-ecdsa":{n(Lc+Zi,"a 33-byte compressed public key then a 65-byte signature");const r=e.subarray(0,Lc);al(r,t.identifier);return{scheme:"p2pkh-ecdsa/v1",pubkey:r,signature:e.subarray(Lc)}}case"script-hash":n(1,"one unsigned byte, the authority input index");return{scheme:"p2sh/v1",authorityInputIndex:e[0]};case"covenant-id":n(0,"empty");return{scheme:"covenant-id/v1"}}}a(Sg,"parseOwnerWitness");function al(e,t){const n=Eo(e);if(!M(n,t)){throw new Q(`revealed public key hashes to ${h(n)}, but the state's owner is ${h(t)}`)}}a(al,"requireKeyHash");function Ag(e,t){switch(t){case il:throw new Q("borrow_scheme is disabled/v1: borrowing is rejected");case rs:if(e.length!==0)throw new Q(`amount-threshold/v1 borrow witness must be empty, got ${e.length} bytes`);return{scheme:"amount-threshold/v1"};case sl:if(e.length!==Zi){throw new Q(`schnorr-signature/v1 borrow witness must be a 65-byte signature, got ${e.length} bytes`)}return{scheme:"schnorr-signature/v1",signature:e};case cl:if(e.length!==rl){throw new Q(`hash-chain/v1 borrow witness must be exactly ${rl} bytes, got ${e.length}`)}return{scheme:"hash-chain/v1",nextBorrowGuard:e.subarray(0,32),oneTimePubkey:e.subarray(32,64),signature:e.subarray(64)};default:throw new Q(`borrow_scheme ${An(t)} is unassigned`)}}a(Ag,"parseBorrowWitness");function Tg(e,t){if(e.length!==Ge||t.length!==es){throw new D(`hash-chain link needs a 32-byte value and a 32-byte key, got ${e.length} and ${t.length}`)}return Eo(E(e,t))}a(Tg,"hashChainLink");function ml(e){const t=e.schemes??Xt;const n=e.maxTokenInputs??Tn;const r=e.maxTokenOutputs??Cr;pl(e.inputs,e.outputs,n,r,t);const o=fl(e.inputs,e.outputs);if(!(e.witness instanceof Uint8Array)||e.witness.length===0){throw new Q("leader witness must carry a path byte")}const i=e.witness[0];const s=e.witness.subarray(1);const c=e.inputs[0].state;let d;let l;if(i===wg){l="normal";d={kind:"owner",requirement:Oo(c.owner),witness:Sg(s,c.owner)}}else if(i===xg){l="borrowed";d=Pg(e.inputs[0],e.outputs[0],s)}else{throw new Q(`witness path byte ${An(i)} is reserved`)}const u=[];if(e.covenantId!==void 0){e.outputs.forEach((p,m)=>{if(ll(p.state,e.covenantId))u.push(m)})}return{path:l,leader:d,delegators:e.inputs.slice(1).map(p=>Oo(p.state.owner)),totalAmount:o,selfOwnedOutputs:u}}a(ml,"checkTransfer");function Pg(e,t,n){if(t===void 0)throw new Q("a borrowed receive needs a successor at next_states[0]");const r=e.state;const o=t.state;const i=ts(r);const s=ns(r);const c=Ag(n,i);let d=0n;let l=s;let u;switch(c.scheme){case"amount-threshold/v1":d=vg(s).effective;break;case"schnorr-signature/v1":u=s;break;case"hash-chain/v1":{const m=Tg(c.nextBorrowGuard,c.oneTimePubkey);if(!M(m,s)){throw new Q(`revealed link hashes to ${h(m)}, not to the leader's borrow_guard ${h(s)}`)}l=c.nextBorrowGuard;u=c.oneTimePubkey;break}}const p=o.amount-r.amount;if(p<0n){throw new Q(`borrowed successor amount ${o.amount} is smaller than the leader's ${r.amount}`)}if(p<=d){throw new Q(`amount increase ${p} does not strictly exceed the effective threshold ${d}`)}if(!M(o.owner.identifier,r.owner.identifier))throw new Q("borrowed successor does not preserve owner");if(o.owner.schemeByte!==r.owner.schemeByte)throw new Q("borrowed successor does not preserve owner_scheme");if(ts(o)!==i)throw new Q("borrowed successor does not preserve borrow_scheme");if(!M(ns(o),l)){throw new Q(`borrowed successor does not carry the expected next_borrow_guard ${h(l)}`)}if(e.kasValue!==void 0&&t.kasValue!==void 0&&t.kasValue<e.kasValue){throw new Q(`borrowed successor output carries ${t.kasValue} sompi, less than the borrowed input's ${e.kasValue}`)}return{kind:"borrow",scheme:i,schemeName:Uc.get(i),witness:c,increase:p,effectiveThreshold:d,...u===void 0?{}:{signer:u}}}a(Pg,"checkBorrowedReceive");function os(e,t,n=Xt){if(e.length>Cr){throw new Q(`${e.length} next_states exceed max_token_outputs ${Cr}`)}const r=e.map(d=>rt(d,n));const o=a(d=>ie(E(...r.map(d))),"group");const i=[o(d=>it(d.amount)),o(d=>d.owner),o(d=>Uint8Array.of(d.ownerScheme)),o(d=>Uint8Array.of(d.borrowScheme)),o(d=>d.borrowGuard),o(d=>d.extensionCommitment)];const s=ie(t);const c=ie(_(_o.transfer.tagHex));return{groupedFieldPushes:i,witnessPush:s,dispatchTagPush:c,bytes:E(...i,s,c)}}a(os,"encodeTransferArguments");var An=a(e=>"0x"+e.toString(16).padStart(2,"0"),"hex2");var Nc=a(e=>[...e.keys()].map(An).join(", "),"knownSchemes");function Cg(e,t){const n=e.extra?.[t];if(!(n instanceof Uint8Array)||n.length!==1)throw new D(`extra.${t} must be a 1-byte Uint8Array`);return n[0]}a(Cg,"extraByte");function gl(e,t){const n=e.extra?.[t];if(!(n instanceof Uint8Array)||n.length!==Ge)throw new D(`extra.${t} must be a ${Ge}-byte Uint8Array`);return n}a(gl,"extra32");var Eg=32;var Io=64;var yl=1024;var Og=1<<0;var _g=1<<1;var Ig=1<<2;var $g=1<<3;var Lg=1<<4;var as=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];var Rg=[2,6,3,10,7,0,4,13,1,11,12,5,9,14,15,8];var is=a((e,t)=>(e>>>t|e<<32-t)>>>0,"rotr");function Zn(e,t,n,r,o,i,s){e[t]=e[t]+e[n]+i>>>0;e[o]=is(e[o]^e[t],16);e[r]=e[r]+e[o]>>>0;e[n]=is(e[n]^e[r],12);e[t]=e[t]+e[n]+s>>>0;e[o]=is(e[o]^e[t],8);e[r]=e[r]+e[o]>>>0;e[n]=is(e[n]^e[r],7)}a(Zn,"g");function bl(e,t){Zn(e,0,4,8,12,t[0],t[1]);Zn(e,1,5,9,13,t[2],t[3]);Zn(e,2,6,10,14,t[4],t[5]);Zn(e,3,7,11,15,t[6],t[7]);Zn(e,0,5,10,15,t[8],t[9]);Zn(e,1,6,11,12,t[10],t[11]);Zn(e,2,7,8,13,t[12],t[13]);Zn(e,3,4,9,14,t[14],t[15])}a(bl,"round");function Ug(e){const t=new Uint32Array(16);for(let n=0;n<16;n++)t[n]=e[Rg[n]];return t}a(Ug,"permute");function Mc(e,t,n,r,o){const i=new Uint32Array(16);for(let c=0;c<8;c++)i[c]=e[c];i[8]=as[0];i[9]=as[1];i[10]=as[2];i[11]=as[3];i[12]=n%4294967296>>>0;i[13]=Math.floor(n/4294967296)>>>0;i[14]=r>>>0;i[15]=o>>>0;let s=t;for(let c=0;c<6;c++){bl(i,s);s=Ug(s)}bl(i,s);for(let c=0;c<8;c++){i[c]=(i[c]^i[c+8])>>>0;i[c+8]=(i[c+8]^e[c])>>>0}return i}a(Mc,"compress");function Kc(e){const t=new Uint32Array(16);for(let n=0;n<16;n++){const r=n*4;t[n]=(e[r]|e[r+1]<<8|e[r+2]<<16|e[r+3]<<24)>>>0}return t}a(Kc,"words");var Bc=a(e=>Mc(e.cv,e.block,e.counter,e.blockLen,e.flags).subarray(0,8),"chainingValue");function Ng(e,t){const n=new Uint8Array(t);let r=0;let o=0;while(o<t){const i=Mc(e.cv,e.block,r++,e.blockLen,e.flags|$g);for(let s=0;s<16&&o<t;s++)for(let c=0;c<4&&o<t;c++)n[o++]=i[s]>>>8*c&255}return n}a(Ng,"rootBytes");var ss=class{static{a(this,"ChunkState")}cv;chunkCounter;base;block=new Uint8Array(Io);blockLen=0;blocksCompressed=0;constructor(t,n,r){this.cv=Uint32Array.from(t);this.chunkCounter=n;this.base=r}len(){return Io*this.blocksCompressed+this.blockLen}startFlag(){return this.blocksCompressed===0?Og:0}update(t){let n=0;while(n<t.length){if(this.blockLen===Io){this.cv=Mc(this.cv,Kc(this.block),this.chunkCounter,Io,this.base|this.startFlag()).subarray(0,8);this.blocksCompressed++;this.block.fill(0);this.blockLen=0}const r=Math.min(Io-this.blockLen,t.length-n);this.block.set(t.subarray(n,n+r),this.blockLen);this.blockLen+=r;n+=r}}output(){return{cv:this.cv,block:Kc(this.block),counter:this.chunkCounter,blockLen:this.blockLen,flags:this.base|this.startFlag()|_g}}};function hl(e,t,n,r){const o=new Uint32Array(16);o.set(e,0);o.set(t,8);return{cv:n,block:o,counter:0,blockLen:Io,flags:r|Ig}}a(hl,"parentOutput");function Bg(e,t,n=Eg){if(e.length!==32)throw new RangeError(`blake3Keyed: key must be 32 bytes, got ${e.length}`);const r=Kc(e).subarray(0,8);const o=Lg;let i=new ss(r,0,o);const s=[];const c=a((u,p)=>{let m=u;let y=p;while((y&1)===0){m=Bc(hl(s.pop(),m,r,o));y=Math.floor(y/2)}s.push(m)},"addChunk");let d=0;while(d<t.length){if(i.len()===yl){const p=i.chunkCounter+1;c(Bc(i.output()),p);i=new ss(r,p,o)}const u=Math.min(yl-i.len(),t.length-d);i.update(t.subarray(d,d+u));d+=u}let l=i.output();for(let u=s.length-1;u>=0;u--)l=hl(s[u],Bc(l),r,o);return Ng(l,n)}a(Bg,"blake3Keyed");function Kg(e){const t=new TextEncoder().encode(e);if(t.length>32)throw new RangeError(`domain ${e} exceeds 32 bytes`);const n=new Uint8Array(32);n.set(t);return n}a(Kg,"domainKey");function cs(e,t){return Bg(Kg(e),t)}a(cs,"keyedBlake3");var kl="9c0ca2acb45e92ffe6ceb4ae29188b35c82d9676cdd3ce067fd6ccc30a9c4a38";var ds="00".repeat(20);function $t(e,t){const n=new Uint8Array(t);let r=BigInt(e);if(r<0n)throw new RangeError("le: negative value");for(let o=0;o<t;o++){n[o]=Number(r&0xffn);r>>=8n}if(r!==0n)throw new RangeError(`le: value does not fit in ${t} bytes`);return n}a($t,"le");var Fc=a(e=>E($t(e.length,8),e),"varBytes");function wl(e){return e.length===0?_(kl):cs("PayloadDigest",e)}a(wl,"payloadDigest");function xl(e){const t=[$t(e.version,2),$t(e.inputs.length,8)];for(const r of e.inputs){const o=_(r.transactionId);if(o.length!==32)throw new RangeError(`input transaction id must be 32 bytes, got ${o.length}`);t.push(o,$t(r.index,4),Fc(new Uint8Array(0)),$t(r.sequence,8))}t.push($t(e.outputs.length,8));for(const r of e.outputs){t.push($t(r.value,8),$t(r.scriptVersion,2),Fc(_(r.script)));if(e.version>=1){if(r.covenant){const o=_(r.covenant.covenantId);if(o.length!==32)throw new RangeError(`covenant id must be 32 bytes, got ${o.length}`);t.push(Uint8Array.of(1),$t(r.covenant.authorizingInput,2),o)}else{t.push(Uint8Array.of(0))}}}const n=_(e.subnetworkId);if(n.length!==20)throw new RangeError(`subnetwork id must be 20 bytes, got ${n.length}`);t.push($t(e.lockTime,8),n,$t(e.gas,8),Fc(new Uint8Array(0)));return E(...t)}a(xl,"restPreimage");function ot(e){if(e.version<1)throw new Error("txidV1: version 0 transactions use the BLAKE2b TransactionID hash");const t=wl(_(e.payload));const n=cs("TransactionRest",xl(e));return{txid:h(cs("TransactionV1Id",E(t,n))),payloadDigest:h(t),restDigest:h(n)}}a(ot,"txidV1");function Ka(e){return{version:e.version,inputs:e.inputs.map(t=>({...t,sequence:t.sequence.toString()})),outputs:e.outputs.map(t=>({...t,value:t.value.toString()})),lockTime:e.lockTime.toString(),subnetworkId:e.subnetworkId,gas:e.gas.toString(),payload:e.payload}}a(Ka,"plainTxToJson");function us(e){const t=e["inputs"];const n=e["outputs"];return{version:Number(e["version"]),inputs:t.map(r=>({transactionId:String(r["transactionId"]),index:Number(r["index"]),sequence:BigInt(String(r["sequence"]??"0")),signatureScript:String(r["signatureScript"]??""),computeBudget:Number(r["computeBudget"]??0)})),outputs:n.map(r=>{const o=r["covenant"];return{value:BigInt(String(r["value"])),scriptVersion:Number(r["scriptVersion"]??0),script:String(r["script"]),covenant:o?{authorizingInput:Number(o["authorizingInput"]),covenantId:String(o["covenantId"])}:null}}),lockTime:BigInt(String(e["lockTime"]??"0")),subnetworkId:String(e["subnetworkId"]??ds),gas:BigInt(String(e["gas"]??"0")),payload:String(e["payload"]??"")}}a(us,"plainTxFromJson");var F=class extends N{static{a(this,"SigScriptError")}};var Mg=96;var vl=75;function er(e){const t=[];let n=0;while(n<e.length){const r=e[n];if(r===ji){t.push({offset:n,dataOffset:n+1,end:n+1,payload:new Uint8Array(0)});n+=1;continue}if(r===Wi||r>=zi&&r<=Mg){t.push({offset:n,dataOffset:n+1,end:n+1,payload:Uint8Array.of(r===Wi?129:r-zi+1)});n+=1;continue}let o;let i;if(r<=vl){o=r;i=1}else if(r===Vi){ls(e,n,2);o=e[n+1];i=2;if(o<=vl)throw new F(`offset ${n}: non-minimal push, PUSHDATA1 for ${o} bytes`)}else if(r===Gi){ls(e,n,3);o=e[n+1]|e[n+2]<<8;i=3;if(o<=255)throw new F(`offset ${n}: non-minimal push, PUSHDATA2 for ${o} bytes`)}else if(r===qi){ls(e,n,5);o=(e[n+1]|e[n+2]<<8|e[n+3]<<16|e[n+4]<<24)>>>0;i=5;if(o<=65535)throw new F(`offset ${n}: non-minimal push, PUSHDATA4 for ${o} bytes`)}else{throw new F(`offset ${n}: opcode 0x${r.toString(16).padStart(2,"0")} is not a data push`)}ls(e,n,i+o);const s=e.subarray(n+i,n+i+o);if(o===1&&(s[0]>=1&&s[0]<=16||s[0]===129)){throw new F(`offset ${n}: non-minimal push of byte 0x${s[0].toString(16)} (a small-number opcode exists)`)}t.push({offset:n,dataOffset:n+i,end:n+i+o,payload:s});n+=i+o}return t}a(er,"parseSigScriptPushes");function ls(e,t,n){if(t+n>e.length)throw new F(`offset ${t}: truncated push, need ${n} bytes, have ${e.length-t}`)}a(ls,"need");function Fg(e){const t=er(e);if(t.length===0)throw new F("empty sigscript");return t[t.length-1].payload}a(Fg,"programFromSigScript");function Fa(e){const t=er(e);if(t.length<2)throw new F(`a KCC-1 sigscript has a tag push and a program push, got ${t.length} push(es)`);const n=t[t.length-2];if(e[n.offset]!==4||n.payload.length!==4)throw new F(`offset ${n.offset}: the dispatch tag must be OP_DATA_4 with 4 bytes`);const r=t[t.length-1];if(r.payload.length===0)throw new F("empty program push");return{argumentPushes:t.slice(0,-2),tag:h(n.payload),program:r.payload,programOffset:r.offset}}a(Fa,"parseSigScriptEnvelope");function Dg(e){return Fa(e).tag}a(Dg,"dispatchTagOfSigScript");var $o=8;function Lo(e){if(e>ht||e<-ht)throw new F(`int argument out of range: ${e}`);if(e===0n)return new Uint8Array(0);const t=e<0n;let n=t?-e:e;const r=[];while(n>0n){r.push(Number(n&0xffn));n>>=8n}if((r[r.length-1]&128)!==0)r.push(t?128:0);else if(t)r[r.length-1]|=128;return Uint8Array.from(r)}a(Lo,"encodeScriptNum");function Be(e,t=$o){if(e.length>t)throw new F(`int argument is ${e.length} bytes, above ${t}`);if(e.length===0)return 0n;const n=e[e.length-1];if((n&127)===0&&(e.length===1||(e[e.length-2]&128)===0)){throw new F(`int argument ${h(e)} is not minimally encoded`)}let r=BigInt(n&127);for(let i=e.length-2;i>=0;i--)r=r<<8n|BigInt(e[i]);const o=(n&128)!==0?-r:r;if(o>ht||o<-ht)throw new F(`int argument out of range: ${o}`);return o}a(Be,"decodeScriptNum");var Le=a(e=>ie(Lo(e)),"pushScriptNum");var ps=a(e=>{if(!Number.isInteger(e)||e<0||e>255)throw new F(`byte argument out of range: ${e}`);return ie(Uint8Array.of(e))},"pushByteArgument");var Pn="{byte[32],int,byte[32],byte,byte,byte[32],byte[32]}";var Er=7;function tr(e,t){const n=rt(e);return{ctx:_(t),amount:n.amount,owner:n.owner,scheme:n.ownerScheme,borrow:n.borrowScheme,guard:n.borrowGuard,ext:n.extensionCommitment}}a(tr,"kcc20Full");function Or(e){for(const[t,n]of[["ctx",e.ctx],["owner",e.owner],["guard",e.guard],["ext",e.ext]]){if(n.length!==32)throw new F(`KCC20Full.${t} must be 32 bytes, got ${n.length}`)}return E(ie(e.ctx),Le(e.amount),ie(e.owner),ps(e.scheme),ps(e.borrow),ie(e.guard),ie(e.ext))}a(Or,"encodeKcc20Full");function Ma(e){if(e.length!==Er)throw new F(`KCC20Full takes ${Er} pushes, got ${e.length}`);const[t,n,r,o,i,s,c]=e.map(d=>d.payload);return{ctx:fs(t,32,"KCC20Full.ctx"),amount:Be(n),owner:fs(r,32,"KCC20Full.owner"),scheme:Sl(o,"KCC20Full.scheme"),borrow:Sl(i,"KCC20Full.borrow"),guard:fs(s,32,"KCC20Full.guard"),ext:fs(c,32,"KCC20Full.ext")}}a(Ma,"decodeKcc20Full");function fs(e,t,n){if(e.length!==t)throw new F(`${n} must be ${t} bytes, got ${e.length}`);return Uint8Array.from(e)}a(fs,"bytesN");function Sl(e,t){if(e.length!==1)throw new F(`${t} must be one byte, got ${e.length}`);return e[0]}a(Sl,"byteArg");var Yt=Object.freeze({Curve:Object.freeze({init:["byte[]","byte[]"],buy:["int",Pn],sell:["int"],sweep:[],graduate:["byte[]","byte[]"]}),Pool:Object.freeze({swapKasForTokens:["int",Pn],swapTokensForKas:["int","int"],sweep:[]})});var Dc=Object.freeze({bindLp:["byte[]","byte[]"],addLiquidity:["int",Pn],removeLiquidity:["int",Pn]});var Da=Object.freeze(["int","int",Pn]);var Ha=Object.freeze(["int","int","int","int"]);var ja=Object.freeze(["int","int","int","int"]);function Qt(e,t){return h(dl(`__covenant_entrypoint_auth_${e}(${t.join(",")})`))}a(Qt,"covenantDispatchTag");var Al=a(e=>Object.fromEntries(Object.entries(e).map(([t,n])=>[t,Qt(t,n)])),"tagsOf");var Pl=Object.freeze({token:Object.freeze({transfer:_o.transfer.tagHex,transferDelegator:_o.transferDelegator.tagHex}),curve:Object.freeze(Al(Yt.Curve)),pool:Object.freeze(Al({...Yt.Pool,...Dc}))});var Cn=Qt("swapKasForTokens",Da);var En=Qt("swapKasForTokens",Ha);var On=Qt("swapTokensForKas",ja);function Hc(e){const t=[];for(const n of["token","curve","pool"]){for(const[r,o]of Object.entries(Pl[n]))if(o===e)t.push({contract:n,entry:r})}if(e===Cn||e===En)t.push({contract:"pool",entry:"swapKasForTokens"});if(e===On)t.push({contract:"pool",entry:"swapTokensForKas"});return t}a(Hc,"entriesOfTag");function Hg(e){switch(e.contract){case"token":if(e.entry==="transfer")return jg(e.nextStates,e.witness);return ie(e.witness);case"curve":switch(e.entry){case"init":return E(ie(e.tokenPrefix),ie(e.tokenSuffix));case"buy":return E(Le(e.n),Or(e.user));case"sell":return Le(e.n);case"sweep":return new Uint8Array(0);case"graduate":return E(ie(e.poolPrefix),ie(e.poolSuffix))}break;case"pool":switch(e.entry){case"swapKasForTokens":if(e.reserveK!==void 0&&e.user!==void 0)throw new F("swapKasForTokens: a user cell and positions together");if(e.reserveK!==void 0)return E(Le(e.kasInScaled),Le(e.minTokensOut),Le(e.reserveK),Le(e.restK));return e.minTokensOut===void 0?E(Le(e.kasInScaled),Or(e.user)):E(Le(e.kasInScaled),Le(e.minTokensOut),Or(e.user));case"swapTokensForKas":if(e.reserveK===void 0!==(e.mergedK===void 0))throw new F("swapTokensForKas: reserveK and mergedK come together");return e.reserveK===void 0?E(Le(e.tokensIn),Le(e.minOutScaled)):E(Le(e.tokensIn),Le(e.minOutScaled),Le(e.reserveK),Le(e.mergedK));case"sweep":return new Uint8Array(0);case"bindLp":return E(ie(e.tokenPrefix),ie(e.tokenSuffix));case"addLiquidity":return E(Le(e.shares),Or(e.lpUser));case"removeLiquidity":return E(Le(e.shares),Or(e.tokUser))}}throw new F("unknown invocation")}a(Hg,"encodeInvocationArguments");function jg(e,t){const n=os(e,t);return E(...n.groupedFieldPushes,n.witnessPush)}a(jg,"groupedTransferPushes");function Vg(e){if(e.contract==="pool"&&e.entry==="swapKasForTokens"&&e.reserveK!==void 0)return En;if(e.contract==="pool"&&e.entry==="swapKasForTokens"&&e.minTokensOut!==void 0)return Cn;if(e.contract==="pool"&&e.entry==="swapTokensForKas"&&e.reserveK!==void 0)return On;return Pl[e.contract][e.entry]}a(Vg,"tagOfInvocation");function St(e,t){if(t.length===0)throw new F("empty program");return E(Hg(e),Uint8Array.of(4),_(Vg(e)),ie(t))}a(St,"encodeInvocation");function ms(e,t){const n=Fa(e);const r=Hc(n.tag).filter(u=>t===void 0||u.contract===t);if(r.length===0)throw new F(`dispatch tag ${n.tag} names no entry of ${t??"the token, curve or pool"}`);if(r.length>1)throw new F(`dispatch tag ${n.tag} is ambiguous (${r.map(u=>`${u.contract}.${u.entry}`).join(", ")}); name the contract`);const{contract:o,entry:i}=r[0];const s=n.argumentPushes;const c=a(u=>{if(s.length!==u)throw new F(`${o}.${i} takes ${u} argument push(es), got ${s.length}`)},"arity");let d;try{d=Gg(o,i,s,c,n.tag)}catch(u){if(u instanceof F)throw u;throw new F(`${o}.${i}: ${u.message}`)}let l;try{l=St(d,n.program)}catch(u){throw new F(`${o}.${i}: decoded arguments do not re-encode: ${u.message}`)}if(!M(l,e))throw new F(`${o}.${i}: sigscript is not the canonical encoding of its arguments`);return{invocation:d,tag:n.tag,program:Uint8Array.from(n.program)}}a(ms,"decodeInvocation");function Gg(e,t,n,r,o){const i=a(s=>n[s].payload,"p");if(e==="token"){if(t==="transfer"){r(7);return{contract:"token",entry:"transfer",nextStates:qg(n.slice(0,6).map(s=>s.payload)),witness:Uint8Array.from(i(6))}}r(1);return{contract:"token",entry:"transferDelegator",witness:Uint8Array.from(i(0))}}if(e==="curve"){switch(t){case"init":r(2);return{contract:"curve",entry:"init",tokenPrefix:Uint8Array.from(i(0)),tokenSuffix:Uint8Array.from(i(1))};case"buy":r(1+Er);return{contract:"curve",entry:"buy",n:Be(i(0)),user:Ma(n.slice(1))};case"sell":r(1);return{contract:"curve",entry:"sell",n:Be(i(0))};case"sweep":r(0);return{contract:"curve",entry:"sweep"};case"graduate":r(2);return{contract:"curve",entry:"graduate",poolPrefix:Uint8Array.from(i(0)),poolSuffix:Uint8Array.from(i(1))}}}switch(t){case"swapKasForTokens":if(o===En){r(4);return{contract:"pool",entry:"swapKasForTokens",kasInScaled:Be(i(0)),minTokensOut:Be(i(1)),reserveK:Be(i(2)),restK:Be(i(3))}}if(o===Cn){r(2+Er);return{contract:"pool",entry:"swapKasForTokens",kasInScaled:Be(i(0)),minTokensOut:Be(i(1)),user:Ma(n.slice(2))}}r(1+Er);return{contract:"pool",entry:"swapKasForTokens",kasInScaled:Be(i(0)),user:Ma(n.slice(1))};case"swapTokensForKas":if(o===On){r(4);return{contract:"pool",entry:"swapTokensForKas",tokensIn:Be(i(0)),minOutScaled:Be(i(1)),reserveK:Be(i(2)),mergedK:Be(i(3))}}r(2);return{contract:"pool",entry:"swapTokensForKas",tokensIn:Be(i(0)),minOutScaled:Be(i(1))};case"sweep":r(0);return{contract:"pool",entry:"sweep"};case"bindLp":r(2);return{contract:"pool",entry:"bindLp",tokenPrefix:Uint8Array.from(i(0)),tokenSuffix:Uint8Array.from(i(1))};case"addLiquidity":r(1+Er);return{contract:"pool",entry:"addLiquidity",shares:Be(i(0)),lpUser:Ma(n.slice(1))};case"removeLiquidity":r(1+Er);return{contract:"pool",entry:"removeLiquidity",shares:Be(i(0)),tokUser:Ma(n.slice(1))}}throw new F(`no decoder for ${e}.${t}`)}a(Gg,"decodeArguments");function qg(e){const[t,n,r,o,i,s]=e;if(t.length%bt!==0)throw new F(`next_states.amount group is ${t.length} bytes, not a multiple of ${bt}`);const c=t.length/bt;if(c>Cr)throw new F(`${c} next_states exceed max_token_outputs ${Cr}`);const d=[["owner",n,32],["owner_scheme",r,1],["borrow_scheme",o,1],["borrow_guard",i,32],["extension_commitment",s,32]];for(const[u,p,m]of d)if(p.length!==c*m)throw new F(`next_states.${u} group is ${p.length} bytes, expected ${c} x ${m}`);const l=[];for(let u=0;u<c;u++){l.push(xt({amount:Jn(t.subarray(u*8,u*8+8)),owner:n.subarray(u*32,u*32+32),ownerScheme:r[u],borrowScheme:o[u],borrowGuard:i.subarray(u*32,u*32+32),extensionCommitment:s.subarray(u*32,u*32+32)}))}return l}a(qg,"decodeGroupedStates");var Tl=65;function Wg(e){const{invocation:t}=ms(e,"token");if(t.contract!=="token")throw new F("not a token sigscript");const n=er(e);if(t.entry==="transfer"){if(t.witness.length!==1+Tl||t.witness[0]!==0)return void 0;return n[6].dataOffset+1}return t.witness.length===Tl?n[0].dataOffset:void 0}a(Wg,"tokenSignatureOffset");var zg=0;var Jg=75;var Cl=76;var El=77;var Xg=78;var Yg=79;var Qg=80;var Ol=81;var Zg=96;function gs(e){const t=[];let n=0;const r=a((i,s)=>{if(i+s>e.length)throw new F(`offset ${n}: truncated push, need ${s} bytes, have ${Math.max(0,e.length-i)}`);return e.subarray(i,i+s)},"take");while(n<e.length){const i=e[n];if(i===zg){t.push(new Uint8Array(0));n+=1}else if(i<=Jg){t.push(r(n+1,i));n+=1+i}else if(i===Cl||i===El||i===Xg){const s=i===Cl?1:i===El?2:4;const c=r(n+1,s);let d=0;for(let l=s-1;l>=0;l--)d=d*256+c[l];t.push(r(n+1+s,d));n+=1+s+d}else if(i===Yg){t.push(Uint8Array.of(129));n+=1}else if(i===Qg){throw new F(`offset ${n}: OP_RESERVED fails when executed`)}else if(i>=Ol&&i<=Zg){t.push(Uint8Array.of(i-Ol+1));n+=1}else{throw new F(`offset ${n}: opcode 0x${i.toString(16).padStart(2,"0")} is not a data push (a signature script is push-only)`)}}const o=E(...t.map(i=>ie(i)));return{payloads:t,minimal:M(o,e),canonical:o}}a(gs,"consensusSigScript");var jc="non-minimal-push";function _l(e){if(e.length>$o)throw new F(`int argument is ${e.length} bytes, above ${$o} (consensus refuses it)`);if(e.length===0)return 0n;const t=e[e.length-1];let n=BigInt(t&127);for(let r=e.length-2;r>=0;r--)n=n<<8n|BigInt(e[r]);return(t&128)!==0?-n:n}a(_l,"decodeScriptNumConsensus");function e0(e){return e.length<=$o&&M(Lo(_l(e)),e)}a(e0,"isMinimalScriptNum");function t0(e){return e.flatMap(t=>t.startsWith("{")&&t.endsWith("}")?t.slice(1,-1).split(","):[t])}a(t0,"pushTypes");var n0={...Yt.Pool,...Dc};function r0(e,t){const n=Hc(t).find(o=>o.contract===e)?.entry;if(n===void 0)return void 0;const r=e==="curve"?Yt.Curve[n]:t===Cn?Da:t===En?Ha:t===On?ja:n0[n];if(r===void 0)return void 0;return t0(r).flatMap((o,i)=>o==="int"?[i]:[])}a(r0,"intArgumentPushes");function o0(e,t){const n={sigscript:e,nonMinimal:[]};let r;try{r=Fa(e)}catch(c){if(c instanceof F)return n;throw c}const o=r0(t,r.tag);if(o===void 0)return n;const i=r.argumentPushes.map(c=>c.payload);const s=[];for(const c of o){const d=i[c];if(d===void 0||d.length>$o||e0(d))continue;i[c]=Lo(_l(d));s.push(c)}if(s.length===0)return n;return{sigscript:E(...i.map(c=>ie(c)),Uint8Array.of(4),_(r.tag),ie(r.program)),nonMinimal:s}}a(o0,"canonicalNumbers");var Vc="non-minimal-number";function Gc(e,t){const n=gs(e);const r=t==="token"?{sigscript:n.canonical,nonMinimal:[]}:o0(n.canonical,t);return{decoded:ms(r.sigscript,t),minimalPushes:n.minimal,nonMinimalNumbers:r.nonMinimal}}a(Gc,"decodeInvocationByConsensus");var qc=/^[0-9a-f]{64}$/;function Il(e){if(!Number.isSafeInteger(e)||e<0)throw new RangeError(`LE64: not a non-negative safe integer: ${e}`);const t=new Uint8Array(8);let n=e;for(let r=0;r<8;r++){t[r]=n%256;n=Math.floor(n/256)}return t}a(Il,"le64");function $l(e,t){if(e.length!==t.length)return false;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return false;return true}a($l,"sameBytes");var Ll=16;var _r=[];function a0(e,t){for(let o=0;o<_r.length;o++){const i=_r[o];if($l(i.suffix,t)&&$l(i.prefix,e)){if(o>0){_r.splice(o,1);_r.unshift(i)}return Uint8Array.from(i.hash)}}const n=new Uint8Array(8+e.length+8+t.length);n.set(Il(e.length),0);n.set(e,8);n.set(Il(t.length),8+e.length);n.set(t,16+e.length);const r=Eo(n);_r.unshift({prefix:Uint8Array.from(e),suffix:Uint8Array.from(t),hash:Uint8Array.from(r)});if(_r.length>Ll)_r.length=Ll;return r}a(a0,"templateHashBytes");function Lt(e,t){return h(a0(e,t))}a(Lt,"templateHash");function Rt(e,t,n){if(!Number.isInteger(t)||t<0||!Number.isInteger(n)||n<0){throw new N(`invalid state window: start ${t}, length ${n}`)}const r=t+n;if(r>e.length){throw new N(`program is ${e.length} bytes; state window [${t}, ${r}) does not fit`)}return Lt(e.subarray(0,t),e.subarray(r))}a(Rt,"templateHashOfProgram");var _n="kcc20-46";var Ir=46;var ys=32;var Va=new Map([[0,"pubkey"],[1,"script-hash"],[2,"covenant-id"]]);var Wc=a(e=>"0x"+e.toString(16).padStart(2,"0"),"hex2");var Rl={id:_n,stateLength:Ir,referenceSchemes:Va,encode(e,t=Va){this.validate(e,t);if(e.mintCapable===null){throw new D(`${_n} requires an explicit isMinter; refusing to encode mintCapable=null`)}const n=E(ae(e.owner.identifier),ae(Uint8Array.of(e.owner.schemeByte)),ae(it(e.amount)),ae(Gu(e.mintCapable)));if(n.length!==Ir){throw new D(`encoded ${n.length} bytes, expected ${Ir}`)}return n},decode(e,t){if(e.length!==Ir){throw new N(`${_n} state must be exactly ${Ir} bytes, got ${e.length}`)}const n=xn(e,0);if(n.payload.length!==ys){throw new N(`ownerIdentifier must be ${ys} bytes, got ${n.payload.length}`)}const r=xn(e,n.next);if(r.payload.length!==1){throw new N(`identifierType must be 1 byte, got ${r.payload.length}`)}const o=xn(e,r.next);const i=Jn(o.payload);const s=xn(e,o.next);const c=qu(s.payload);if(s.next!==e.length){throw new N(`trailing bytes: consumed ${s.next} of ${e.length}`)}const d=r.payload[0];const l=t.get(d);if(l===void 0){throw new N(`identifierType 0x${d.toString(16).padStart(2,"0")} is not defined by this template (known: ${[...t.keys()].map(u=>"0x"+u.toString(16).padStart(2,"0")).join(", ")}). Refusing to guess an owner.`)}if(i<0n){throw new N(`negative amount ${i} in state ${h(e)}`)}return{layoutId:_n,amount:i,owner:{schemeByte:d,semantic:l,identifier:Uint8Array.from(n.payload)},mintCapable:c,extra:Object.freeze({})}},validate(e,t=Va){if(e===null||typeof e!=="object")throw new D("state must be an object");if(e.layoutId!==_n)throw new D(`expected ${_n}, got ${String(e.layoutId)}`);if(typeof e.amount!=="bigint"){throw new D(`amount must be a bigint, got ${typeof e.amount}`)}if(e.amount<0n)throw new D(`amount must be non-negative, got ${e.amount}`);if(e.amount>ht)throw new D(`amount ${e.amount} exceeds the KCC1 int range`);const n=e.owner;if(n===null||typeof n!=="object")throw new D("owner must be an object");if(!(n.identifier instanceof Uint8Array)||n.identifier.length!==ys){throw new D(`ownerIdentifier must be a ${ys}-byte Uint8Array`)}if(!Number.isInteger(n.schemeByte)||n.schemeByte<0||n.schemeByte>255){throw new D(`identifierType must be a single byte, got ${String(n.schemeByte)}`)}const r=t.get(n.schemeByte);if(r===void 0){throw new D(`identifierType ${Wc(n.schemeByte)} is not defined by this template (known: ${[...t.keys()].map(Wc).join(", ")})`)}if(r!==n.semantic){throw new D(`identifierType ${Wc(n.schemeByte)} means '${r}' under this template, but the state claims '${String(n.semantic)}'`)}if(typeof e.mintCapable!=="boolean"){throw new D(`${_n} always carries isMinter; got ${String(e.mintCapable)}`)}},checkOwnershipTransition(e,t){if(e.length===0)throw new br("a transition must consume at least one state");for(const r of[...e,...t])this.validate(r.state);const n=e[0].state;if(n.mintCapable===false){for(const r of t){if(r.state.mintCapable===true){throw new br(`non-minter leader may not create a minter successor (output index ${r.index})`)}}}return e.map(r=>Oo(r.state.owner))},checkSupply(e,t){if(e.length===0)throw new at("a transition must consume at least one state");for(const i of[...e,...t])this.validate(i.state);const n=e[0].state;if(n.mintCapable===true)return;const r=e.reduce((i,s)=>i+s.state.amount,0n);const o=t.reduce((i,s)=>i+s.state.amount,0n);if(r!==o){throw new at(`supply not conserved: in=${r} out=${o} (delta ${o-r})`)}}};function X1(e){const t=e.filter(r=>r.mintCapable===true);if(t.length>0){throw new at(`supply is NOT provably fixed: ${t.length} live minter cell(s) remain. Retire minting by spending every minter cell without creating a minter successor.`)}const n=e.filter(r=>r.mintCapable===null);if(n.length>0){throw new at(`cannot prove fixed supply: ${n.length} state(s) use a layout with no minter concept (mintCapable=null). KCC-0020 has no supply model; this guarantee is kcc20-46 only.`)}}a(X1,"assertSupplyPermanentlyFixed");var i0=1;var s0="6b";function bs(e,t){return{templateHash:e,layoutId:_n,stateOffset:i0,stateLength:Ir,prefixHex:s0,schemes:Va,provenance:t}}a(bs,"referenceTemplate");var Ul=Object.freeze([bs("5b136633944a2371a1d0f6a94fdc0d329327ffc700fdec097fc59e76e1d33ae1",'tn10 covenant 5f381583..8445; revealed_hex 6b|20+32|01+01|08+08|01+01; branches 00,01,02; kascov names it "KForge · token cell" (142 covenants); hash reproduced on 154 live cells 2026-10-07'),bs("55306914ff3ddbfa0f4db6d5c5a01ec26f5f13f8c8d042076ed793fe82640513","tn10 census 2026-09-04; offset 1 (6b); branches 00,01,02"),bs("0f6db65e251cb8498aa9b201276ebeb569ac2c1eef270075143cd515d71ec3f1","tn10 census 2026-09-04; offset 1 (6b); branches 00,01,02"),bs("0338146fbf175bd1650b404d141ea4b1193180bee014f46fd617c6a6e3cc309c","tn10 census 2026-09-04; offset 1 (6b); branches 00,01,02")]);var qe="9703112ee6e3555107cd168858992b77d3b74f655205b2b463b1f9ec2ec73cf7";var tk="734850b0af0aeef49f009167bf9ddd238fd8c5cdbe214234f97181ac6f5cc498";var c0=34;var d0="6b20"+qe;var hs=Object.freeze({templateHash:qe,layoutId:Sn,stateOffset:c0,stateLength:Ar,hashWindow:{start:1,length:145},prefixHex:d0,schemes:Xt,provenance:"argent-lang/kcc20-reference@c8a0871 fixtures/public-mint/artifact.json sil_abi.contracts.KCC20.compiled {bytecode, state_span {offset 1, len 145}, template_hash}; recomputed 2026-10-07; decoded against real testnet-10 cells"});var Nl=Object.freeze([]);var Bl=Object.freeze([{templateHash:"b2c23636332e1ddde48ceb0c4ea54ce5b8f18439044aa9a7121ac00e46263973",window:{start:0,length:46},reason:"the 0x03 identifier family: state at offset 0 (no 6b prefix) and FOUR identifier branches (00,01,02,03). The meaning of 0x03 is unverified -- plausibly a p2pkh variant, but plausible is not verified. 107 live tn10 tokens use 0x03."},{templateHash:"2ed46a7edf5b168e67dba56998c58255235bebac436940a85115ca31d5c559f2",window:{start:0,length:46},reason:"second 0x03-family program, same reason."}]);var Ro=class extends N{static{a(this,"DeclarationError")}};var u0=64;var Kl=/-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?/y;var Ml={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:" "};function l0(e){for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(n>=55296&&n<=56319){const r=e.charCodeAt(t+1);if(!(r>=56320&&r<=57343))return true;t++}else if(n>=56320&&n<=57343){return true}}return false}a(l0,"hasLoneSurrogate");function f0(e,t=u0){let n=0;const r=a(d=>{throw new Ro(`I-JSON: ${d} at offset ${n}`)},"fail");const o=a(()=>{while(n<e.length){const d=e.charCodeAt(n);if(d!==32&&d!==9&&d!==10&&d!==13)break;n++}},"ws");const i=a(()=>{n++;let d="";for(;;){if(n>=e.length)r("unterminated string");const l=e[n++];if(l==='"')break;if(l==="\\"){const u=e[n++];if(u==="u"){const p=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(p))r("malformed \\u escape");d+=String.fromCharCode(parseInt(p,16));n+=4}else if(u!==void 0&&Object.prototype.hasOwnProperty.call(Ml,u)){d+=Ml[u]}else{r(`invalid escape \\${u??""}`)}}else{if(l.charCodeAt(0)<32)r("unescaped control character in string");d+=l}}if(l0(d))r("string contains a lone surrogate");return d},"str");const s=a(d=>{o();const l=e[n];if(l==="{"){if(d>t)r(`nesting deeper than ${t}`);n++;const m=Object.create(null);o();if(e[n]==="}"){n++;return m}for(;;){o();if(e[n]!=='"')r("expected a member name");const y=i();if(Object.prototype.hasOwnProperty.call(m,y))r(`duplicate member name "${y}"`);o();if(e[n]!==":")r('expected ":"');n++;m[y]=s(d+1);o();if(e[n]===","){n++;continue}if(e[n]==="}"){n++;return m}r('expected "," or "}"')}}if(l==="["){if(d>t)r(`nesting deeper than ${t}`);n++;const m=[];o();if(e[n]==="]"){n++;return m}for(;;){m.push(s(d+1));o();if(e[n]===","){n++;continue}if(e[n]==="]"){n++;return m}r('expected "," or "]"')}}if(l==='"')return i();if(e.startsWith("true",n)){n+=4;return true}if(e.startsWith("false",n)){n+=5;return false}if(e.startsWith("null",n)){n+=4;return null}Kl.lastIndex=n;const u=Kl.exec(e);if(u===null)return r("unexpected character");const p=Number(u[0]);if(!Number.isFinite(p))r(`number ${u[0]} is not a finite binary64 value`);n+=u[0].length;return p},"value");const c=s(1);o();if(n!==e.length)r("trailing characters");return c}a(f0,"parseIJson");var Vl=0;function Gl(e){if(e.length===0)return{valid:false,reason:"empty payload (no codec prefix)"};if(e[0]!==Vl)return{valid:false,reason:`unknown codec prefix 0x${e[0].toString(16).padStart(2,"0")}`};let t;try{t=new TextDecoder("utf-8",{fatal:true,ignoreBOM:true}).decode(e.subarray(1))}catch{return{valid:false,reason:"payload is not valid UTF-8"}}if(t.charCodeAt(0)===65279)return{valid:false,reason:"payload starts with a byte-order mark"};let n;try{n=f0(t)}catch(r){return{valid:false,reason:r.message}}if(n===null||typeof n!=="object"||Array.isArray(n))return{valid:false,reason:"the declaration is not a JSON object"};return{valid:true,object:n,text:t}}a(Gl,"decodeDeclaration");function mk(e){const t=E(Uint8Array.of(Vl),new TextEncoder().encode(JSON.stringify(e)));const n=Gl(t);if(!n.valid)throw new Ro(`metadata does not round-trip as a KCC-23 declaration: ${n.reason}`);return t}a(mk,"encodeDeclaration");function gk(e){const t=a(d=>typeof e[d]==="string"?e[d]:void 0,"s");const n=e["decimals"];const r={};const o=t("name");const i=t("symbol");const s=t("image");const c=t("description");if(o!==void 0)r.name=o;if(i!==void 0)r.symbol=i;if(typeof n==="number"&&Number.isInteger(n)&&n>=0&&n<=255)r.decimals=n;if(s!==void 0)r.image=s;if(c!==void 0)r.description=c;return r}a(gk,"declarationFields");function p0(e,t,n){const r=t.outputs.map((m,y)=>({i:y,o:m})).filter(({o:m})=>m.covenant?.covenantId===e);if(r.length===0)return{status:"invalid",step:1,reason:"no genesis output is bound to the covenant id"};const o=new Set(r.map(({o:m})=>m.covenant.authorizingInput));if(o.size!==1)return{status:"invalid",step:1,reason:`outputs bound to the id name ${o.size} authorizing inputs`};const i=[...o][0];const s=t.inputs[i];if(s===void 0)return{status:"invalid",step:1,reason:`authorizing input ${i} does not exist`};const c=`${s.transactionId}:${s.index}`;const d=tt(s.transactionId,s.index,r.map(({i:m,o:y})=>({index:m,value:y.value,scriptVersion:y.scriptVersion,script:_(y.script)})));if(d!==e)return{status:"invalid",step:2,reason:`recomputed covenant id ${d} differs from ${e}`};const l=n(s.transactionId);if(l===void 0)return{status:"unverified",outpoint:c,reason:`preparation transaction ${s.transactionId} is not available`};if(l.version!==1)return{status:"invalid",step:3,reason:`preparation transaction is version ${l.version}, not 1`};if(l.outputs[s.index]===void 0)return{status:"invalid",step:3,reason:`preparation transaction has no output ${s.index}`};const u=Gl(_(l.payload));if(!u.valid)return{status:"invalid",step:3,reason:`payload is not a KCC-23 declaration: ${u.reason}`};const p=ot(l).txid;if(p!==s.transactionId)return{status:"invalid",step:4,reason:`recomputed preparation txid ${p} differs from the spent outpoint's ${s.transactionId}`};return{status:"bound",authorizingInput:i,outpoint:c,declaration:u.object,text:u.text,prepTxid:p}}a(p0,"verifyKcc23Binding");var zc="kcc0023-launch-proof/1";var ql=0;var Fl=4031;var Dl=34;var m0=9;var Jc={1:"lineage T",2:"program",3:"state",4:"sealing argument",5:"lineage C",6:"custody argument",7:"metadata (KCC-23)",8:"R recovery",9:"graduation group integrity"};function Ga(e,t){const n=e[t];if(typeof n==="number"&&Number.isSafeInteger(n)&&n>=0)return BigInt(n);if(typeof n==="string"&&/^(0|[1-9][0-9]*)$/.test(n))return BigInt(n);throw new N(`params.${t} is not a non-negative integer`)}a(Ga,"paramBig");function Xc(e,t){return vt.encode(xt({amount:e,owner:_(t),ownerScheme:kt,borrowScheme:ql}))}a(Xc,"tokenGenesisState");function Wl(e,t,n,r){const o=[];if(!r.minimalPushes)o.push({step:e,tx:t,input:n,kind:jc});if(r.nonMinimalNumbers.length>0)o.push({step:e,tx:t,input:n,kind:Vc,arguments:[...r.nonMinimalNumbers]});return o}a(Wl,"encodingNotes");function Hl(e){if(e.length===0)return{};const t=e.find(n=>n.kind===Vc);return{encoding:{minimalPushes:!e.some(n=>n.kind===jc),nonMinimalNumbers:t?.arguments??[]}}}a(Hl,"encodingDetail");function g0(e,t){try{const n=Gc(_(e),"curve");const r=n.decoded;if(r.invocation.contract!=="curve"||r.invocation.entry!=="init")return`the curve input invokes ${r.invocation.entry}, not init`;return{program:r.program,tokenPrefix:r.invocation.tokenPrefix,tokenSuffix:r.invocation.tokenSuffix,notes:Wl(8,"tx2",t,n)}}catch(n){return n.message}}a(g0,"curveInit");function zl(e,t){const n=[];const r=[];const o=a(()=>r.length===0?{}:{notes:r},"withNotes");const i=a((l,u={})=>{n.push({step:l,name:Jc[l],ok:true,detail:u})},"pass");const s=a((l,u)=>{n.push({step:l,name:Jc[l],ok:false,detail:{reason:u}});return{status:"invalid",steps:n,reason:`step ${l} (${Jc[l]}): ${u}`,verifier:zc,...o()}},"invalid");try{return c()}catch(l){return s(Math.min(n.length+1,m0),`malformed bundle: ${l.message}`)}function c(){const{tx01:l,tx2:u,T:p,C:m}=e;const y=u.outputs.map((T,I)=>({i:I,o:T})).filter(({o:T})=>T.covenant?.covenantId===p);if(y.length===0)return s(1,"no tx2 output is bound to T");const g=new Set(y.map(({o:T})=>T.covenant.authorizingInput));if(g.size!==1)return s(1,`the outputs bound to T name ${g.size} authorizing inputs`);const b=[...g][0];const w=u.inputs[b];if(w===void 0)return s(1,`authorizing input ${b} does not exist`);const x=tt(w.transactionId,w.index,y.map(({i:T,o:I})=>({index:T,value:I.value,scriptVersion:I.scriptVersion,script:_(I.script)})));if(x!==p)return s(1,`recomputed ${x} differs from T ${p}`);if(y.length!==2||y[0].i!==0||y[1].i!==1)return s(1,`expected outputs 0 and 1 bound to T, got ${y.map(T=>T.i).join(",")}`);i(1,{authorizingInput:b,outpoint:`${w.transactionId}:${w.index}`,groupOutputs:y.map(T=>T.i)});const S=_(e.tokenSuffix);if(!M(S,t.referenceSuffix))return s(2,"the token suffix differs from the reference artifact");if(e.H_T!==qe||Lt(Uint8Array.of(107),t.referenceSuffix)!==qe){return s(2,"the token template is not the reference KCC20")}let A=0n;const P=[];for(const{i:T,o:I}of y){const G=e.states.find($a=>$a.index===T);if(G===void 0)return s(3,`no genesis state for output ${T}`);const q=BigInt(G.amount);const J=Xc(q,m);const oe=E(Uint8Array.of(107,32),_(qe),J,t.referenceSuffix);if(oe.length!==Fl)return s(2,`token program is ${oe.length} B`);if(I.scriptVersion!==0||h(se(oe))!==I.script)return s(2,`output ${T} does not commit to the token program with the stated genesis state`);const re=vt.decode(oe.subarray(Dl,Dl+112),vt.referenceSchemes);const Te=rt(re);if(h(Te.owner)!==m||Te.ownerScheme!==kt)return s(3,`output ${T}: owner is not C under covenant-id/v1`);if(Te.borrowScheme!==ql||!M(Te.borrowGuard,Ve)||!M(Te.extensionCommitment,Ve))return s(3,`output ${T}: borrow or extension fields are not zero`);A+=Te.amount;P.push({index:T,amount:Te.amount.toString(),value:I.value.toString()})}i(2,{templateHash:qe,programBytes:Fl});const $=Ga(e.params,"curveLots")*Ga(e.params,"lot")+Ga(e.params,"gradReserve");if(A!==$)return s(3,`genesis amounts sum to ${A}, the parameters give ${$}`);i(3,{cells:P,totalSupply:A.toString()});i(4,{statement:"the reference program exposes transfer (conserving) and transfer_delegator only; consensus derives covenant ids from genesis outpoints, so no further output with id T can be created; the sum over live T cells equals the genesis sum forever"});if(l===null){const T=d();if(T!==void 0)return T;return{status:"unverified",steps:n,totalSupply:A,verifier:zc,...o(),reason:`the preparation transaction ${w.transactionId} is not available; lineage C and the declaration are not proven`}}const L=l.inputs[0];const U=l.outputs[1];if(L===void 0||U===void 0)return s(5,"tx01 lacks input 0 or output 1");const z=tt(L.transactionId,L.index,[{index:1,value:U.value,scriptVersion:U.scriptVersion,script:_(U.script)}]);if(z!==m)return s(5,`recomputed ${z} differs from C ${m}`);if(U.covenant?.covenantId!==m||U.covenant.authorizingInput!==0)return s(5,"tx01 output 1 is not bound (0, C)");if(l.outputs.some((T,I)=>I!==1&&T.covenant?.covenantId===m))return s(5,"tx01 binds C to more than output 1");if(l.version<1)return s(7,`tx01 is version ${l.version}, not 1`);const R=ot(l).txid;const W=u.inputs.findIndex(T=>T.transactionId===R&&T.index===1);if(W<0)return s(5,"tx2 does not spend tx01:1");const xe=u.outputs.map((T,I)=>({i:I,o:T})).filter(({o:T})=>T.covenant?.covenantId===m);if(xe.length!==1||xe[0].o.covenant.authorizingInput!==W)return s(5,`expected exactly one tx2 output bound (${W}, C), found ${xe.length}`);const ge=_(e.curvePrefix);const be=_(e.curveSuffix);const he=Lt(ge,be);if(he!==e.H_C)return s(5,`the curve template hashes to ${he}, the bundle states ${e.H_C}`);if(t.curveTemplate!==void 0){const T=t.curveTemplate(ge,be);if(!T.ok)return s(5,`not a Kasseal curve template: ${T.reason??"rejected"}`);if(T.params!==void 0){for(const[I,G]of Object.entries(T.params)){if(String(e.params[I])!==String(G))return s(5,`params.${I} is ${String(e.params[I])}, the template carries ${String(G)}`)}}}const $e=E(ge,Ao({tokenCovId:_(p),lotsSold:0n,feeAccrued:0n,phase:wt}),be);if(xe[0].o.scriptVersion!==0||h(se($e))!==xe[0].o.script)return s(5,"the tx2 curve output does not commit to the program with state {T, 0, 0, active}");const It=E(ge,Ao({tokenCovId:Ve,lotsSold:0n,feeAccrued:0n,phase:xr}),be);if(U.scriptVersion!==0||h(se(It))!==U.script)return s(5,"tx01 output 1 does not commit to the program with state {0^32, 0, 0, uninit}");i(5,{H_C:he,curveBytes:$e.length,params:e.params});i(6,{statement:"C-owned token cells move only in a transaction with a C input; C exposes init, buy, sell, graduate and sweep, each forbidding or fully validating the T transition at the coded price; sweep is bounded by feeAccrued; there is no operator path to tokens or escrow"});if(w.transactionId!==R||w.index!==0)return s(7,`the T group's authorizing input spends ${w.transactionId}:${w.index}, not tx01:0 (${R})`);const Wn=p0(p,u,T=>T===R?l:void 0);if(Wn.status!=="bound")return s(7,Wn.reason);const f=ot(l);i(7,{prepTxid:f.txid,payloadDigest:f.payloadDigest,restDigest:f.restDigest,declaration:Wn.text});const k=g0(u.inputs[W].signatureScript,W);if(typeof k==="string")return s(8,k);r.push(...k.notes);const v=k.program;if(h(se(v))!==U.script)return s(8,"the recovered program does not hash to tx01 output 1");if(!M(v,It))return s(8,"the recovered program differs from the genesis program");if(!M(k.tokenPrefix,Uint8Array.of(107))||!M(k.tokenSuffix,t.referenceSuffix))return s(8,"init was not given the reference token template");const C=To(v.subarray(ge.length,ge.length+vn));i(8,{recoveredBytes:v.length,state:{tokenCovId:h(C.tokenCovId),lotsSold:C.lotsSold.toString(),phase:C.phase},...Hl(k.notes)});const O=d();if(O!==void 0)return O;return{status:"bound",steps:n,totalSupply:A,declaration:Wn.declaration,verifier:zc,...o()}}a(c,"run");function d(){const l=e.graduation??null;if(l===null){i(9,{applicable:false,reason:"the curve has not graduated; the check runs on the graduation transaction"});return void 0}const u=b0(l,e,t.referenceSuffix);if(!u.ok)return s(9,u.reason);r.push(...u.notes);i(9,{applicable:true,...u.detail,...Hl(u.notes)});return void 0}a(d,"graduationStep")}a(zl,"verifyLaunchProof");var y0=/^aa20[0-9a-f]{64}87$/;function b0(e,t,n){const{T:r,C:o}=t;const i=e.P;const s=e.tx;const c=a(R=>({ok:false,reason:R}),"fail");if(!/^[0-9a-f]{64}$/.test(i))return c("the pool id P is not a 32-byte id");if(i===r||i===o)return c("the pool id P equals T or C");const d=s.outputs.map((R,W)=>({i:W,o:R})).filter(({o:R})=>R.covenant?.covenantId===i);if(d.length===0)return c("no output of the graduation transaction is bound to the pool id P");const l=new Set(d.map(({o:R})=>R.covenant.authorizingInput));if(l.size!==1)return c(`the outputs bound to P name ${l.size} authorizing inputs`);const u=[...l][0];const p=s.inputs[u];if(p===void 0)return c(`the P group's authorizing input ${u} does not exist`);const m=tt(p.transactionId,p.index,d.map(({i:R,o:W})=>({index:R,value:W.value,scriptVersion:W.scriptVersion,script:_(W.script)})));if(m!==i)return c(`the P group (outputs ${d.map(R=>R.i).join(",")}) recomputes to ${m}, not P ${i}`);if(d.length!==1||d[0].i!==0){return c(`${d.length} outputs are bound to the pool id P (${d.map(R=>R.i).join(", ")}); the pool genesis group must be output 0 alone, or any other member carries P and can release the pool-owned reserve by presence`)}const y=d[0].o;if(y.scriptVersion!==0||!y0.test(y.script))return c("output 0 (bound to P) is not a version-0 P2SH covenant cell");const g=s.outputs.map((R,W)=>({i:W,o:R})).filter(({o:R})=>R.covenant?.covenantId===r);if(g.length!==1)return c(`${g.length} outputs are bound to T; graduation re-owns exactly one reserve cell to the pool`);const b=g[0];if(s.inputs[b.o.covenant.authorizingInput]===void 0)return c(`the reserve output names a missing authorizing input ${b.o.covenant.authorizingInput}`);const w=Ga(t.params,"gradReserve");const x=E(Uint8Array.of(107,32),_(qe),Xc(w,i),n);if(b.o.scriptVersion!==0||h(se(x))!==b.o.script){return c(`output ${b.i} (bound to T) does not commit to the reference token program with state {${w}, owner P, 0x04}`)}if(s.outputs.some(R=>R.covenant?.covenantId===o))return c("an output is bound to C; graduation leaves no curve continuation");const S=_(t.curvePrefix);const A=_(t.curveSuffix);const P=Ga(t.params,"curveLots");let $;for(const[R,W]of s.inputs.entries()){let xe;try{xe=Gc(_(W.signatureScript),"curve")}catch{continue}const ge=xe.decoded;if(ge.invocation.contract!=="curve"||ge.invocation.entry!=="graduate")continue;const be=ge.program;if(be.length!==S.length+vn+A.length)return c(`input ${R} invokes graduate on a program of ${be.length} B, not the curve template's length`);if(!M(be.subarray(0,S.length),S)||!M(be.subarray(S.length+vn),A)){return c(`input ${R} invokes graduate on a program that is not the curve template of C`)}let he;try{he=To(be.subarray(S.length,S.length+vn))}catch(Wn){return c(`input ${R} graduates a curve whose state does not decode: ${Wn.message}`)}if(h(he.tokenCovId)!==r||he.phase!==wt)return c(`input ${R} graduates a curve whose state names ${h(he.tokenCovId)} in phase ${he.phase}, not T active`);if(he.lotsSold!==P)return c(`input ${R} graduates at ${he.lotsSold} of ${P} lots`);const $e=Lt(ge.invocation.poolPrefix,ge.invocation.poolSuffix);const It=t.params["poolH"];if(typeof It==="string"&&It!==$e)return c(`graduate names pool template ${$e}, the curve requires ${It}`);$={input:R,poolTemplateHash:$e,lotsSold:he.lotsSold,notes:Wl(9,"graduation",R,xe)};break}if($===void 0)return c("no input of the graduation transaction invokes graduate on the curve program of C");const L=E(Uint8Array.of(107,32),_(qe),Xc(w,o),n);const U=a((R,W)=>{try{const xe=gs(_(R.toLowerCase())).payloads;return xe.length>0&&M(xe[xe.length-1],W)}catch{return false}},"redeemIs");if(!s.inputs.some(R=>U(R.signatureScript,L))){return c(`no input of the graduation transaction spends C's reserve ({${w}, owner C, 0x04}); a curve with C's program but another id graduated its own reserve`)}let z;try{z=ot(s).txid}catch{z=void 0}return{ok:true,detail:{...z===void 0?{}:{txid:z},P:i,poolOutput:0,groupOutputs:[0],authorizingInput:u,outpoint:`${p.transactionId}:${p.index}`,reserveOutput:b.i,reserveAmount:w.toString(),curveInput:$.input,poolTemplateHash:$.poolTemplateHash,lotsSold:$.lotsSold.toString()},notes:$.notes}}a(b0,"checkGraduationGroup");function yk(e){return{tx01:e.tx01===null?null:Ka(e.tx01),tx2:Ka(e.tx2),T:e.T,C:e.C,H_T:e.H_T,H_C:e.H_C,curvePrefix:e.curvePrefix,curveSuffix:e.curveSuffix,tokenSuffix:e.tokenSuffix,states:e.states.map(t=>({index:t.index,amount:t.amount})),params:{...e.params},declaration:e.declaration,graduation:e.graduation===void 0||e.graduation===null?null:{tx:Ka(e.graduation.tx),P:e.graduation.P}}}a(yk,"launchProofToJson");var h0=/^(?:[0-9a-f]{2})*$/;var jl=/^[0-9a-f]{64}$/;function ks(e){if(e===null||typeof e!=="object"||Array.isArray(e))throw new N("launch proof: expected an object");const t=e;const n=a(u=>{const p=t[u];if(typeof p!=="string"||!jl.test(p))throw new N(`launch proof: ${u} must be 32-byte lowercase hex`);return p},"id");const r=a(u=>{const p=t[u];if(typeof p!=="string"||!h0.test(p))throw new N(`launch proof: ${u} must be lowercase hex`);return p},"hex");const o=a(u=>{const p=t[u];if(p===null||typeof p!=="object"||Array.isArray(p))throw new N(`launch proof: ${u} must be a transaction object`);try{return us(p)}catch(m){throw new N(`launch proof: ${u}: ${m.message}`)}},"tx");const i=t["states"];if(!Array.isArray(i))throw new N("launch proof: states must be an array");const s=t["params"];if(s===null||typeof s!=="object"||Array.isArray(s))throw new N("launch proof: params must be an object");const c=t["declaration"];const d=t["graduation"];let l=null;if(d!==null&&d!==void 0){if(typeof d!=="object"||Array.isArray(d))throw new N("launch proof: graduation must be an object or null");const u=d;if(typeof u["P"]!=="string"||!jl.test(u["P"]))throw new N("launch proof: graduation.P must be 32-byte lowercase hex");if(u["tx"]===null||typeof u["tx"]!=="object"||Array.isArray(u["tx"]))throw new N("launch proof: graduation.tx must be a transaction object");try{l={tx:us(u["tx"]),P:u["P"]}}catch(p){throw new N(`launch proof: graduation.tx: ${p.message}`)}}return{tx01:t["tx01"]===null||t["tx01"]===void 0?null:o("tx01"),tx2:o("tx2"),T:n("T"),C:n("C"),H_T:n("H_T"),H_C:n("H_C"),curvePrefix:r("curvePrefix"),curveSuffix:r("curveSuffix"),tokenSuffix:r("tokenSuffix"),states:i.map((u,p)=>{const m=u;if(!Number.isInteger(m["index"])||typeof m["amount"]!=="string"||!/^(0|[1-9][0-9]*)$/.test(m["amount"]))throw new N(`launch proof: states[${p}] is malformed`);return{index:m["index"],amount:m["amount"]}}),params:s,declaration:c!==null&&typeof c==="object"&&!Array.isArray(c)?c:null,graduation:l}}a(ks,"launchProofFromJson");var In=class extends Error{static{a(this,"CurveMathError")}constructor(t){super(t);this.name=new.target.name}};var X=class extends In{static{a(this,"ArgumentError")}};var Uo=class extends X{static{a(this,"SellPayoutTooSmallError")}};var V=class extends In{static{a(this,"ParameterError")}};var No=class extends In{static{a(this,"OverflowError")}};var ue=class extends In{static{a(this,"PoolError")}};var $r=class extends ue{static{a(this,"PoolPayoutTooSmallError")}};var st=class extends In{static{a(this,"LpError")}};var At=class extends st{static{a(this,"LpStateError")}};var Bo=class extends st{static{a(this,"LpShareCountError")}};var Ko=class extends st{static{a(this,"LpSharesCapError")}};var Lr=class extends st{static{a(this,"LpReserveCapError")}};var Rr=class extends st{static{a(this,"LpFloorError")}};var Ur=class extends st{static{a(this,"LpPayoutTooSmallError")}};var Mo=class extends st{static{a(this,"LpTokenLegTooSmallError")}};var $n=class extends st{static{a(this,"LpInvariantError")}};var Fo=class extends st{static{a(this,"LpInventoryError")}};var ws=(1n<<63n)-1n;var k0=-ws;function K(e,t){if(typeof e!=="bigint")throw new X(`${t} must be a bigint, got ${typeof e}`)}a(K,"assertBigint");function Yc(e,t){if(e>ws||e<k0)throw new No(`${t} = ${e} leaves the KCC-1 int range`);return e}a(Yc,"checked");function Pe(e,t,n){return Yc(e+t,n)}a(Pe,"add");function ct(e,t,n){return Yc(e-t,n)}a(ct,"sub");function ee(e,t,n){return Yc(e*t,n)}a(ee,"mul");function Zt(e,t){K(e,"dividend");K(t,"divisor");if(e<0n)throw new X(`floorDiv dividend must be non-negative, got ${e}`);if(t<=0n)throw new X(`floorDiv divisor must be positive, got ${t}`);return e/t}a(Zt,"floorDiv");function Ln(e,t){K(e,"dividend");K(t,"divisor");if(e<0n)throw new X(`ceilDiv dividend must be non-negative, got ${e}`);if(t<=0n)throw new X(`ceilDiv divisor must be positive, got ${t}`);return(e+t-1n)/t}a(Ln,"ceilDiv");var Tt=10000n;var qa=200n;var Qc=1000000000000n;var td=10000000000n;var w0=td;var Jl=1000000n;var Xl=8000n;var x0=800000n;var Zc=800000n;var Do=10000000n;var ed=100000000n;var Yl=1000000000000000n;function Ql(e){K(e,"curveLots");if(e<=0n)throw new V(`curveLots must be positive, got ${e}`);if(e<=Xl)return td;if(e<=Zc)return Jl;throw new V(`curveLots ${e} exceeds the covenant's maximum ${Zc}`)}a(Ql,"kCap");function en(e){if(e===null||typeof e!=="object")throw new V("curve params must be an object");for(const n of["p0","k","feeBps","curveLots"])K(e[n],n);if(e.p0<0n)throw new V(`p0 must be non-negative, got ${e.p0}`);if(e.p0>Qc)throw new V(`p0 ${e.p0} exceeds the cap ${Qc}`);if(e.k<0n)throw new V(`k must be non-negative, got ${e.k}`);const t=Ql(e.curveLots);if(e.k>t)throw new V(`k ${e.k} exceeds the cap ${t}`);if(e.feeBps<0n)throw new V(`feeBps must be non-negative, got ${e.feeBps}`);if(e.feeBps>qa)throw new V(`feeBps ${e.feeBps} exceeds the cap ${qa}`)}a(en,"validateCurveParams");function v0(e,t,n=ed){en(e);K(t,"cellValue");K(n,"gradFeeMin");if(t<0n)throw new X(`cellValue must be non-negative, got ${t}`);if(n!==ed)throw new X(`gradFeeMin must be the contract set's GRAD_FEE_MIN (1 KAS), got ${n}`);const r=Pe(Pe(t,xs(e,0n,e.curveLots),"value + cost"),n,"value + cost + GRAD_FEE_MIN");return r<=Yl}a(v0,"initEscrowFits");function S0(e,t){K(t,"lot index");if(t<0n||t>=e.curveLots)throw new X(`lot index ${t} is outside [0, ${e.curveLots})`)}a(S0,"assertLotIndex");function Zl(e,t){en(e);S0(e,t);return Pe(e.p0,ee(e.k,t,"K * i"),"P0 + K * i")}a(Zl,"lotPrice");function ef(e,t,n){K(t,"s0");K(n,"n");if(t<0n)throw new X(`s0 must be non-negative, got ${t}`);if(n<0n)throw new X(`n must be non-negative, got ${n}`);if(t+n>e.curveLots)throw new X(`s0 + n = ${t+n} exceeds curveLots ${e.curveLots}`)}a(ef,"assertRange");function xs(e,t,n){const r=ee(n,e.p0,"n * P0");const o=ee(n,t,"n * s0");const i=ee(n,n-1n,"n * (n - 1)")/2n;const s=Pe(o,i,"n * s0 + n * (n - 1) / 2");const c=ee(e.k,s,"K * (n * s0 + n * (n - 1) / 2)");return Pe(r,c,"cost")}a(xs,"costUnchecked");function nd(e,t,n){en(e);ef(e,t,n);return xs(e,t,n)}a(nd,"cost");function Wa(e,t){K(e,"cost");K(t,"feeBps");if(e<0n)throw new X(`cost must be non-negative, got ${e}`);if(t<0n||t>qa)throw new V(`feeBps ${t} is outside [0, ${qa}]`);const n=e/Tt;const r=e%Tt;return Pe(ee(n,t,"q * feeBps"),(r*t+(Tt-1n))/Tt,"fee")}a(Wa,"fee");function Ho(e,t,n){en(e);ef(e,t,n);if(n===0n)throw new X("a buy must take at least one lot");const r=xs(e,t,n);const o=Wa(r,e.feeBps);return{cost:r,fee:o,total:Pe(r,o,"cost + fee")}}a(Ho,"buyQuote");function za(e,t,n){en(e);K(t,"s0");K(n,"n");if(n<=0n)throw new X("a sell must return at least one lot");if(t>e.curveLots)throw new X(`s0 ${t} exceeds curveLots ${e.curveLots}`);if(n>t)throw new X(`cannot sell ${n} lots when only ${t} are sold`);const r=xs(e,t-n,n);const o=Wa(r,e.feeBps);const i=ct(r,o,"cost - fee");if(i<Do){throw new Uo(`net refund ${i} is below the contract's 0.1 KAS payout minimum (PAYOUT_MIN ${Do} sompi)`)}return{cost:r,fee:o,total:i}}a(za,"sellQuote");function Ja(e){return nd(e,0n,e.curveLots)}a(Ja,"fullRaise");function vs(e){en(e);return Zl(e,e.curveLots-1n)}a(vs,"lastLotPrice");function rd(e){return Wa(vs(e),e.feeBps)}a(rd,"finalLotFee");function od(e,t){en(e);if(t<=0n||t>e.curveLots)throw new X(`n ${t} is outside [1, ${e.curveLots}]`);return Wa(nd(e,e.curveLots-t,t),e.feeBps)}a(od,"finalLotsFee");var Ye=100000000n;var ad=1000000000000n;var id=1200000000n;var Ss={lotSize:1000n,totalSupply:1200000000n,gradLots:400000n,treasurySharePct:50n,sweepMinSompi:10n*Ye,tokenCellSompi:10n*Ye};var tn=Object.freeze({name:"standard",label:"Standard — graduates ≈ $69k at $0.04 KAS",curve:Object.freeze({p0:12092606n,k:149n,feeBps:100n,curveLots:800000n}),...Ss});var A0=tn;var As=.0401;var T0=Object.freeze({name:"A",label:"Set A — raises 47,995 KAS",curve:Object.freeze({p0:1199381n,k:12n,feeBps:100n,curveLots:800000n}),...Ss});var P0=Object.freeze({name:"B",label:"Set B — raises 243,972 KAS",curve:Object.freeze({p0:2496535n,k:70n,feeBps:100n,curveLots:800000n}),...Ss});var Ik=Object.freeze({name:"tiny",label:"tiny — raises 3,200 KAS (testnet)",curve:Object.freeze({p0:0n,k:1n,feeBps:100n,curveLots:800000n}),...Ss});var $k=Object.freeze([T0,P0,tn]);function dt(e){if(e===null||typeof e!=="object")throw new V("preset must be an object");en(e.curve);for(const r of["lotSize","totalSupply","gradLots","treasurySharePct","sweepMinSompi","tokenCellSompi"]){K(e[r],r);if(e[r]<0n)throw new V(`${r} must be non-negative, got ${e[r]}`)}if(e.lotSize<=0n)throw new V(`lotSize must be positive, got ${e.lotSize}`);if(e.lotSize>ad)throw new V(`lotSize ${e.lotSize} exceeds the cap ${ad}`);if(e.gradLots<=0n)throw new V(`gradLots must be positive, got ${e.gradLots}`);if(e.tokenCellSompi<=0n)throw new V(`tokenCellSompi must be positive, got ${e.tokenCellSompi}`);if(e.treasurySharePct>100n)throw new V(`treasurySharePct ${e.treasurySharePct} exceeds 100`);const t=ee(e.curve.curveLots,e.lotSize,"CURVE_SUPPLY");const n=ee(e.gradLots,e.lotSize,"GRAD_RESERVE");if(n>id)throw new V(`GRAD_RESERVE ${n} exceeds the cap ${id}`);if(t+n!==e.totalSupply){throw new V(`CURVE_SUPPLY ${t} + GRAD_RESERVE ${n} != TOTAL_SUPPLY ${e.totalSupply}`)}}a(dt,"validatePreset");function C0(e){dt(e);return e.curve.curveLots*e.lotSize}a(C0,"curveSupply");function tf(e){dt(e);return e.gradLots*e.lotSize}a(tf,"gradReserve");function nn(e){dt(e);return Ja(e.curve)*e.totalSupply/tf(e)}a(nn,"graduationMarketCapSompi");function E0(e,t){if(typeof t!=="number"||!Number.isFinite(t)||t<0){throw new V(`kasUsd must be a finite non-negative number, got ${String(t)}`)}const n=nn(e);const r=n/Ye;const o=n%Ye;return(Number(r)+Number(o)/Number(Ye))*t}a(E0,"graduationMarketCapUsd");var sd=800000000n;var O0=400000000n;var _0=0n;var I0=8000000n;var Kk=Object.freeze([1000n,10000n]);var Mk=1.1025;var Xa=.05;var $0=1;var Re=1000n;var j=10000n;var L0=Object.freeze([[j,122n],[j,134n],[j,147n],[j,161n],[j,177n],[j,195n],[j,214n],[j,235n],[j,258n],[j,284n],[j,313n],[j,344n],[j,379n],[j,417n],[j,459n],[j,506n],[j,557n],[j,613n],[j,675n],[j,744n],[j,820n],[j,904n],[j,996n],[j,1097n],[j,1209n],[j,1332n],[j,1468n],[j,1618n],[j,1783n],[j,1965n],[j,2166n],[j,2387n],[j,2631n],[j,2900n],[j,3197n],[j,3524n],[j,3885n],[j,4283n],[j,4722n],[j,5205n],[j,5738n],[j,6326n],[j,6974n],[j,7688n],[j,8475n],[j,9343n],[Re,103n],[Re,113n],[Re,124n],[Re,136n],[Re,164n],[Re,180n],[Re,198n],[Re,218n],[Re,240n],[Re,264n],[Re,291n],[Re,320n],[Re,352n],[Re,388n],[Re,427n],[Re,470n],[Re,518n],[Re,571n],[Re,629n]].map(([e,t])=>Object.freeze({lot:e,k:t})));function cd(e){K(e,"lot");if(e<=0n||sd%e!==0n||sd/e%10n!==0n){throw new V(`lot ${e} does not divide the Standard curve's 800M tokens into a multiple of 10 lots`)}return sd/e}a(cd,"standardCurveLots");function R0(e,t){K(t,"k");return t*cd(e)/10n}a(R0,"standardShapeP0");function Fk(e){cd(e);return{lots:_0/e,maxLots:I0/e}}a(Fk,"standardOpeningWindow");function U0(e){K(e.k,"k");K(e.lot,"lot");if(e.lot===Re)return`standard-k${e.k}`;if(e.lot%1000n!==0n)throw new V(`lot ${e.lot} is not a whole number of thousands`);return`standard-lot${e.lot/1000n}k-k${e.k}`}a(U0,"standardBandName");var N0=/^standard-(?:lot([1-9][0-9]*)k-)?k([1-9][0-9]*)$/;var dd=Ps(nn(tn))*As;function Ps(e){return Number(e/Ye)+Number(e%Ye)/Number(Ye)}a(Ps,"kasOf");function B0(e){return`$${e.toPrecision(3)}`}a(B0,"priceLabel");function K0(e){const t=cd(e.lot);const n={...tn,name:U0(e),curve:Object.freeze({...tn.curve,p0:R0(e.lot,e.k),k:e.k,curveLots:t}),lotSize:e.lot,gradLots:O0/e.lot};const r=dd/Ps(nn(n));return Object.freeze({...n,label:`Standard — graduates ≈ $69k at ${B0(r)} KAS`})}a(K0,"bandPreset");var Ut=Object.freeze([...L0.map(K0),tn].sort((e,t)=>{const n=nn(e);const r=nn(t);return n<r?-1:n>r?1:0}));var Dk=Object.freeze(Ut.filter(e=>e!==tn));var nf=new Map(Ut.map(e=>[e.name,e]));var ud=new Map(Ut.map((e,t)=>[e.name,t]));var rn=Ut.map(e=>e===tn?As:dd/Ps(nn(e)));function ld(e){return nf.get(e)}a(ld,"standardFamilyPreset");function Hk(e){return nf.has(e)}a(Hk,"isStandardFamilyName");function rf(e){return N0.test(e)}a(rf,"isStandardBandNameForm");function jk(e){return ud.get(e)}a(jk,"standardFamilyIndex");function of(e){const t=ud.get(e.name);if(t===void 0||Ut[t]!==e)throw new V(`${e.name} is not a member of the Standard family`);return t}a(of,"memberIndex");function Vk(e){return rn[of(e)]}a(Vk,"standardBandReferenceKasUsd");function Ya(e){const t=Ut.length;return{max:e===0?rn[0]*(1+Xa):Math.sqrt(rn[e]*rn[e-1]),min:e===t-1?rn[t-1]/(1+Xa):Math.sqrt(rn[e]*rn[e+1])}}a(Ya,"servesAt");function Gk(e){return Ya(of(e))}a(Gk,"standardBandServes");var Ts=Object.freeze({min:Ya(Ut.length-1).min,max:Ya(0).max});var Qa=class extends V{static{a(this,"StandardBandOutOfRange")}kasUsd;constructor(t){super(`KAS/USD ${t} is outside the Standard family's range (${Ts.min.toPrecision(3)} .. ${Ts.max.toPrecision(3)}): no band graduates within ${Xa*100} % of the target`);this.kasUsd=t}};function af(e){if(typeof e!=="number"||!Number.isFinite(e)||e<=0){throw new V(`kasUsd must be a finite positive number, got ${String(e)}`)}}a(af,"assertPrice");function sf(e){let t={index:0,dist:Number.POSITIVE_INFINITY};for(let n=0;n<Ut.length;n++){const r=Math.abs(Math.log(e/rn[n]));if(r<t.dist)t={index:n,dist:r}}return t}a(sf,"nearestIndex");function qk(e){af(e);const{index:t,dist:n}=sf(e);if(n>Math.log(1+Xa)+1e-12)throw new Qa(e);const r=Ut[t];const o=Ps(nn(r))*e;return{preset:r,index:t,kasUsd:e,referenceKasUsd:rn[t],graduationCapSompi:nn(r),graduationCapUsd:o,deviation:o/dd-1}}a(qk,"standardBandFor");function cf(e,t,n=$0){af(t);if(!Number.isInteger(n)||n<0)throw new V(`toleranceBands must be a non-negative integer, got ${n}`);const r=ud.get(e);const o=sf(t);const i=o.dist<=Math.log(1+Xa)+1e-12;const s=i?Ut[o.index]:void 0;if(r===void 0){return{accepted:false,reason:"not-a-band",index:r,expected:s,distance:void 0,accepts:void 0,message:`${e} is not a Standard band`}}const c=Ut.length;const d={max:Ya(Math.max(0,r-n)).max,min:Ya(Math.min(c-1,r+n)).min};const l=i?Math.abs(r-o.index):void 0;const u=a(m=>`$${m.toPrecision(3)}`,"fmt");if(!i){return{accepted:false,reason:"price-out-of-range",index:r,expected:s,distance:l,accepts:d,message:`KAS at ${u(t)} is outside the Standard bands' range (${u(Ts.min)} .. ${u(Ts.max)})`}}const p=t>=d.min&&t<=d.max;return{accepted:p,reason:p?void 0:"wrong-band",index:r,expected:s,distance:l,accepts:d,message:p?`${e} is accepted at KAS ${u(t)}`:`${e} is the band for KAS at ${u(rn[r])}, ${l} bands from the band for KAS at ${u(t)} (${s.name}); it is accepted only for ${u(d.min)} .. ${u(d.max)}`}}a(cf,"checkStandardBand");function M0(e){return e.hashWindow??{start:e.stateOffset,length:e.stateLength}}a(M0,"windowOf");function fd(e,t){if(!Number.isInteger(e.start)||e.start<0||!Number.isInteger(e.length)||e.length<0){throw new Error(`${t}: invalid state window start=${e.start} length=${e.length}`)}}a(fd,"assertWindow");var Cs=class{static{a(this,"LayoutRegistry")}#e=new Map;#t=new Map;#n=new Map;#r=new Map;registerCodec(t){this.#e.set(t.id,t);return this}registerTemplate(t){const n=t.templateHash;if(!qc.test(n)){throw new Error(`cannot register template: hash must match ^[0-9a-f]{64}$, got "${n}"`)}if(this.#t.has(n)||this.#n.has(n)){throw new Error(`template ${n} is already registered; refusing to overwrite`)}fd({start:t.stateOffset,length:t.stateLength},`template ${n}`);const r=M0(t);fd(r,`template ${n} hashWindow`);if(t.stateOffset<r.start||t.stateOffset+t.stateLength>r.start+r.length){throw new Error(`template ${n}: codec state window must lie inside the hash window`)}if(t.prefixHex!==void 0){if(!/^([0-9a-f]{2})*$/.test(t.prefixHex)||t.prefixHex.length/2>t.stateOffset){throw new Error(`template ${n}: prefixHex must be lowercase hex and end before stateOffset`)}}if(t.recognisedOnly===void 0){const o=this.#e.get(t.layoutId);if(!o){throw new Error(`cannot register template ${n}: no codec for layout ${t.layoutId}`)}if(t.stateLength!==o.stateLength){throw new Error(`template ${n} declares stateLength ${t.stateLength} but codec ${o.id} uses ${o.stateLength}`)}}this.#t.set(n,t);this.#o(r);return this}quarantineTemplate(t){if(!qc.test(t.templateHash)){throw new Error(`cannot quarantine template: hash must match ^[0-9a-f]{64}$, got "${t.templateHash}"`)}if(this.#t.has(t.templateHash)||this.#n.has(t.templateHash)){throw new Error(`template ${t.templateHash} is already registered; refusing to overwrite`)}fd(t.window,`quarantined template ${t.templateHash}`);this.#n.set(t.templateHash,t.reason);this.#o(t.window);return this}#o(t){this.#r.set(`${t.start}:${t.length}`,{start:t.start,length:t.length})}getCodec(t){const n=this.#e.get(t);if(!n)throw new Error(`no codec registered for layout ${t}`);return n}resolveTemplate(t){const n=t.toLowerCase();const r=this.#t.get(n);if(r)return r;const o=this.#n.get(n);if(o){throw new wn(`${n} (quarantined: ${o})`)}throw new wn(n)}isDecodable(t){const n=this.#t.get(t.toLowerCase());return n!==void 0&&n.recognisedOnly===void 0}identifyTemplate(t){const n=[];for(const r of this.#r.values()){if(r.start+r.length>t.length)continue;const o=Rt(t,r.start,r.length);const i=this.#t.get(o);if(i)return i;const s=this.#n.get(o);if(s!==void 0){throw new wn(`${o} (quarantined: ${s})`)}n.push(`${o} over window [${r.start}, ${r.start+r.length})`)}throw new wn(n.length===0?`(none: ${t.length}-byte program is shorter than every known state window)`:`(computed ${n.join("; ")})`)}decodeProgram(t,n){const r=this.#c(t,n);if(r.recognisedOnly!==void 0){throw new ho(r.templateHash,r.recognisedOnly)}const o=this.#i(t,r);const i=this.getCodec(r.layoutId);const s=i.decode(o,r.schemes);i.validate(s,r.schemes);return s}assertRoundTrip(t,n){const r=this.#c(t,n);const o=this.decodeProgram(t,r.templateHash);const i=this.getCodec(r.layoutId).encode(o,r.schemes);const s=this.#i(t,r);if(h(i)!==h(s)){throw new N(`round-trip mismatch for template ${r.templateHash}: on-chain ${h(s)} vs re-encoded ${h(i)}`)}return o}#c(t,n){const r=n===void 0?void 0:this.resolveTemplate(n);const o=this.identifyTemplate(t);if(r!==void 0&&r.templateHash!==o.templateHash){throw new bo(r.templateHash,o.templateHash)}return o}#i(t,n){const r=n.stateOffset+n.stateLength;if(t.length<r){throw new N(`program is ${t.length} bytes; template ${n.templateHash} needs at least ${r}`)}if(n.prefixHex!==void 0){const o=n.prefixHex;const i=h(t.subarray(0,o.length/2));if(i!==o){throw new N(`template ${n.templateHash} expects program prefix ${o}, got ${i}`)}}return t.subarray(n.stateOffset,r)}};var F0=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);var on=a((e,t)=>e>>>t|e<<32-t,"rotr");function Es(e){const t=typeof e==="string"?new TextEncoder().encode(e):e;const n=BigInt(t.length)*8n;const r=new Uint8Array(Math.ceil((t.length+9)/64)*64);r.set(t);r[t.length]=128;const o=new DataView(r.buffer);o.setBigUint64(r.length-8,n,false);const i=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);const s=new Uint32Array(64);for(let l=0;l<r.length;l+=64){for(let S=0;S<16;S++)s[S]=o.getUint32(l+S*4,false);for(let S=16;S<64;S++){const A=s[S-15];const P=s[S-2];const $=on(A,7)^on(A,18)^A>>>3;const L=on(P,17)^on(P,19)^P>>>10;s[S]=s[S-16]+$+s[S-7]+L>>>0}let[u,p,m,y,g,b,w,x]=[i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]];for(let S=0;S<64;S++){const A=x+(on(g,6)^on(g,11)^on(g,25))+(g&b^~g&w)+F0[S]+s[S]>>>0;const P=(on(u,2)^on(u,13)^on(u,22))+(u&p^u&m^p&m)>>>0;x=w;w=b;b=g;g=y+A>>>0;y=m;m=p;p=u;u=A+P>>>0}i[0]=i[0]+u>>>0;i[1]=i[1]+p>>>0;i[2]=i[2]+m>>>0;i[3]=i[3]+y>>>0;i[4]=i[4]+g>>>0;i[5]=i[5]+b>>>0;i[6]=i[6]+w>>>0;i[7]=i[7]+x>>>0}const c=new Uint8Array(32);const d=new DataView(c.buffer);for(let l=0;l<8;l++)d.setUint32(l*4,i[l],false);return c}a(Es,"sha256");function pd(e){let t="";for(const n of Es(e))t+=n.toString(16).padStart(2,"0");return t}a(pd,"sha256Hex");var Os=/[\u0000-\u001F\u007F-\u009F\u00AD\u034F\u061C\u115F\u1160\u17B4\u17B5\u180B-\u180F\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFEFF\uFFA0\uFFF9-\uFFFB]|\uDB40[\uDC00-\uDC7F\uDD00-\uDDEF]|\uD834[\uDD73-\uDD7A]/g;function df(e){return e.replace(/\s+/gu," ").replace(Os,"").replace(/ {2,}/g," ").trim()}a(df,"displayText");var D0={"А":"A","В":"B","Е":"E","Ё":"E","К":"K","М":"M","Н":"H","О":"O","Р":"P","С":"C","Т":"T","У":"Y","Х":"X","Ѕ":"S","І":"I","Ї":"I","Ј":"J","Ԛ":"Q","Ԝ":"W","Ү":"Y","Һ":"H","Ӏ":"I","Տ":"S","Օ":"O","Α":"A","Β":"B","Ε":"E","Ζ":"Z","Η":"H","Ι":"I","Κ":"K","Μ":"M","Ν":"N","Ο":"O","Ρ":"P","Τ":"T","Υ":"Y","Χ":"X","Ꭺ":"A","Ᏼ":"B","Ꮯ":"C","Ꭰ":"D","Ꭼ":"E","Ꮐ":"G","Ꮋ":"H","Ꭵ":"I","Ꭻ":"J","Ꮶ":"K","Ꮮ":"L","Ꮇ":"M","Ꭲ":"T","Ꮪ":"S","Ꮢ":"R","Ꮩ":"V","Ꮃ":"W","Ꮓ":"Z","Ꮲ":"P","ꓮ":"A","ꓐ":"B","ꓚ":"C","ꓓ":"D","ꓰ":"E","ꓝ":"F","ꓖ":"G","ꓧ":"H","ꓲ":"I","ꓙ":"J","ꓗ":"K","ꓡ":"L","ꓟ":"M","ꓠ":"N","ꓳ":"O","ꓑ":"P","ꓣ":"R","ꓢ":"S","ꓔ":"T","ꓴ":"U","ꓦ":"V","ꓪ":"W","ꓫ":"X","ꓬ":"Y","ꓜ":"Z","ᴀ":"A","ʙ":"B","ᴄ":"C","ᴅ":"D","ᴇ":"E","ꜰ":"F","ɢ":"G","ʜ":"H","ɪ":"I","ᴊ":"J","ᴋ":"K","ʟ":"L","ᴍ":"M","ɴ":"N","ᴏ":"O","ᴘ":"P","ʀ":"R","ꜱ":"S","Ɪ":"I","Ʀ":"R","ᴛ":"T","ᴜ":"U","ᴠ":"V","ᴡ":"W","ʏ":"Y","ᴢ":"Z"};var H0=/[\uFE00-\uFE0F\u2800]|\uDB40[\uDD00-\uDDEF]|\uD834[\uDD73-\uDD7A]/g;var j0=/[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF]/g;function V0(e){if(e>=127312&&e<=127337)return String.fromCharCode(65+e-127312);if(e>=127344&&e<=127369)return String.fromCharCode(65+e-127344);return void 0}a(V0,"negativeLetter");function md(e){const t=df(e.normalize("NFKC")).normalize("NFD").replace(j0,"").normalize("NFC").replace(H0,"").replace(/[$\s]/g,"").toUpperCase();let n="";for(const r of t)n+=D0[r]??V0(r.codePointAt(0))??r;return n}a(md,"tickerSkeleton");function nw(e){Os.lastIndex=0;const t=Os.test(e);Os.lastIndex=0;return t}a(nw,"hasHiddenCharacters");var Nt=a(e=>({word:e,inName:"exact"}),"exact");var _s=a(e=>({word:e,inName:"word"}),"anyWord");var iw=[{id:"kas",words:[Nt("KAS"),Nt("KASPA")]},{id:"wkas",words:[_s("WKAS"),Nt("WRAPPEDKAS"),Nt("WRAPPEDKASPA")]},{id:"usdt",words:[_s("USDT"),_s("TETHER"),Nt("TETHERUSD")]},{id:"usdc",words:[_s("USDC"),Nt("USDCOIN")]},{id:"btc",words:[Nt("BTC"),Nt("BITCOIN")]},{id:"eth",words:[Nt("ETH"),Nt("ETHER"),Nt("ETHEREUM")]}];var G0=["NACHO","ZEAL","KASPY","KANGO","BURT","GHOAD","KEIRO","KASPER","KONAN","KREX","KROAK","KAS","KASPA","WKAS","BTC","XBT","ETH","WETH","WBTC","SOL","BNB","XRP","DOGE","LTC","BCH","ADA","TRX","TON","AVAX","DOT","MATIC","POL","LINK","SHIB","XMR","ETC","XLM","ATOM","SUI","APT","NEAR","HBAR","USDT","USDC","TETHER","SEAL","KASSEAL"];var q0=["SEAL","KASSEAL"];var W0={"testnet-10":"kaspatest:qp8pqkcf0w8l3mke93eu86ngyc808x54t574a8jha96nu63x8tfn2et7nk35w",mainnet:"kaspa:qrt0p8sd5g8k383mzxgqtyl7ehkdez8ds8cpxqcuwjdaayke9rjhg9pqnr3zx"};function uf(e,t,n){const r=n!==void 0&&W0[e]===n.trim().toLowerCase();const o=a(c=>r&&q0.includes(c),"allowed");const i=md(t.ticker);const s=md(t.name);for(const[c,d]of[["ticker",i],["name",s]]){if(G0.includes(d)&&!o(d))return{word:d,field:c}}return null}a(uf,"reservedNameOf");function Is(){const e=new Cs().registerCodec(Rl).registerCodec(vt);for(const t of Ul)e.registerTemplate(t);e.registerTemplate(hs);for(const t of Nl)e.registerTemplate(t);for(const t of Bl)e.quarantineTemplate(t);return e}a(Is,"createDefaultRegistry");var Bt=class extends Error{static{a(this,"ArtifactMissing")}path;constructor(t){super(`contract artifact ${t} is not available in this build`);this.name="ArtifactMissing";this.path=t}};var jo=class extends Error{static{a(this,"ArtifactSourceNotInstalled")}constructor(){super("no contract artifact source is installed: import the package through its Node entry, or call initWeb() with the artifacts");this.name="ArtifactSourceNotInstalled"}};var Go=Object.freeze(["v1"]);function Fe(e){return e==="v1"}a(Fe,"hasOpenLiquidity");var Za=class extends Error{static{a(this,"ContractSetNotSupported")}set;constructor(t,n){super(`contract set ${t} is not supported by ${n} yet`);this.name="ContractSetNotSupported";this.set=t}};function ei(e,t="the transaction builder"){if(!Xu.includes(e))throw new Error(`unknown contract version ${String(e)} (${t})`);return e}a(ei,"builderContractSet");var We="v1";var z0="contracts/curve/v1";var lf="contracts/curve/v1/artifacts";var J0="contracts/pool/v1/artifacts/pool.artifact.json";var X0="contracts/pool/v1/pool.ctor.json";var Rs="codec/fixtures/argent-kcc20-reference-c8a0871.json";var ff=Object.freeze(["v1-2026-10-18-final","v1-kasseal-mainnet-tn10","v1-kasseal-mainnet","v1-kasseal-mainnet-2-tn10","v1-kasseal-mainnet-2"]);var Y0="v1-kasseal-mainnet";var bd="v1-kasseal-mainnet-2";var pf="v1-kasseal-mainnet-2-tn10";var Q0=Object.freeze([Y0,bd]);var mf="mainnet";function ti(e){const t=e===mf;return ff.filter(n=>Q0.includes(n)===t)}a(ti,"v1RevisionsOn");var Z0="testnet-10";function hd(e){if(e===mf)return bd;return e===Z0?pf:void 0}a(hd,"launchRevisionOf");function kd(e,t){if(e!=="v1"||!ff.includes(t))throw new Error(`unknown frozen ${e} revision ${t}`);return t}a(kd,"assertRevision");function ni(e){ei(e,"the builder's artifact source")}a(ni,"assertVersion");function Us(e=We,t){ni(e);if(t!==void 0)return`${lf}/${kd(e,t)}`;return z0}a(Us,"curvePresetDir");function gf(e,t=We,n){ni(t);if(n!==void 0)return`${Us(t,n)}/curve.${e}.artifact.json`;return`${lf}/curve.${e}.artifact.json`}a(gf,"curveArtifactPath");function yf(e,t=We,n){return`${Us(t,n)}/curve.ctor.${e}.json`}a(yf,"curveCtorPath");function bf(e=We,t){ni(e);if(t!==void 0)return`contracts/pool/v1/artifacts/${kd(e,t)}/pool.artifact.json`;return J0}a(bf,"poolArtifactPath");function hf(e=We,t){ni(e);if(t!==void 0)return`contracts/pool/v1/artifacts/${kd(e,t)}/pool.ctor.json`;return X0}a(hf,"poolCtorPath");var ey=/^curve\.ctor\.([A-Za-z0-9_-]+)\.json$/;function ty(e){return e.flatMap(t=>{const n=ey.exec(t);return n?[n[1]]:[]}).sort()}a(ty,"presetsOf");function kf(e,t){ni(e);return ty(t)}a(kf,"presetsOfSet");function $s(e){const t=e.replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/+$/,"");if(t.split("/").some(n=>n===".."||n===""))throw new Error(`artifact path ${e} is not a plain relative path`);return t}a($s,"normalise");var Vo=class extends Bt{static{a(this,"ArtifactNotLoaded")}preset;constructor(t,n){super(t);this.message=`contract artifact ${t} belongs to preset ${n}, which this build loads on demand: await ensurePresetArtifacts('${n}') first`;this.name="ArtifactNotLoaded";this.preset=n}};var wd=new Map;var yd=new Map;var gd=new Map;var wf=new Set;function Bw(e){for(const[t,n]of Object.entries(e)){if(typeof n!=="function")throw new Error(`lazy artifact loader for ${t} is not a function`);wd.set(t,n)}}a(Bw,"registerLazyArtifacts");function xf(e){return wd.has(e)&&!wf.has(e)}a(xf,"presetArtifactsPending");function ny(e){const t=wd.get(e);if(t===void 0)return Promise.resolve();let n=gd.get(e);if(n===void 0){n=t().then(r=>{for(const[o,i]of Object.entries(r)){if(typeof i!=="string")throw new Error(`artifact ${o} is not text`);yd.set($s(o),i)}wf.add(e)});n.catch(()=>gd.delete(e));gd.set(e,n)}return n}a(ny,"ensurePresetArtifacts");var ry=/(?:^|\/)curve\.(?:ctor\.)?([A-Za-z0-9_-]+?)(?:\.artifact|\.ctor)?\.json$/;function Kw(e){const t=new Map;for(const[n,r]of Object.entries(e)){if(typeof r!=="string")throw new Error(`artifact ${n} is not text`);t.set($s(n),r)}return{readText(n){const r=$s(n);const o=t.get(r)??yd.get(r);if(o!==void 0)return o;const i=ry.exec(r)?.[1];if(i!==void 0&&xf(i))throw new Vo(n,i);throw new Bt(n)},list(n){const r=`${$s(n)}/`;const o=new Set;for(const i of[...t.keys(),...yd.keys()]){if(!i.startsWith(r))continue;const s=i.slice(r.length);if(!s.includes("/"))o.add(s)}return[...o].sort()}}}a(Kw,"artifactSourceFromFiles");var Ls;function Mw(e){const t=Ls;Ls=e;return t}a(Mw,"installArtifactSource");function ri(){if(Ls===void 0)throw new jo;return Ls}a(ri,"artifactSource");function qo(e){return JSON.parse(ri().readText(e))}a(qo,"readArtifactJson");function Rn(e){return{version:e.version,inputs:e.inputs.map(t=>({transactionId:t.previousOutpoint.transactionId,index:t.previousOutpoint.index,sequence:t.sequence,signatureScript:t.signatureScript??"",computeBudget:t.computeBudget})),outputs:e.outputs.map(t=>({value:t.value,scriptVersion:t.scriptPublicKey.version,script:t.scriptPublicKey.script,covenant:t.covenant?{authorizingInput:t.covenant.authorizingInput,covenantId:t.covenant.covenantId.toString()}:null})),lockTime:e.lockTime,subnetworkId:e.subnetworkId,gas:e.gas,payload:e.payload}}a(Rn,"plainTxFromSdk");function oy(e){for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(n>=55296&&n<=56319){const r=e.charCodeAt(t+1);if(!(r>=56320&&r<=57343))return true;t++}else if(n>=56320&&n<=57343)return true}return false}a(oy,"hasLoneSurrogate");function vf(e,{maxDepth:t=64}={}){let n=0;const r=a(d=>{throw new Error(`I-JSON: ${d} at ${n}`)},"err");const o=a(()=>{while(n<e.length&&" \n\r".includes(e[n]))n++},"ws");const i=a(()=>{n++;let d="";for(;;){if(n>=e.length)r("unterminated string");const l=e[n++];if(l==='"')break;if(l==="\\"){const u=e[n++];if(u==="u"){const p=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(p))r("bad \\u escape");d+=String.fromCharCode(parseInt(p,16));n+=4}else{const p={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:" "};if(u===void 0||!(u in p))r(`bad escape \\${u}`);d+=p[u]}}else{if(l.charCodeAt(0)<32)r("control character in string");d+=l}}if(oy(d))r("string contains a lone surrogate");return d},"str");const s=a(d=>{o();const l=e[n];if(l==="{"){if(d>t)r(`nesting deeper than ${t}`);n++;const m={};const y=new Set;o();if(e[n]==="}"){n++;return m}for(;;){o();if(e[n]!=='"')r("expected member name");const g=i();if(y.has(g))r(`duplicate member name "${g}"`);y.add(g);o();if(e[n]!==":")r('expected ":"');n++;Object.defineProperty(m,g,{value:s(d+1),enumerable:true,writable:true,configurable:true});o();if(e[n]===","){n++;continue}if(e[n]==="}"){n++;return m}r('expected "," or "}"')}}if(l==="["){if(d>t)r(`nesting deeper than ${t}`);n++;const m=[];o();if(e[n]==="]"){n++;return m}for(;;){m.push(s(d+1));o();if(e[n]===","){n++;continue}if(e[n]==="]"){n++;return m}r('expected "," or "]"')}}if(l==='"')return i();if(e.startsWith("true",n)){n+=4;return true}if(e.startsWith("false",n)){n+=5;return false}if(e.startsWith("null",n)){n+=4;return null}const u=/^-?(0|[1-9]\d*)(\.\d+)?([eE][+-]?\d+)?/.exec(e.slice(n));if(!u)r("unexpected character");n+=u[0].length;const p=Number(u[0]);if(!Number.isFinite(p))r(`number ${u[0]} is not a finite binary64`);return p},"value");const c=s(1);o();if(n!==e.length)r("trailing characters");return c}a(vf,"parseIJSON");function ay(e){if(e.length===0)return{valid:false,reason:"empty payload (no codec prefix)"};if(e[0]!==0)return{valid:false,reason:`unknown codec prefix 0x${e[0].toString(16).padStart(2,"0")}`};let t;try{t=new TextDecoder("utf-8",{fatal:true,ignoreBOM:true}).decode(e.subarray(1))}catch{return{valid:false,reason:"payload is not valid UTF-8"}}if(t.charCodeAt(0)===65279)return{valid:false,reason:"payload starts with a byte-order mark",text:t};let n;try{n=vf(t)}catch(r){return{valid:false,reason:r.message,text:t}}if(n===null||typeof n!=="object"||Array.isArray(n))return{valid:false,reason:"JSON value is not an object",text:t};return{valid:true,object:n,text:t}}a(ay,"decodeDeclaration");function Sf(e,t=4096){const n={name:e.name,symbol:e.symbol,decimals:e.decimals};if(e.image!==void 0)n["image"]=e.image;if(e.description!==void 0)n["description"]=e.description;if(e.links!==void 0)n["links"]=e.links;const r=E(Uint8Array.of(0),new TextEncoder().encode(JSON.stringify(n)));if(r.length>t)throw new Error(`declaration is ${r.length} bytes, above the ${t}-byte limit`);const o=ay(r);if(!o.valid)throw new Error(`metadata does not round-trip as an I-JSON declaration: ${o.reason}`);return r}a(Sf,"encodeDeclaration");var ke=100000000n;var Pt=5n*ke;var ut=100n;var nr=20n*ut;var Af=50n;var xd=ke;var Ns=1000000000000n;var oi=5e5;var vd=5e5;var Sd=1e6;var Td=Ns/BigInt(oi);var ai=4n*Ns/BigInt(oi);function Bs(e){let t=2+8;for(const n of e.inputs)t+=32+4+8+n.sigScriptLength+8+2;t+=8;for(const n of e.outputs)t+=8+2+8+n.spkLength+(n.hasCovenant?2+32:0);t+=8+20+8+32+8+e.payloadLength;return t}a(Bs,"serializedSize");function Tf(e){let t=0;for(const r of e.outputs)t+=2+r.spkLength;let n=0;for(const r of e.inputs)n+=r.computeBudget;return Bs(e)+t*10+n*100}a(Tf,"computeMass");var Pf=a(e=>Bs(e)*4,"transientMass");function Ad(e,t){return Math.ceil((63+e+(t?32:0))/100)}a(Ad,"plurality");function Cf(e,t){const n=Ns;let r=0n;let o=0n;for(const u of t){if(u.amount<=0n)throw new Error("storage mass: output value must be positive");r+=u.plurality;o+=n*u.plurality*u.plurality/u.amount}const i=e.reduce((u,p)=>u+p.plurality,0n);const s=r===1n||e.length<=2&&(i===1n||r===2n&&i===2n);if(s){const u=e.reduce((p,m)=>p+n*m.plurality*m.plurality/m.amount,0n);return o>u?o-u:0n}const c=e.reduce((u,p)=>u+p.amount,0n);let d=c/i;if(d<1n)d=1n;const l=i*(n/d);return o>l?o-l:0n}a(Cf,"storageMass");function Un(e){const t=e.inputs.map(u=>({plurality:BigInt(Ad(u.spkLength,u.hasCovenant)),amount:u.amount}));const n=e.outputs.map(u=>({plurality:BigInt(Ad(u.spkLength,u.hasCovenant)),amount:u.value}));const r=Bs(e);const o=Tf(e);const i=Pf(e);const s=Math.ceil(i/2);const c=Number(Cf(t,n));const d=Math.max(o,s,c);const l=d===c&&c>=s&&c>=o?"storage":d===s?"transient":"compute";return{bytes:r,compute:o,transient:i,normalizedTransient:s,storage:c,max:d,minFee:BigInt(d)*ut,binding:l}}a(Un,"masses");var Wo=class extends Error{static{a(this,"FeerateOutOfRange")}feerate;min=ut;max=nr;constructor(t,n="feerate"){super(`${n}: ${t} sompi per gram is outside the accepted range ${ut}..${nr}`);this.name="FeerateOutOfRange";this.feerate=t}};function ii(e,t="feerate"){if(e>nr)throw new Wo(e,t);return e<ut?ut:e}a(ii,"boundedFeerate");function iy(e){if(e>nr)return nr;return e<ut?ut:e}a(iy,"clampFeerate");function Br(e){const t=Af*e;return t>xd?t:xd}a(Br,"feeCeiling");var Nr=class extends Error{static{a(this,"FeeAboveCeiling")}fee;ceiling;minFee;constructor(t,n,r){const o=Br(r);super(`${t}: fee ${n} sompi is above the ceiling ${o} (model minimum ${r}); refused so no surplus can become miner fee`);this.name="FeeAboveCeiling";this.fee=n;this.ceiling=o;this.minFee=r}};function Pd(e){if(e.storage>oi)throw new Error(`storage mass ${e.storage} exceeds the block limit ${oi}: an output is below its floor`);if(e.compute>vd)throw new Error(`compute mass ${e.compute} exceeds the block limit ${vd}`);if(e.transient>Sd)throw new Error(`transient mass ${e.transient} exceeds the block limit ${Sd}`)}a(Pd,"assertMinable");var ve=Object.freeze({p2pk:11,tokenLeaderCovenant2Out:5,tokenLeaderCovenant1Out:6,tokenLeaderSigned1Out:16,tokenLeaderSigned2Out:15,tokenLeaderSigned3Out:17,tokenLeaderSignedMerge2:16,tokenLeaderSignedMerge3:19,tokenLeaderBorrow:8,tokenDelegatorCovenant:4,tokenDelegatorSigned:14,curveInit:13,curveBuy:16,curveSell:15,curveSweep:5,curveGraduate:16,poolSwapKasForTokens:14,poolSwapTokensForKas:13,poolSweep:3});var sy=Object.freeze({...ve,curveInit:14,curveBuy:16,curveSell:15,curveSweep:5,curveGraduate:17,poolSwapKasForTokens:14,poolSwapTokensForKas:13,poolSweep:3});var si=Object.freeze({...sy,curveGraduate:27,poolSwapKasForTokens:20,poolSwapTokensForKas:19,poolSweep:9,poolBindLp:14,poolAddLiquidity:30,poolRemoveLiquidity:30});var Ks=Object.freeze({...si,curveGraduate:29,poolSwapKasForTokens:23,poolSwapTokensForKas:23,poolSweep:10,poolBindLp:15,poolAddLiquidity:31,poolRemoveLiquidity:31});var zw=Object.freeze({vaultBuy:19,depositWithVault:1,depositMerge:1,splitterSplit:1,splitterMerge:1});function Cd(e){if(e==="v1")return si;throw new Error(`no budget table for contract version ${String(e)}`)}a(Cd,"budgetsFor");var cy=20;var Ef=30;var dy=31;function uy(e){if(e==="v1")return Ef;throw new Error(`no budget ceiling for contract version ${String(e)}`)}a(uy,"budgetCeilingFor");function Ct(e,t){if(t===1&&e===3)return ve.tokenLeaderSignedMerge3;if(t===1&&e===2)return ve.tokenLeaderSignedMerge2;if(t===1)return ve.tokenLeaderSigned1Out;if(t===2)return ve.tokenLeaderSigned2Out;if(t===3)return ve.tokenLeaderSigned3Out;throw new Error(`no budget for a signed leader with ${t} outputs`)}a(Ct,"signedLeaderBudget");function ci(e){return Math.ceil(Math.max(0,e-9999)/1e4)}a(ci,"budgetCovering");function Kr(e){return(e-9999)%1e4===0?(e-9999)/1e4:void 0}a(Kr,"budgetFromLimit");var Jw=Object.freeze({orderFill:1,orderCancel:1,orderRefund:1,potLeader:8});var Ed="2.1.0";var zo=class extends Error{static{a(this,"SdkNotInstalled")}constructor(){super("the Kaspa SDK is not installed: import the package through its Node entry, or await initWeb() first");this.name="SdkNotInstalled"}};var Mr;var Fr;function ly(e){const t=typeof e.version==="function"?e.version():void 0;if(t!==Ed)throw new Error(`SDK reports version ${JSON.stringify(t)}, expected ${Ed}`);Mr=e}a(ly,"installSdk");function Qw(e){Fr=e}a(Qw,"registerSdkLoader");function fy(){return Mr!==void 0||Fr!==void 0}a(fy,"sdkAvailable");function Zw(e,t){const n=Mr;const r=Fr;Mr=e;Fr=void 0;try{return t()}finally{Mr=n;Fr=r}}a(Zw,"withSdk");function Nn(){if(Mr===void 0){if(Fr===void 0)throw new zo;ly(Fr())}return Mr}a(Nn,"sdk");var an="testnet-10";function Dr(e,t){if(e===null||e===void 0)throw new Error(`${t} is missing`);return e}a(Dr,"required");var rr=0;var le=1000000n;var Yo=Ve;var Xo=Object.freeze({bindLp:["byte[]","byte[]"],addLiquidity:["int",Pn],removeLiquidity:["int",Pn]});function Ms(e){return e.length===37&&e[0]===0&&e[1]===0&&e[2]===170&&e[3]===32&&e[36]===135}a(Ms,"isP2shSpk37");function _f(e,t,n){const r=qo(t);const o=r.contracts[e];if(!o)throw new Error(`${t}: no contract ${e}`);const i=Uint8Array.from(o.compiled.bytecode);const{offset:s,len:c}=o.compiled.state_span;const d=i.subarray(0,s);const l=i.subarray(s+c);const u=Lt(d,l);const p=h(Uint8Array.from(o.compiled.template_hash));if(u!==p)throw new Error(`${t}: recomputed template hash ${u} != artifact ${p}`);const m={};for(const[y,g]of Object.entries(o.entries))m[y.replace("__covenant_entrypoint_auth_","")]=g.dispatch_tag.toLowerCase();return{name:e,version:n,prefix:d,suffix:l,stateOffset:s,stateLength:c,templateHash:u,tags:m,bytecode:i,artifactPath:t}}a(_f,"templateFromArtifact");function Kt(e,t){if(e.kind!=="int")throw new Error(`ctor[${t}] is ${e.kind}, expected int`);return BigInt(e.value)}a(Kt,"ctorInt");function Jo(e,t,n){if(e.kind!=="bytes"||e.value.length!==n)throw new Error(`ctor[${t}] is not byte[${n}]`);return Uint8Array.from(e.value)}a(Jo,"ctorBytes");function Fs(e,t=ui()){const n=t.version;const r=t.revision;const o=yf(e,n,r);const i={..._f("Curve",gf(e,n,r),n),...r===void 0?{}:{revision:r}};const s=ri().readText(o);const c=JSON.parse(s);const d=19;if(c.length!==d)throw new Error(`${o}: expected ${d} constructor values, got ${c.length}`);const l={p0:Kt(c[4],4),k:Kt(c[5],5),lot:Kt(c[6],6),curveLots:Kt(c[7],7),gradReserve:Kt(c[8],8),feeBps:Kt(c[9],9),treasurySpk:If(c[10],10,n),creatorSpk:Jo(c[11],11,nt),tokenH:h(Jo(c[12],12,32)),tokenPrefixLen:Number(Kt(c[13],13)),tokenSuffixLen:Number(Kt(c[14],14)),poolH:h(Jo(c[15],15,32)),tokenCellKas:Kt(c[16],16),openWindowLots:Kt(c[17],17),openWindowMaxLots:Kt(c[18],18)};if(l.tokenH!==qe)throw new Error(`preset ${e}: tokenH ${l.tokenH} is not the reference template`);if(l.poolH!==t.templateHash)throw new Error(`preset ${e}: poolH ${l.poolH} != pool artifact ${t.templateHash}`);if(l.tokenPrefixLen!==1||l.tokenSuffixLen!==3885)throw new Error(`preset ${e}: token template lengths ${l.tokenPrefixLen}/${l.tokenSuffixLen}`);if(!Jt(l.creatorSpk))throw new Error(`preset ${e}: creatorSpk is not a version-0 P2PK script`);if(!Id(n,l.treasurySpk)){throw new Error(`preset ${e}: treasurySpk is not a version-0 P2PK script or the P2SH of a fee splitter`)}else if(t.treasurySpk!==void 0&&!M(l.treasurySpk,t.treasurySpk)){throw new Error(`preset ${e}: treasurySpk is not the v1 pool's treasury script`)}const u=To(i.bytecode.subarray(i.stateOffset,i.stateOffset+i.stateLength));if(!M(u.tokenCovId,Ve)||u.lotsSold!==0n||u.feeAccrued!==0n||u.phase!==xr){throw new Error(`preset ${e}: constructor state is not the uninitialised curve`)}for(const p of["init","buy","sell","sweep","graduate"])if(!i.tags[p])throw new Error(`preset ${e}: artifact lacks entry ${p}`);return{...i,version:n,name:"Curve",preset:e,params:l,ctorPath:o,ctorSha256:pd(s)}}a(Fs,"loadCurveTemplate");function py(e,t){return Fs(t,ui(e))}a(py,"loadCurveTemplateOf");function ui(e=We,t){const n=ei(e);const r=my(n,bf(n,t),hf(n,t));return t===void 0?r:{...r,revision:t}}a(ui,"loadPoolTemplate");function my(e,t,n){const r=_f("Pool",t,e);const o=qo(n);const i=9;if(o.length!==i)throw new Error(`${n}: expected ${i} constructor values, got ${o.length}`);const s=i-2;const c=h(Jo(o[s],s,32));if(c!==qe)throw new Error(`${n}: tokenTemplateHash ${c} is not the reference template`);if(r.stateLength!==Cc(e))throw new Error(`${n}: state span length ${r.stateLength}, expected ${Cc(e)}`);const d=Fe(e);const l=d?["swapKasForTokens","swapTokensForKas","sweep",...Object.keys(Xo)]:["swapKasForTokens","swapTokensForKas","sweep"];for(const p of l)if(!r.tags[p])throw new Error(`pool artifact lacks entry ${p}`);if(d){const p=Oc(r.bytecode.subarray(r.stateOffset,r.stateOffset+r.stateLength));if(So(p)!=="v3"||!M(p.lpCovId,Yo)||p.lpShares!==Yu){throw new Error(`${n}: constructor state is not an unbound 139-byte pool at the graduation share count`)}}const u=If(o[i-1],i-1,e);if(!Id(e,u))throw new Error(`${n}: treasurySpk is not a version-0 P2PK script or the P2SH of a fee splitter`);return{...r,name:"Pool",tokenH:c,treasurySpk:u}}a(my,"poolTemplateFrom");function If(e,t,n){if(n==="v1"&&e.kind==="bytes"&&e.value.length===37)return Jo(e,t,37);return Jo(e,t,nt)}a(If,"treasuryCtorBytes");function Id(e,t){return Jt(t)||e==="v1"&&Ms(t)}a(Id,"isTreasurySpkOf");function Ds(){const e=qo(Rs);const t=e.contracts.KCC20;const n=_(t.bytecode_hex);if(n.length!==4031)throw new Error(`reference bytecode is ${n.length} B, expected 4031`);if(t.state_span.offset!==1||t.state_span.len!==145)throw new Error("reference state span is not (1, 145)");const r=Rt(n,1,145);if(r!==qe||t.template_hash!==r)throw new Error(`reference template hash ${r} != ${qe}`);return{templateHash:r,prefix:n.subarray(0,1),suffix:n.subarray(146),bytecode:n}}a(Ds,"loadTokenTemplate");function Qo(e,t,n=Lf()){const r=E(e.prefix,ae(_(e.templateHash)),vt.encode(t),e.suffix);if(r.length!==4031)throw new Error(`token program is ${r.length} B`);const o=n.identifyTemplate(r);if(o.templateHash!==e.templateHash)throw new Error(`token program identifies as ${o.templateHash}`);return r}a(Qo,"tokenProgram");function Zo(e,t){const n=E(e.prefix,Ao(t),e.suffix);const r=Rt(n,e.stateOffset,e.stateLength);if(r!==e.templateHash)throw new Error(`curve program hashes to ${r}, expected ${e.templateHash}`);return n}a(Zo,"curveProgram");function li(e,t){if(So(t)!==vo(e.version))throw new Error(`a ${So(t)} pool state does not fit the ${e.version} pool template`);const n=E(e.prefix,Ec(t),e.suffix);const r=Rt(n,e.stateOffset,e.stateLength);if(r!==e.templateHash)throw new Error(`pool program hashes to ${r}, expected ${e.templateHash}`);return n}a(li,"poolProgram");function Ue(e,t,n=Ve){return xt({amount:e,owner:_(t),ownerScheme:kt,borrowScheme:rr,extensionCommitment:n})}a(Ue,"covenantOwnedToken");function $d(e,t,n=Ve){if(t.length!==32)throw new Error("a script owner is the 32-byte hash of the script");return xt({amount:e,owner:t,ownerScheme:3,borrowScheme:rr,extensionCommitment:n})}a($d,"scriptOwnedToken");function ea(e){return se(e).subarray(2,34)}a(ea,"scriptHashOf");function Bn(e,t,{borrowScheme:n=rr,borrowGuard:r,extensionCommitment:o=Ve}={}){if(t.length!==32)throw new Error("user token owner must be a 32-byte x-only public key");return xt({amount:e,owner:t,ownerScheme:Xi,borrowScheme:n,...r?{borrowGuard:r}:{},extensionCommitment:o})}a(Bn,"userToken");var gy=Object.freeze(["v1-2026-10-18-final","v1-kasseal-mainnet-tn10","v1-kasseal-mainnet","v1-kasseal-mainnet-2-tn10","v1-kasseal-mainnet-2"]);function $f(e){return e.version==="v1"&&(e.revision===void 0||gy.includes(e.revision))}a($f,"lpBoundToPool");function fi(e,t){return $f(e)?_(t):new Uint8Array(32)}a(fi,"lpExtensionOf");function Mt(e,t){return e.owner.schemeByte===kt&&h(e.owner.identifier)===t}a(Mt,"isCovenantOwnedBy");var Of;function Lf(){Of??=Is();return Of}a(Lf,"defaultRegistry");function Od(e){return{templateHash:e.templateHash,layoutId:e.name==="Curve"?"kasseal-curve-53":`kasseal-pool-${e.stateLength}`,stateOffset:e.stateOffset,stateLength:e.stateLength,prefixHex:h(e.prefix),schemes:new Map,recognisedOnly:`${e.name} state is decoded by @kasseal/txbuilder program.ts (${e.name==="Curve"?"decodeCurveState":"decodePoolState"})`,provenance:`${e.artifactPath} compiled.state_span (${e.stateOffset}, ${e.stateLength}); template hash recomputed on load`}}a(Od,"templateDescriptor");var di=class{static{a(this,"CellDecoder")}registry;curve;pool;token;constructor(t,n,r=Ds()){this.curve=t;this.pool=n;this.token=r;this.registry=Is().registerTemplate(Od(t)).registerTemplate(Od(n))}decode(t){const n=this.registry.identifyTemplate(t);if(n.templateHash===hs.templateHash){const o=this.registry.assertRoundTrip(t,n.templateHash);return{kind:"token",state:o,templateHash:n.templateHash,stateHex:h(vt.encode(o))}}const r=t.subarray(n.stateOffset,n.stateOffset+n.stateLength);if(n.templateHash===this.curve.templateHash)return{kind:"curve",state:To(r),templateHash:n.templateHash,stateHex:h(r)};if(n.templateHash===this.pool.templateHash)return{kind:"pool",state:Oc(r),templateHash:n.templateHash,stateHex:h(r)};throw new Error(`program identifies as unknown template ${n.templateHash}`)}spk(t){return se(t)}};var sn=class extends Error{static{a(this,"StateJsonError")}field;constructor(t,n,r){super(`${t} state JSON: ${n} ${r}`);this.name="StateJsonError";this.field=n}};function Ld(e,t){if(typeof e!=="object"||e===null||Array.isArray(e))throw new sn(t,"(root)","is not an object");return e}a(Ld,"jsonRecord");function Hr(e,t,n){const r=e[t];if(typeof r==="string"&&/^-?[0-9]+$/.test(r))return BigInt(r);if(typeof r==="number"&&Number.isSafeInteger(r))return BigInt(r);throw new sn(n,t,r===void 0?"is missing":"is not a decimal integer")}a(Hr,"jsonBig");function _d(e,t,n){const r=e[t];const o=typeof r==="number"?r:typeof r==="string"&&/^[0-9]+$/.test(r)?Number(r):NaN;if(!Number.isInteger(o)||o<0||o>255)throw new sn(n,t,r===void 0?"is missing":"is not a byte");return o}a(_d,"jsonByte");function jr(e,t,n,r){const o=e[t];if(typeof o!=="string"||!/^([0-9a-f]{2})*$/.test(o))throw new sn(n,t,o===void 0?"is missing":"is not lowercase hex");if(r!==void 0&&o.length!==r*2)throw new sn(n,t,`is not ${r} bytes`);return _(o)}a(jr,"jsonHex");function ta(e){const t=rt(e);return{amount:t.amount.toString(),owner:h(t.owner),ownerScheme:t.ownerScheme,borrowScheme:t.borrowScheme,borrowGuard:h(t.borrowGuard),extensionCommitment:h(t.extensionCommitment)}}a(ta,"tokenStateToJson");function na(e){const t="token";const n=Ld(e,t);return xt({amount:Hr(n,"amount",t),owner:jr(n,"owner",t),ownerScheme:_d(n,"ownerScheme",t),borrowScheme:_d(n,"borrowScheme",t),borrowGuard:jr(n,"borrowGuard",t),extensionCommitment:jr(n,"extensionCommitment",t)})}a(na,"tokenStateFromJson");function Hs(e){return{tokenCovId:h(e.tokenCovId),lotsSold:e.lotsSold.toString(),feeAccrued:e.feeAccrued.toString(),phase:e.phase}}a(Hs,"curveStateToJson");function Rd(e){const t="curve";const n=Ld(e,t);return{tokenCovId:jr(n,"tokenCovId",t,32),lotsSold:Hr(n,"lotsSold",t),feeAccrued:Hr(n,"feeAccrued",t),phase:_d(n,"phase",t)}}a(Rd,"curveStateFromJson");function js(e){const t={tokenCovId:h(e.tokenCovId),kasScaled:e.kasScaled.toString(),tokenReserve:e.tokenReserve.toString(),lpShares:e.lpShares.toString()};return{...t,lpCovId:h(Dr(e.lpCovId,"pool state: lpCovId of a 139-byte state")),feeAccruedScaled:e.feeAccruedScaled.toString(),creatorSpk:h(Dr(e.creatorSpk,"pool state: creatorSpk of a 139-byte state"))}}a(js,"poolStateToJson");function Ud(e){const t="pool";const n=Ld(e,t);const r={tokenCovId:jr(n,"tokenCovId",t,32),kasScaled:Hr(n,"kasScaled",t),tokenReserve:Hr(n,"tokenReserve",t),lpShares:Hr(n,"lpShares",t),feeAccruedScaled:Hr(n,"feeAccruedScaled",t)};return{...r,lpCovId:jr(n,"lpCovId",t,32),creatorSpk:jr(n,"creatorSpk",t,nt)}}a(Ud,"poolStateFromJson");function Rf(e){if(e.name!=="Pool"||!Fe(e.version))return Yt[e.name];if(Kn(e))return{...Yt.Pool,...Xo,swapKasForTokens:Ha,swapTokensForKas:ja};const t=e.version==="v1"&&e.tags["swapKasForTokens"]===Cn;return{...Yt.Pool,...Xo,...t?{swapKasForTokens:Da}:{}}}a(Rf,"entrySignaturesOf");function Kn(e){if(e.name!=="Pool"||e.version!=="v1")return false;const t=e.tags["swapKasForTokens"]===En;const n=e.tags["swapTokensForKas"]===On;if(t!==n)throw new Error(`pool template mixes a ${t?"composable":"exact-count"} buy with a ${n?"composable":"exact-count"} sell`);return t}a(Kn,"isComposablePool");function yy(e){const t=Rf(e);for(const n of Object.keys(e.tags))if(t[n]===void 0)throw new Error(`${e.name}.${n}: artifact entry has no declared signature`);for(const[n,r]of Object.entries(t)){const o=Qt(n,r);if(e.tags[n]!==o)throw new Error(`${e.name}.${n}: artifact tag ${e.tags[n]} != derived ${o}`)}}a(yy,"assertEntryTags");var Ce=65;var ra=new Uint8Array(Ce);var pi=0;var by=Lo;var cn=ie;var Uf=Le;var hy=ps;var Nd=a(e=>E(Uint8Array.of(4),_(e)),"tagPush");var Nf=Or;function mi(e,t,n){const r=os(t,n);const o=E(r.bytes,cn(e));let i;if(n.length===1+Ce&&n[0]===pi){const s=r.groupedFieldPushes.reduce((c,d)=>c+d.length,0);i=s+1+1;if(h(o.subarray(i-2,i))!=="4200")throw new Error("leader witness slot not where expected")}return{bytes:o,signatureOffset:i}}a(mi,"tokenLeaderSigScript");function Bd(e,t){return mi(e,t,E(Uint8Array.of(pi),ra))}a(Bd,"tokenLeaderSignedSigScript");function Kd(e,t){return mi(e,t,Uint8Array.of(pi))}a(Kd,"tokenLeaderCovenantSigScript");function Md(e,t){const n=E(cn(t),Nd(_o.transferDelegator.tagHex),cn(e));return{bytes:n,signatureOffset:t.length===Ce?1:void 0}}a(Md,"tokenDelegatorSigScript");function Fd(e){return Md(e,new Uint8Array(0))}a(Fd,"tokenDelegatorCovenantSigScript");function Dd(e){return Md(e,ra)}a(Dd,"tokenDelegatorSignedSigScript");function Bf(e,t,n,r){if(n.length!==e.params.tokenPrefixLen||r.length!==e.params.tokenSuffixLen)throw new Error("init: token template lengths do not match the curve constants");return Ft(e,"init",St({contract:"curve",entry:"init",tokenPrefix:n,tokenSuffix:r},t))}a(Bf,"curveInitSigScript");function Hd(e,t,n,r){if(n<=0n)throw new Error("buy: n must be positive");return Ft(e,"buy",St({contract:"curve",entry:"buy",n,user:r},t))}a(Hd,"curveBuySigScript");function jd(e,t,n){if(n<=0n)throw new Error("sell: n must be positive");return Ft(e,"sell",St({contract:"curve",entry:"sell",n},t))}a(jd,"curveSellSigScript");function Vd(e,t){return Ft(e,"sweep",St({contract:"curve",entry:"sweep"},t))}a(Vd,"curveSweepSigScript");function Kf(e,t,n){return Ft(e,"graduate",St({contract:"curve",entry:"graduate",poolPrefix:n.prefix,poolSuffix:n.suffix},t))}a(Kf,"curveGraduateSigScript");function Gd(e,t,n,r,o,i=gi){if(n<=0n)throw new Error("swapKasForTokens: kasInScaled must be positive");if(e.tags["swapKasForTokens"]===En){if(o===void 0)throw new Error("swapKasForTokens: this pool takes an on-chain minTokensOut");return Ft(e,"swapKasForTokens",St({contract:"pool",entry:"swapKasForTokens",kasInScaled:n,minTokensOut:o,...i},t))}const s=e.tags["swapKasForTokens"]===Cn;if(s&&o===void 0)throw new Error("swapKasForTokens: this pool takes an on-chain minTokensOut");const c=s?{contract:"pool",entry:"swapKasForTokens",kasInScaled:n,minTokensOut:o,user:r}:{contract:"pool",entry:"swapKasForTokens",kasInScaled:n,user:r};return Ft(e,"swapKasForTokens",St(c,t))}a(Gd,"poolSwapKasForTokensSigScript");function qd(e,t,n,r,o=Mf){if(n<=0n)throw new Error("swapTokensForKas: tokensIn must be positive");if(r<0n)throw new Error("swapTokensForKas: minOutScaled must be non-negative");const i=e.tags["swapTokensForKas"]===On;return Ft(e,"swapTokensForKas",St({contract:"pool",entry:"swapTokensForKas",tokensIn:n,minOutScaled:r,...i?o:{}},t))}a(qd,"poolSwapTokensForKasSigScript");var gi=Object.freeze({reserveK:0n,restK:0n});var Mf=Object.freeze({reserveK:1n,mergedK:0n});function Wd(e,t){return Ft(e,"sweep",St({contract:"pool",entry:"sweep"},t))}a(Wd,"poolSweepSigScript");function zd(e,t,n){if(!Fe(e.version))throw new Error(`bindLp: the ${e.version} pool has no bindLp entry`);if(n.prefix.length!==1||n.suffix.length!==3885)throw new Error("bindLp: token template lengths are not 1 / 3885");const r=Qt("bindLp",Xo["bindLp"]);const o=E(cn(n.prefix),cn(n.suffix),Nd(r),cn(t));return Ft(e,"bindLp",o)}a(zd,"poolBindLpSigScript");function Jd(e,t,n,r){return Ff(e,t,"addLiquidity",n,r)}a(Jd,"poolAddLiquiditySigScript");function Xd(e,t,n,r){return Ff(e,t,"removeLiquidity",n,r)}a(Xd,"poolRemoveLiquiditySigScript");function Ff(e,t,n,r,o){if(!Fe(e.version))throw new Error(`${n}: the ${e.version} pool has no ${n} entry`);if(r<=0n)throw new Error(`${n}: shares must be positive`);const i=Qt(n,Xo[n]);return Ft(e,n,E(Uf(r),Nf(o),Nd(i),cn(t)))}a(Ff,"poolLiquiditySigScript");function Ft(e,t,n){const r=er(n);const o=h(r[r.length-2].payload);if(e.tags[t]!==o)throw new Error(`${e.name}.${t}: artifact tag ${e.tags[t]} != encoded tag ${o}`);return n}a(Ft,"withTemplateTag");function ky(e){return er(e).map(t=>t.payload)}a(ky,"parsePushes");function yi(e,t,n){if(n.length!==Ce)throw new Error(`signature must be ${Ce} bytes, got ${n.length}`);if(t<0||t+Ce>e.length)throw new Error("signature slot outside the sigscript");const r=Uint8Array.from(e);r.set(n,t);return r}a(yi,"spliceSignature");function oa(e){const t=typeof e==="string"?_(e):e;if(t.length!==66||t[0]!==65)throw new Error(`unexpected P2PK sigscript layout: ${h(t.subarray(0,2))} length ${t.length}`);return t.subarray(1)}a(oa,"signatureFromP2pkSigScript");var bi=E(Uint8Array.of(65),ra);var B=a(e=>`${e.txid}:${e.index}`,"outpointKey");var Df=0xffffffffn;var Dt=class extends Error{static{a(this,"ResidualBelowMinimum")}residual;minimum;constructor(t,n,r,o){super(`${t}: residual output "${n}" would be ${r} sompi, below its minimum ${o}`);this.name="ResidualBelowMinimum";this.residual=r;this.minimum=o}};var Vf=10000000n;function Gf(e,t){const n=e.outputs.map(r=>({value:r.value,spkLength:r.spk.length,hasCovenant:r.binding!==void 0||r.cell!==void 0}));if(e.residual&&t!==void 0&&t>0n){n.push({value:t,spkLength:e.residual.spk.length,hasCovenant:e.residual.binding!==void 0||e.residual.cell!==void 0})}return{inputs:e.inputs.map(r=>({sigScriptLength:r.sigscript.length,computeBudget:r.budget,amount:r.amount,spkLength:r.spk.length,hasCovenant:r.covenantId!==void 0})),outputs:n,payloadLength:e.payload.length}}a(Gf,"shapeOf");function wy(e){const t=Yd(e);const n=e.inputs.reduce((c,d)=>c+d.amount,0n);const r=e.outputs.reduce((c,d)=>c+d.value,0n);let o=0n;let i=0n;let s;for(let c=0;c<10;c++){let d=n-r-o;if(e.residual===void 0){if(d<0n)throw new Error(`${e.name}: inputs ${n} do not cover outputs ${r} + fee ${o}`);i=0n}else if(e.residual.dropBelow!==void 0&&d<e.residual.dropBelow){i=0n;d=0n}else{if(d<e.residual.minimum)throw new Dt(e.name,e.residual.label,d,e.residual.minimum);i=d}s=Un(Gf(e,i));const l=BigInt(s.max)*t+e.feeMargin;if(e.residual===void 0){const u=n-r;if(u<l)throw new Error(`${e.name}: surplus ${u} is below the minimum fee ${l}`);o=u;break}if(i===0n){o=n-r;if(o<l)throw new Error(`${e.name}: residual dropped but the remaining ${o} sompi is below the minimum fee ${l}`);break}if(l===o)break;o=l}if(!s)throw new Error("unreachable");Pd(s);if(o>Br(s.minFee))throw new Nr(e.name,o,s.minFee);for(const c of e.outputs)Hf(e.name,c.label,c.value,c.binding!==void 0||c.cell!==void 0);if(i>0n&&e.residual)Hf(e.name,e.residual.label,i,e.residual.binding!==void 0||e.residual.cell!==void 0);return{fee:o,residualValue:i,masses:s}}a(wy,"estimate");function Yd(e){const t=e.feerate??ut;if(t<ut)throw new Error(`${e.name}: feerate ${t} is below the node's floor of ${ut} sompi per gram`);return ii(t,e.name)}a(Yd,"feerateOf");function Hf(e,t,n,r){const o=r?ai:Td;if(n<o)throw new Error(`${e}: output "${t}" of ${n} sompi is below the ${r?"covenant":"P2PK"} output floor ${o} (unminable)`)}a(Hf,"assertOutputFloor");function qf(e){const t=Nn();const{fee:n,residualValue:r,masses:o}=wy(e);const i=e.inputs.map(g=>({previousOutpoint:{transactionId:g.outpoint.txid,index:g.outpoint.index},signatureScript:h(g.sigscript),sequence:vy(e.name,g),sigOpCount:0,computeBudget:g.budget,utxo:{outpoint:{transactionId:g.outpoint.txid,index:g.outpoint.index},amount:g.amount,scriptPublicKey:new t.ScriptPublicKey(0,h(g.spk)),blockDaaScore:g.daaScore,isCoinbase:false}}));const s=e.outputs.map((g,b)=>({index:b,label:g.label,value:g.value,spk:g.spk,binding:g.binding,cell:g.cell}));if(e.residual&&r>0n){s.push({index:s.length,label:e.residual.label,value:r,spk:e.residual.spk,binding:e.residual.binding,cell:e.residual.cell})}const c=s.map(g=>new t.TransactionOutput(g.value,new t.ScriptPublicKey(0,h(g.spk))));const d=new t.Transaction({version:1,inputs:i,outputs:c,lockTime:xy(e),subnetworkId:ds,gas:0n,payload:h(e.payload)});if(e.genesisGroups.length>0)d.populateGenesisCovenants(e.genesisGroups.map(g=>new t.GenesisCovenantGroup(g.authorizingInput,[...g.outputs])));const l=d.outputs;s.forEach((g,b)=>{if(g.binding)l[b].covenant=new t.CovenantBinding(g.binding.authorizingInput,new t.Hash(g.binding.covenantId))});d.outputs=l;d.finalize();const u=e.genesisGroups.map(g=>{const b=e.inputs[g.authorizingInput];if(!b)throw new Error(`${e.name}: genesis group names input ${g.authorizingInput}, which does not exist`);const w=tt(b.outpoint.txid,b.outpoint.index,g.outputs.map(x=>({index:x,value:s[x].value,scriptVersion:0,script:s[x].spk})));for(const x of g.outputs){const S=d.outputs[x]?.covenant;if(!S||S.covenantId.toString()!==w||S.authorizingInput!==g.authorizingInput){throw new Error(`${e.name}: genesis output ${x} bound to ${S?.covenantId.toString()} (auth ${S?.authorizingInput}), expected ${w} (auth ${g.authorizingInput})`)}}return{group:g,covenantId:w,outpoint:b.outpoint}});const p=s.map(g=>{const b=d.outputs[g.index].covenant;const w=b?{authorizingInput:b.authorizingInput,covenantId:b.covenantId.toString()}:void 0;const x=g.cell&&g.cell.covenantId===void 0&&w?{...g.cell,covenantId:w.covenantId}:g.cell;return{...g,binding:w,cell:x}});const m=ot(Rn(d)).txid;if(m!==d.id)throw new Error(`${e.name}: KIP-24 txid ${m} != SDK txid ${d.id}`);const y=e.inputs.flatMap((g,b)=>g.signature?[{index:b,slot:g.signature}]:[]);return{plan:e,tx:d,txid:d.id,fee:n,masses:o,outputs:p,residualValue:r,inputsToSign:y,genesis:u,budgets:e.inputs.map(g=>g.budget)}}a(qf,"assemble");var jf=499999999999n;function xy(e){const t=e.lockTime??0n;if(typeof t!=="bigint"||t<0n||t>jf)throw new Error(`${e.name}: lock time ${String(t)} is not a DAA score in 0..${jf}`);return t}a(xy,"lockTimeOf");function vy(e,t){const n=t.sequence??0n;if(typeof n!=="bigint"||n<0n||n>Df)throw new Error(`${e}: input "${t.label}" sequence ${String(n)} is outside 0..${Df}`);return n}a(vy,"sequenceOf");function Sy(e,t,n){const r=e.inputsToSign.find(c=>c.index===t);if(!r)throw new Error(`input ${t} has no signature slot`);const o=e.tx.inputs;const i=o[t].signatureScript??"";const s=yi(hi(i),r.slot.offset,n);o[t].signatureScript=h(s);e.tx.inputs=o}a(Sy,"applySignature");function Ex(e,t){const n=Nn();const r=[];for(const{index:o,slot:i}of e.inputsToSign){const s=t(i,o);if(!s)continue;Sy(e,o,oa(n.createInputSignature(e.tx,o,s,n.SighashType.All)));r.push(o)}if(Rn(e.tx).inputs.length!==e.plan.inputs.length)throw new Error("input count changed while signing");if(e.tx.id!==e.txid)throw new Error(`txid changed while signing: ${e.tx.id} != ${e.txid}`);return r}a(Ex,"signWithKeys");function Ox(e){const t=e.tx.inputs;return e.inputsToSign.every(({index:n,slot:r})=>{const o=hi(t[n].signatureScript??"");return o.subarray(r.offset,r.offset+Ce).some(i=>i!==0)})}a(Ox,"isFullySigned");function Wf(e,t,n){const r=e.tx.inputs;if(!r[t])throw new Error(`no input ${t}`);r[t].computeBudget=n;e.tx.inputs=r;const o=e.budgets.map((s,c)=>c===t?n:s);const i=Un(Gf({...e.plan,inputs:e.plan.inputs.map((s,c)=>({...s,budget:o[c]}))},e.residualValue));return{...e,budgets:o,masses:i}}a(Wf,"patchBudget");function _x(e,t){if(t.length!==e.inputs.length)throw new Error("budgets length mismatch");return{...e,inputs:e.inputs.map((n,r)=>({...n,budget:t[r]}))}}a(_x,"withBudgets");function Ix(e){return Rn(e.tx)}a(Ix,"plainTx");function Z(e){return hi(Nn().payToAddressScript(e).script)}a(Z,"p2pkScript");function $x(e,t=0){const n=new Uint8Array(2+e.length);n[0]=t>>8&255;n[1]=t&255;n.set(e,2);return n}a($x,"versionedSpk");function zf(e){if(e.length<2)throw new Error("versioned spk too short");return{version:e[0]<<8|e[1],script:e.subarray(2)}}a(zf,"scriptOfVersionedSpk");function hi(e){const t=new Uint8Array(e.length/2);for(let n=0;n<t.length;n++)t[n]=parseInt(e.slice(n*2,n*2+2),16);return t}a(hi,"hexToBytes");function Vs(e,t){const n=Nn();const r=n.addressFromScriptPublicKey(new n.ScriptPublicKey(0,h(e)),t);if(!r)throw new Error("script public key has no address form");return r.toString()}a(Vs,"addressOfSpk");function Jf(e,t,n,r){return{label:t,outpoint:e.outpoint,amount:e.amount,spk:e.spk,daaScore:e.daaScore,covenantId:void 0,budget:n,sigscript:r,signature:{kind:"p2pk",offset:1,signer:e.address,sighashType:1}}}a(Jf,"fundingInput");var lt=1000000n;var Xf=30n;var Ay=20n;var Yf=10n;var Zd=5n;var eu=1000000n;var qs=1000n;var dn=1000000000n;var Vr=9000000000000n;var Qd=7000000000n;var Et=1200000000n;var aa=10n;function Ty(e){K(e,"sompi");if(e<0n)throw new ue(`KAS leg must be non-negative, got ${e}`);if(e%lt!==0n)throw new ue(`KAS leg ${e} sompi is not a multiple of ${lt} (0.01 KAS)`);return e/lt}a(Ty,"toKasScaled");function tu(e){K(e,"kasScaled");if(e<0n)throw new ue(`kasScaled must be non-negative, got ${e}`);return ee(e,lt,"kasScaled * 1e6")}a(tu,"fromKasScaled");function Ht(e){if(e===null||typeof e!=="object")throw new ue("pool must be an object");for(const t of["kasScaled","tokenReserve","feeAccruedScaled","dust"]){K(e[t],t);if(e[t]<0n)throw new ue(`${t} must be non-negative, got ${e[t]}`)}if(e.kasScaled===0n||e.tokenReserve===0n)throw new ue("pool reserves must both be positive");if(e.kasScaled+e.feeAccruedScaled>Vr){throw new ue(`kasScaled + feeAccruedScaled ${e.kasScaled+e.feeAccruedScaled} exceeds KAS_VALUE_MAX ${Vr}`)}if(e.tokenReserve>Et)throw new ue(`tokenReserve ${e.tokenReserve} exceeds TOKEN_RESERVE_MAX ${Et}`);if(e.dust>=lt)throw new ue(`dust ${e.dust} is not below ${lt}`);Gs(e)}a(Ht,"validatePool");function Gr(e){Ht(e);return Pe(ee(Pe(e.kasScaled,e.feeAccruedScaled,"kas + accrued"),lt,"(kas + accrued) * 1e6"),e.dust,"value + dust")}a(Gr,"poolCellValue");function Gs(e){return e.kasScaled*e.tokenReserve}a(Gs,"invariant");function ki(e,t){K(e,"escrowSompi");if(e<0n)throw new ue(`escrow must be non-negative, got ${e}`);const n={kasScaled:e/lt,tokenReserve:t,feeAccruedScaled:0n,dust:e%lt};Ht(n);return n}a(ki,"openPool");function wi(e,t=qs){Ht(e);K(t,"sweepMinScaled");if(e.feeAccruedScaled<t)throw new ue(`accrual ${e.feeAccruedScaled} is below the sweep threshold ${t}`);const n=Pe(tu(e.feeAccruedScaled),e.dust,"accrued * 1e6 + dust");return{pool:{...e,feeAccruedScaled:0n,dust:0n},payout:n}}a(wi,"sweepPool");function nu(e,t){K(e,"payout");if(e<0n)throw new ue(`payout must be non-negative, got ${e}`);if(t==="v2"){const n=e/2n;return{treasury:n,creator:e-n}}throw new ue(`unknown fee model version ${String(t)}`)}a(nu,"poolSweepSplit");function Qf(e,t="floor"){const n=Zt(ee(e,Tt-Xf,"gross * (10000 - 30)"),Tt);const r=ee(e,Yf,"gross * 10");const o=Zt(t==="nearest"?r+Tt/2n:r,Tt);const i=e-n;return{net:n,fee:{total:i,reserve:i-o,platform:o}}}a(Qf,"haircut");function Zf(e,t,n){const r=n==="capped"?ee(e.kasScaled,e.tokenReserve,"kasScaled * tokenReserve"):Gs(e);const o=n==="capped"?ee(t.kasScaled,t.tokenReserve,"kasScaled' * tokenReserve'"):Gs(t);if(o<r)throw new ue(`invariant violated: ${o} < ${r}`)}a(Zf,"assertNonDecreasing");function xi(e,t,n="uncapped",r="floor"){Ht(e);K(t,"kasInScaled");if(t<=0n)throw new X(`kasInScaled must be positive, got ${t}`);if(n==="capped"&&t>dn)throw new ue(`KAS leg ${t} (scaled) exceeds KAS_SCALED_MAX ${dn}`);if(n==="uncapped"&&t>Qd)throw new ue(`KAS leg ${t} (scaled) exceeds KAS_IN_MAX ${Qd}`);const{net:o,fee:i}=Qf(t,r);const s=Pe(e.kasScaled,o,"kas + net");const c=Zt(ee(e.tokenReserve,o,"tok * net"),s);if(c<=0n)throw new ue(`${t} scaled KAS buys no whole token at this depth`);const d={kasScaled:ct(Pe(e.kasScaled,t,"kas + in"),i.platform,"kas + in - platform"),tokenReserve:ct(e.tokenReserve,c,"tok - out"),feeAccruedScaled:Pe(e.feeAccruedScaled,i.platform,"accrued + platform"),dust:e.dust};Ht(d);Zf(e,d,n);return{pool:d,tokenOut:c,fee:i}}a(xi,"swapKasForTokens");function qr(e,t,n="uncapped",r="floor"){Ht(e);K(t,"tokenIn");if(t<=0n)throw new X(`tokenIn must be positive, got ${t}`);if(t>Et)throw new ue(`token leg ${t} exceeds TOKEN_RESERVE_MAX ${Et}`);const o=Pe(e.tokenReserve,t,"tok + in");const i=n==="capped"?Zt(ee(e.kasScaled,t,"kas * in"),o):e.kasScaled*t/o;const{net:s,fee:c}=Qf(i,r);if(s<=0n)throw new $r(`${t} tokens release no scaled KAS at this depth`);if(s<aa){throw new $r(`net payout ${s} scaled is below the pool's 0.1 KAS minimum (PAYOUT_MIN ${aa})`)}const d={kasScaled:ct(ct(e.kasScaled,s,"kas - net"),c.platform,"kas - net - platform"),tokenReserve:o,feeAccruedScaled:Pe(e.feeAccruedScaled,c.platform,"accrued + platform"),dust:e.dust};Ht(d);Zf(e,d,n);return{pool:d,kasOutScaled:s,fee:c}}a(qr,"swapTokensForKas");function Py(e,t){Ht(e);K(t,"lotSize");if(t<=0n)throw new X(`lotSize must be positive, got ${t}`);const n=tu(e.kasScaled);const r=n*t;if(r>ws*e.tokenReserve)throw new ue("spot price is not representable");return r/e.tokenReserve}a(Py,"spotPricePerLot");var ep=Ye/10n;var tp=10000000n;var ru=Ye;var Ws=Object.freeze({v2:50n});function qx(e){dt(e);const t=Ja(e.curve);const n=vs(e.curve);const r=ee(e.gradLots,e.lotSize,"GRAD_RESERVE");const o=ee(n,e.gradLots,"last * GRAD_LOTS");if(o===0n)throw new V("the last lot is free (p0 = k = 0): no graduation premium is defined");const i=(t-o)*Tt/o;return{raise:t,lastLotPrice:n,reserveTokens:r,openPricePerLot:{numerator:t,denominator:e.gradLots},openPricePerLotFloor:t/e.gradLots,premiumBps:i,finalLotFee:rd(e.curve)}}a(qx,"graduationEconomics");function np(e){dt(e);const t=Cy(e);if(t<ep){throw new V(`final-tranche fee ${t} sompi (the final ${tp} tokens) is below the ${ep} sompi (0.1 KAS) minimum`)}}a(np,"checkFactoryParams");function Cy(e){dt(e);const t=tp/e.lotSize;return od(e.curve,t<1n?1n:t>e.curve.curveLots?e.curve.curveLots:t)}a(Cy,"finalTrancheFee");function rp(e,t){K(e,"amount");K(t,"treasurySharePct");if(e<0n)throw new V(`amount must be non-negative, got ${e}`);if(t<0n||t>100n)throw new V(`treasurySharePct ${t} is outside [0, 100]`);const n=e/100n;const r=e%100n;const o=ee(n,t,"q * pct")+r*t/100n;return{treasury:o,creator:e-o}}a(rp,"feeSplit");function op(e,t){const n=Ws[t];if(n===void 0)throw new V(`unknown fee model version ${String(t)}`);return rp(e,n)}a(op,"curveFeeSplit");function Wx(e,t="v2"){dt(e);const n=e.curve.feeBps*(100n-e.treasurySharePct);if(n%100n!==0n)throw new V(`the creator's curve share ${n}/100 bps is not a whole number of basis points`);if(Ws[t]===void 0)throw new V(`unknown fee model version ${String(t)}`);return{curveBps:n/100n,poolBps:Zd}}a(Wx,"creatorEarnings");function ap(e,t,n){dt(e);K(t,"lotsSold");K(n,"feeAccrued");if(t<0n||t>e.curve.curveLots)throw new V(`lotsSold ${t} is outside [0, ${e.curve.curveLots}]`);if(n<0n)throw new V(`feeAccrued must be non-negative, got ${n}`);return t<e.curve.curveLots&&n>=e.sweepMinSompi}a(ap,"canSweep");function ip(e,t,n){dt(e);K(t,"curveValue");K(n,"feeAccrued");if(n<0n)throw new V(`feeAccrued must be non-negative, got ${n}`);if(t<n)throw new V(`curve value ${t} is below the accrued fees ${n}`);const r=ct(t,n,"curveValue - feeAccrued");if(n>=ru){return{...rp(n,e.treasurySharePct),pooled:0n,escrow:r}}return{treasury:0n,creator:0n,pooled:n,escrow:t}}a(ip,"graduationPayout");var Qe=eu;var ia=1000000000n;var ou=ia-Qe;var un=aa;var Ey=100n;var Oy=20n;var sp=5n*Ye;var cp=5n*Ye/2n;function sa(e,t,n,r){return r==="capped"?ee(e,t,n):e*t}a(sa,"prod");function dp(e,t){return t==="capped"?dn:Vr-e}a(dp,"kasMax");function Ee(e,t="capped"){if(e===null||typeof e!=="object")throw new At("pool must be an object");for(const n of["kasScaled","tokenReserve","feeAccruedScaled"])K(e[n],n);K(e.lpShares,"lpShares");if(e.lpShares<Qe)throw new At(`lpShares ${e.lpShares} is below the locked floor ${Qe}`);if(e.lpShares>ia)throw new At(`lpShares ${e.lpShares} exceeds SHARES_MAX ${ia}`);if(t==="capped"){if(e.kasScaled>dn)throw new At(`kasScaled ${e.kasScaled} exceeds KAS_SCALED_MAX ${dn}`);if(e.feeAccruedScaled>dn)throw new At(`feeAccruedScaled ${e.feeAccruedScaled} exceeds KAS_SCALED_MAX ${dn}`)}else if(e.kasScaled+e.feeAccruedScaled>Vr){throw new At(`kasScaled + feeAccruedScaled = ${e.kasScaled+e.feeAccruedScaled} exceeds KAS_VALUE_MAX ${Vr}`)}if(e.tokenReserve>Et)throw new At(`tokenReserve ${e.tokenReserve} exceeds TOKEN_RESERVE_MAX ${Et}`);Ht(e)}a(Ee,"validateLpPool");function ev(e,t,n="capped"){const r={...ki(e,t),lpShares:Qe};Ee(r,n);return r}a(ev,"openLpPool");function _y(e,t="capped"){Ee(e,t);return e.lpShares-Qe}a(_y,"lpIssued");function vi(e,t="capped"){return ou-_y(e,t)}a(vi,"lpInventory");function tv(e,t,n="capped"){K(t,"inventoryAmount");const r=vi(e,n);if(t!==r){throw new Fo(`L inventory ${t} != LP_SUPPLY - issued = ${r} (lpShares ${e.lpShares})`)}}a(tv,"checkLpInventory");function up(e,t,n){const r=sa(t.kasScaled,e.lpShares,"kas' * S",n);const o=sa(e.kasScaled,t.lpShares,"kas * S'",n);if(r<o)throw new $n(`KAS value per share would decrease: ${r} < ${o}`);const i=ee(t.tokenReserve,e.lpShares,"tok' * S");const s=ee(e.tokenReserve,t.lpShares,"tok * S'");if(i<s)throw new $n(`token value per share would decrease: ${i} < ${s}`)}a(up,"requireValuePerShareNonDecreasing");function lp(e){K(e,"shares");if(e<1n)throw new Bo(`shares must be at least 1, got ${e}`)}a(lp,"assertShares");function fp(e,t,n="capped"){Ee(t,n);lp(e);const r=Pe(t.lpShares,e,"S + shares");if(r>ia)throw new Ko(`S + shares = ${r} exceeds SHARES_MAX ${ia}`);const o=Ln(sa(e,t.kasScaled,"shares * kasScaled",n),t.lpShares);const i=Ln(ee(e,t.tokenReserve,"shares * tokenReserve"),t.lpShares);if(n==="uncapped"&&o<=un){throw new Ur(`KAS leg ${o} (scaled) is not above PAYOUT_MIN ${un} (the v1 minimum deposit)`)}const s=Pe(t.kasScaled,o,"kas + dKas");const c=dp(t.feeAccruedScaled,n);if(s>c)throw new Lr(`kasScaled would be ${s}, above ${n==="capped"?"KAS_SCALED_MAX":"KAS_VALUE_MAX - accrual"} ${c}`);const d=Pe(t.tokenReserve,i,"tok + dTok");if(d>Et)throw new Lr(`tokenReserve would be ${d}, above TOKEN_RESERVE_MAX ${Et}`);const l={kasScaled:s,tokenReserve:d,lpShares:r,feeAccruedScaled:t.feeAccruedScaled,dust:t.dust};up(t,l,n);Ee(l,n);return{dKasScaled:o,dTok:i,pool:l}}a(fp,"lpDeposit");function pp(e,t,n="capped"){Ee(t,n);lp(e);const r=t.lpShares-Qe;if(e>r)throw new Rr(`shares ${e} exceeds the issued ${r}: the locked ${Qe} cannot be withdrawn`);const o=Zt(sa(e,t.kasScaled,"shares * kasScaled",n),t.lpShares);if(o<un){throw new Ur(`KAS leg ${o} (scaled) is below PAYOUT_MIN ${un} (0.1 KAS)`)}const i=Zt(ee(e,t.tokenReserve,"shares * tokenReserve"),t.lpShares);if(i<1n)throw new Mo(`${e} shares release no whole token at this depth`);const s=ct(t.kasScaled,o,"kas - dKas");if(s<=0n)throw new $n(`KAS reserve would be ${s}`);const c=ct(t.tokenReserve,i,"tok - dTok");if(c<=0n)throw new $n(`token reserve would be ${c}`);const d={kasScaled:s,tokenReserve:c,lpShares:ct(t.lpShares,e,"S - shares"),feeAccruedScaled:t.feeAccruedScaled,dust:t.dust};up(t,d,n);Ee(d,n);return{dKasScaled:o,dTok:i,pool:d}}a(pp,"lpWithdraw");function nv(e,t,n="capped",r="floor"){Ee(e,n);const o=xi(e,t,n,r);const i={...o.pool,lpShares:e.lpShares};Ee(i,n);return{...o,pool:i}}a(nv,"lpSwapKasForTokens");function rv(e,t,n="capped",r="floor"){Ee(e,n);const o=qr(e,t,n,r);const i={...o.pool,lpShares:e.lpShares};Ee(i,n);return{...o,pool:i}}a(rv,"lpSwapTokensForKas");function ov(e,t=qs,n="capped"){Ee(e,n);const r=wi(e,t);return{...r,pool:{...r.pool,lpShares:e.lpShares}}}a(ov,"lpSweepPool");function au(e,...t){let n=e;for(const r of t)if(r<n)n=r;return n}a(au,"min");function zs(e,t="capped"){Ee(e,t);const n=e.lpShares;const r=ia-n;const o=(dp(e.feeAccruedScaled,t)-e.kasScaled)*n/e.kasScaled;const i=(Et-e.tokenReserve)*n/e.tokenReserve;return au(r,o,i)}a(zs,"maxDepositShares");function av(e,t,n="capped"){Ee(t,n);K(e,"kasScaledBudget");if(e<0n)throw new X(`kasScaledBudget must be non-negative, got ${e}`);const r=e*t.lpShares/t.kasScaled;return au(r,zs(t,n))}a(av,"sharesForKas");function iv(e,t,n="capped"){Ee(t,n);K(e,"tokBudget");if(e<0n)throw new X(`tokBudget must be non-negative, got ${e}`);const r=e*t.lpShares/t.tokenReserve;return au(r,zs(t,n))}a(iv,"sharesForTokens");function sv(e,t="capped"){Ee(e,t);const n=Ln(un*e.lpShares,e.kasScaled);const r=Ln(e.lpShares,e.tokenReserve);const o=n>r?n:r;return o<1n?1n:o}a(sv,"minWithdrawableShares");var Iy=2900000000000n;function iu(e,t="capped"){Ee(e,t);const n=e.lpShares*e.lpShares;const r=e.kasScaled*e.tokenReserve;const o=Ln(un*Et*n,r*Qe);const i=Ln((t==="capped"?dn:Iy)*n,r*Qe);const s=o>i?o:i;return s<1n?1n:s}a(iu,"permanentlyWithdrawableShares");function $y(e,t="capped"){Ee(e,t);const n=Ln(Oy*e.kasScaled,e.lpShares);const r=Ln(iu(e,t)*e.kasScaled,e.lpShares);let o=Ey;if(n>o)o=n;if(r>o)o=r;return o}a($y,"minDepositKasScaled");function mp(e,t="capped"){const n=$y(e,t);const r=(n-1n)*e.lpShares/e.kasScaled+1n;const o=iu(e,t);return r>o?r:o}a(mp,"minDepositShares");function cv(e,t,n,r="capped"){K(e,"held");K(t,"shares");if(t<0n||t>e)throw new X(`shares ${t} is outside [0, ${e}]`);const o=e-t;return o>0n&&o<iu(n,r)}a(cv,"withdrawalLeavesSmallPosition");function dv(e,t,n="capped"){Ee(t,n);K(e,"shares");if(e<0n)throw new X(`shares must be non-negative, got ${e}`);const r=t.lpShares-Qe;if(e>r)throw new Rr(`shares ${e} exceeds the issued ${r}`);const o=Zt(sa(e,t.kasScaled,"shares * kasScaled",n),t.lpShares);const i=Zt(ee(e,t.tokenReserve,"shares * tokenReserve"),t.lpShares);return{kasScaled:o,tok:i,withdrawable:e>=1n&&o>=un&&i>=1n}}a(dv,"positionValue");function uv(e,t="capped"){Ee(e,t);return sa(e.kasScaled,e.tokenReserve,"kasScaled * tokenReserve",t)}a(uv,"lpInvariant");function lv(e,t,n,r){for(const[o,i]of[["kRef",e],["sRef",t],["kNow",n],["sNow",r]]){K(i,o);if(i<=0n)throw new X(`${o} must be positive, got ${i}`)}return Math.sqrt(Number(n)/Number(e))*(Number(t)/Number(r))-1}a(lv,"shareValueGrowth");function Js(e,t){const n=op(t,vr(e));return{kind:"treasury",total:t,treasury:n.treasury,creator:n.creator}}a(Js,"curvePayoutSplit");function Xs(e,t){const n=nu(t,vr(e));return{kind:"treasury",total:t,treasury:n.treasury,creator:n.creator}}a(Xs,"poolPayoutSplit");function su(e){return e.treasury}a(su,"kassealShare");function gp(e,t,n,r){vr(e);const o=ip(t,n,r);return r>=ru?{escrow:o.escrow,pooled:0n,split:{kind:"treasury",total:r,treasury:o.treasury,creator:o.creator}}:{escrow:o.escrow,pooled:o.pooled,split:void 0}}a(gp,"graduationPayoutOf");var Wr=2n**256n-2n**32n-977n;var yp=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n;var Ly=0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798n;var Ry=0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8n;var fe=a((e,t=Wr)=>(e%t+t)%t,"mod");function kp(e,t,n=Wr){let r=1n;e=fe(e,n);while(t>0n){if(t&1n)r=r*e%n;e=e*e%n;t>>=1n}return r}a(kp,"pow");var Uy=a(e=>kp(e,Wr-2n),"inv");var cu=[0n,1n,0n];function wp([e,t,n]){if(n===0n||t===0n)return cu;const r=fe(4n*e*t*t);const o=fe(3n*e*e);const i=fe(o*o-2n*r);return[i,fe(o*(r-i)-8n*t**4n),fe(2n*t*n)]}a(wp,"dbl");function xp(e,t){if(e[2]===0n)return t;if(t[2]===0n)return e;const n=fe(e[2]*e[2]);const r=fe(t[2]*t[2]);const o=fe(e[0]*r);const i=fe(t[0]*n);const s=fe(e[1]*t[2]*r);const c=fe(t[1]*e[2]*n);if(o===i)return s===c?wp(e):cu;const d=fe(i-o);const l=fe(c-s);const u=fe(d*d);const p=fe(d*u);const m=fe(l*l-p-2n*o*u);return[m,fe(l*(o*u-m)-s*p),fe(d*e[2]*t[2])]}a(xp,"add");function bp(e,t){let n=cu;let r=e;while(t>0n){if(t&1n)n=xp(n,r);r=wp(r);t>>=1n}return n}a(bp,"mul");function Ny([e,t,n]){if(n===0n)return void 0;const r=Uy(n);return[fe(e*r*r),fe(t*r*r*r)]}a(Ny,"affine");var Ys=a(e=>BigInt(`0x${h(e)||"0"}`),"big");var hp=a((...e)=>Es(E(...e)),"sha");function By(e,...t){const n=hp(new TextEncoder().encode(e));return hp(n,n,...t)}a(By,"taggedHash");function vp(e,t,n){if(e.length!==32||t.length!==32||n.length!==64)return false;const r=Ys(e);if(r>=Wr)return false;const o=fe(r**3n+7n);let i=kp(o,(Wr+1n)/4n);if(fe(i*i)!==o)return false;if(i&1n)i=Wr-i;const s=Ys(n.subarray(0,32));const c=Ys(n.subarray(32));if(s>=Wr||c>=yp)return false;const d=fe(Ys(By("BIP0340/challenge",n.subarray(0,32),e,t)),yp);const l=Ny(xp(bp([Ly,Ry,1n],c),bp([r,fe(-i),1n],d)));return l!==void 0&&(l[1]&1n)===0n&&l[0]===s}a(vp,"schnorrVerify");var ua=1;var Ky=2;var My=4;var Fy=128;var Dy=[1,2,4,129,130,132];var Hy=new TextEncoder().encode("TransactionSigningHash");var ca=new Uint8Array(32);var jy="00".repeat(20);var jt=class extends Error{static{a(this,"SighashError")}constructor(t){super(t);this.name="SighashError"}};var zr=a(e=>wo(e,{outLen:32,key:Hy}),"hash");function tc(e,t,n){let r=BigInt(e);if(r<0n||r>=1n<<BigInt(8*t))throw new jt(`${n} ${String(e)} does not fit in ${t} bytes`);const o=new Uint8Array(t);for(let i=0;i<t;i++){o[i]=Number(r&0xffn);r>>=8n}return o}a(tc,"uint");var Qs=a((e,t)=>tc(e,1,t),"u8");var Zs=a((e,t)=>tc(e,2,t),"u16");var Sp=a((e,t)=>tc(e,4,t),"u32");var Jr=a((e,t)=>tc(e,8,t),"u64");var du=a(e=>E(Jr(e.length,"length"),e),"varBytes");function da(e,t,n){if(!/^([0-9a-f]{2})*$/i.test(e))throw new jt(`${n} is not hex`);const r=_(e);if(t!==void 0&&r.length!==t)throw new jt(`${n} must be ${t} bytes, got ${r.length}`);return r}a(da,"hex");function ec(e){const t=da(e,void 0,"scriptPublicKey");if(t.length<2)throw new jt("scriptPublicKey shorter than its version");return{version:t[0]|t[1]<<8,script:t.subarray(2)}}a(ec,"splitScriptPublicKey");var uu=a(e=>(e&Fy)!==0,"anyoneCanPay");var Ap=a(e=>(e&127)===Ky,"isNone");var Tp=a(e=>(e&127)===My,"isSingle");function lu(e,t,n=ua){if(!Dy.includes(n))throw new jt(`invalid sighash type 0x${n.toString(16)}`);const r=Number(e.version);const{inputs:o,outputs:i}=e;const s=o[t];if(!Number.isInteger(t)||s===void 0)throw new jt(`no input ${t} of ${o.length}`);if(!s.utxo)throw new jt(`input ${t} has no UTXO entry`);const c=uu(n)?ca:zr(E(...o.map((x,S)=>E(da(x.transactionId,32,`input ${S} transactionId`),Sp(x.index,`input ${S} index`)))));const d=Tp(n)||uu(n)||Ap(n)?ca:zr(E(...o.map((x,S)=>Jr(x.sequence,`input ${S} sequence`))));const l=uu(n)?ca:zr(E(...o.map((x,S)=>Qs(x.sigOpCount??0,`input ${S} sigOpCount`))));const u=a((x,S)=>{const A=ec(x.scriptPublicKey);const P=[Jr(x.value,`output ${S} value`),Zs(A.version,`output ${S} spk version`),du(A.script)];if(r>=1){P.push(Qs(x.covenant?1:0,"hasCovenant"));if(x.covenant)P.push(Zs(x.covenant.authorizingInput,`output ${S} authorizingInput`),da(x.covenant.covenantId,32,`output ${S} covenantId`))}return E(...P)},"hashOutput");let p;if(Ap(n))p=ca;else if(Tp(n))p=t>=i.length?ca:zr(u(i[t],t));else p=zr(E(...i.map(u)));const m=da(e.subnetworkId,20,"subnetworkId");const y=da(e.payload??"",void 0,"payload");const g=e.subnetworkId.toLowerCase()===jy&&y.length===0?ca:zr(du(y));const b=ec(s.utxo.scriptPublicKey);const w=[Zs(r,"version"),c,d];if(r<1)w.push(l);w.push(da(s.transactionId,32,`input ${t} transactionId`),Sp(s.index,`input ${t} index`),Zs(b.version,"spk version"),du(b.script),Jr(s.utxo.amount,"amount"),Jr(s.sequence,"sequence"));if(r<1)w.push(Qs(s.sigOpCount??0,"sigOpCount"));w.push(p,Jr(e.lockTime,"lockTime"),m,Jr(e.gas,"gas"),g,Qs(n,"hashType"));return h(zr(E(...w)))}a(lu,"sighash");function Pp(e,t,n=ua){return lu(JSON.parse(e),t,n)}a(Pp,"sighashOfTxJson");var Cp=1;var te=class extends Error{static{a(this,"FinalizeError")}constructor(t){super(t);this.name="FinalizeError"}};function Op(e,t){const n=JSON.parse(e.serializeToSafeJSON());if(n.inputs.length!==t.length)throw new te(`covenant ids for ${t.length} inputs, transaction has ${n.inputs.length}`);n.inputs.forEach((r,o)=>{const i=t[o];if(i===void 0)return;if(!r.utxo)throw new te(`input ${o} has no UTXO entry to carry its covenant id`);r.utxo.covenantId=i});return JSON.stringify(n)}a(Op,"safeJsonWithCovenantIds");function _p(e,t){const n=ot(Rn(e.tx)).txid;if(n!==e.tx.id||n!==e.txid)throw new te(`${e.plan.name}: txidV1 ${n}, SDK ${e.tx.id}, assembled ${e.txid}`);const r=e.inputsToSign.map(({index:o,slot:i})=>{if(i.kind==="p2pk")return{index:o,kind:"p2pk",sighashType:1};return{index:o,kind:i.kind==="token-leader"?"p2sh-leader":"p2sh-delegator",sighashType:1,signatureOffset:i.offset}});for(const o of t.produces){if(!Number.isInteger(o.index)||o.index<0||o.index>=e.outputs.length)throw new te(`${e.plan.name}: produces names output ${o.index} of ${e.outputs.length}`)}return{txJson:Op(e.tx,e.plan.inputs.map(o=>o.covenantId)),txid:e.txid,masses:e.masses,feeSompi:e.fee,feerate:t.feerate,inputsToSign:r,budgets:[...e.budgets],consumes:e.plan.inputs.map(o=>({txid:o.outpoint.txid,index:o.outpoint.index})),produces:t.produces,optimistic:t.optimistic}}a(_p,"toBuiltTx");function nc(e){const t=JSON.parse(e);return{inputs:t.inputs.map((n,r)=>{if(!n.utxo||n.utxo.amount===void 0||n.utxo.scriptPublicKey===void 0)throw new te(`input ${r} has no UTXO entry`);return{sigScriptLength:(n.signatureScript??"").length/2,computeBudget:Number(n.computeBudget??0),amount:BigInt(n.utxo.amount),spkLength:Ep(n.utxo.scriptPublicKey),hasCovenant:typeof n.utxo.covenantId==="string"&&n.utxo.covenantId.length>0}}),outputs:t.outputs.map(n=>({value:BigInt(n.value),spkLength:Ep(n.scriptPublicKey),hasCovenant:n.covenant!==null&&n.covenant!==void 0})),payloadLength:(t.payload??"").length/2}}a(nc,"shapeOfSafeJson");function Ep(e){if(e.length<4||e.length%2!==0)throw new te(`malformed scriptPublicKey ${e.slice(0,16)}`);return e.length/2-2}a(Ep,"spkScriptLength");function Vy(e,t,n,r){if(t.length===66&&t[0]===65)return oa(t);if(t.length===e.length){if(!M(t.subarray(0,n),e.subarray(0,n))||!M(t.subarray(n+Ce),e.subarray(n+Ce))){throw new te(`input ${r}: the returned script differs from the prebuilt one outside the signature slot`)}return t.subarray(n,n+Ce)}throw new te(`input ${r}: unexpected wallet answer of ${t.length} bytes for a P2SH input`)}a(Vy,"p2shSignature");function Gy(e){if(e===void 0||e.length!==4+68)return void 0;const t=_(e.slice(4));return t[0]===32&&t[33]===172?t.subarray(1,33):void 0}a(Gy,"p2pkKeyOf");function Ip(e,t,n={}){const r=Nn();const o=r.Transaction.deserializeFromSafeJSON(e.txJson);let i;try{i=r.Transaction.deserializeFromSafeJSON(t)}catch(x){throw new te(`signed transaction does not parse: ${x.message}`)}const s=ot(Rn(i)).txid;if(s!==e.txid)throw new te(`signed transaction has txid ${s}, built ${e.txid}: the wallet changed outpoints, outputs, bindings or payload`);const c=o.inputs;const d=i.inputs;if(d.length!==c.length||d.length!==e.budgets.length)throw new te("input count changed");const l=new Map(e.inputsToSign.map(x=>[x.index,x]));for(const x of e.inputsToSign)if(x.index<0||x.index>=c.length)throw new te(`inputsToSign names input ${x.index} of ${c.length}`);const u=c.map((x,S)=>{const A=_(x.signatureScript??"");const P=_(d[S].signatureScript??"");const $=l.get(S);if($===void 0){if(!M(A,P))throw new te(`input ${S}: the wallet changed a sigscript it was not asked to sign`);return A}if($.kind==="p2pk"){if(P.length!==66||P[0]!==65)throw new te(`input ${S}: P2PK signature script must be 41 || sig64 || hashtype, got ${P.length} bytes`);if(P[65]!==Cp)throw new te(`input ${S}: hashtype 0x${P[65].toString(16)} is not SIGHASH_ALL`);if(P.subarray(1,65).every(R=>R===0))throw new te(`input ${S}: unsigned`);return P}const L=$.signatureOffset;if(L===void 0)throw new te(`input ${S}: ${$.kind} without a signature offset`);if(A.subarray(L,L+Ce).some(R=>R!==0))throw new te(`input ${S}: prebuilt slot at ${L} is not zero-filled`);const U=Vy(A,P,L,S);if(U[64]!==Cp)throw new te(`input ${S}: hashtype 0x${U[64].toString(16)} is not SIGHASH_ALL`);if(U.subarray(0,64).every(R=>R===0))throw new te(`input ${S}: unsigned`);const z=yi(A,L,U);if(!M(z.subarray(0,L),A.subarray(0,L))||!M(z.subarray(L+Ce),A.subarray(L+Ce))){throw new te(`input ${S}: splice moved bytes outside the slot`)}return z});const p=JSON.parse(e.txJson).inputs.map(x=>x.utxo?.scriptPublicKey);const m=n.signer===void 0?void 0:_(n.signer);for(const x of e.inputsToSign){const S=m??(x.kind==="p2pk"?Gy(p[x.index]):void 0);if(S===void 0)continue;const A=x.kind==="p2pk"?1:x.signatureOffset;const P=u[x.index].subarray(A,A+64);if(!vp(S,_(Pp(e.txJson,x.index)),P)){throw new te(`input ${x.index}: the wallet returned an invalid signature`)}}c.forEach((x,S)=>{x.signatureScript=h(u[S]);x.computeBudget=e.budgets[S]});o.inputs=c;o.finalize();const y=ot(Rn(o)).txid;if(y!==o.id||y!==e.txid)throw new te(`after finalize: txidV1 ${y}, SDK ${o.id}, built ${e.txid}`);const g=JSON.parse(e.txJson).inputs.map(x=>typeof x.utxo?.covenantId==="string"?x.utxo.covenantId:void 0);const b=Op(o,g);const w=Un(nc(b));if(w.max!==e.masses.max||w.bytes!==e.masses.bytes||w.compute!==e.masses.compute||w.storage!==e.masses.storage){throw new te(`final masses ${JSON.stringify({...w,minFee:String(w.minFee)})} differ from the built masses`)}return{...e,txJson:b,masses:w}}a(Ip,"finalizeSigned");async function rc(e,t,n={}){return Ip(e,t,n)}a(rc,"finalize");function $p(e){const t=nc(e.txJson);if(t.inputs.length!==e.budgets.length)throw new te("budgets do not match the inputs");const n=Un({...t,inputs:t.inputs.map((r,o)=>({...r,computeBudget:e.budgets[o]}))});return{masses:n,feeSompi:n.minFee}}a($p,"estimateBuilt");function Vv(e){return e.flatMap((t,n)=>t===void 0?[]:[{index:n,role:t}])}a(Vv,"rolesByIndex");function Gv(e,t){const n=Nn();const r=n.Transaction.deserializeFromSafeJSON(e.txJson);const o=r.inputs;for(const i of e.inputsToSign){if(i.kind!=="p2pk")throw new te(`input ${i.index} is a ${i.kind} slot: a service key signs P2PK funding inputs only`);const s=oa(n.createInputSignature(r,i.index,t,n.SighashType.All));o[i.index].signatureScript=h(Uint8Array.of(65,...s))}r.inputs=o;return Ip(e,r.serializeToSafeJSON())}a(Gv,"signBuiltWithKey");function Lp(e){const t=nc(e);const n=t.inputs.reduce((o,i)=>o+i.amount,0n);const r=t.outputs.reduce((o,i)=>o+i.value,0n);return{fee:n-r,totalIn:n,totalOut:r,masses:Un(t),budgets:t.inputs.map(o=>o.computeBudget)}}a(Lp,"feeFromBytes");function Rp(e,t=nr,n=0n){if(e.fee<e.masses.minFee)return`the fee ${e.fee} sompi is below the model minimum ${e.masses.minFee} for mass ${e.masses.max}`;const r=BigInt(e.masses.max)*t+n;if(e.fee>r)return`the fee ${e.fee} sompi is above ${r} (mass ${e.masses.max} at ${t} sompi/g${n>0n?` + ${n}`:""})`;if(e.fee>Br(e.masses.minFee))return`the fee ${e.fee} sompi is above the builder's ceiling ${Br(e.masses.minFee)}`;return void 0}a(Rp,"feeOutsideModel");var qy=100000000n;var Wy=10n*qy;var Up=1000000n;var zy=`000020${"22".repeat(32)}ac`;function Jy(e,t,n){const r=ei(t,"the claim planner");const o=e==="curve"?Js(r,n):Xs(r,n);return{treasury:o.treasury,creator:o.creator}}a(Jy,"claimSplit");function Xy(e){if(e.creatorSpk===void 0)return"no-creator";if(e.creatorSpk===zy)return"placeholder";if(e.venue==="curve"&&e.soldOut===true)return"sold-out";const t=e.venue==="pool"?e.accruedSompi/Up*Up:e.accruedSompi;if(t<Wy)return"below-minimum";return null}a(Xy,"claimRefusal");function rS(e){const t=[];const n=[];for(const r of e){const o=Xy(r);if(o!==null){n.push({cell:r,reason:o});continue}const i=Jy(r.venue,r.contractSet,r.accruedSompi);t.push({cell:r,payoutSompi:r.accruedSompi,treasurySompi:i.treasury,creatorSompi:i.creator})}return{plans:t,skipped:n,totalCreatorSompi:t.reduce((r,o)=>r+o.creatorSompi,0n)}}a(rS,"planClaims");var Oe=class extends Error{static{a(this,"ClaimMismatch")}constructor(t){super(`the built sweep does not match the claim: ${t}`);this.name="ClaimMismatch"}};function Yy(e,t,n){let r;try{r=JSON.parse(t.txJson).outputs??[]}catch{throw new Oe("its JSON does not parse")}let o;try{o=Lp(t.txJson)}catch(b){throw new Oe(`its inputs or outputs do not parse (${b.message})`)}if(o.fee!==t.feeSompi)throw new Oe(`it pays a fee of ${o.fee} sompi, the build said ${t.feeSompi}`);const i=Rp(o,n.feerate);if(i!==void 0)throw new Oe(i);const s=`0000${h(Z(n.funder))}`;const c=a((b,w,x,S)=>{const A=t.produces.filter(L=>L.role===b);if(A.length!==1)throw new Oe(A.length===0?`it has no ${S} output`:`it has ${A.length} ${S} outputs`);const P=A[0].index;const $=r[P];if($?.value===void 0||$.scriptPublicKey===void 0)throw new Oe(`output ${P} is missing`);if(x!==void 0&&$.scriptPublicKey!==x)throw new Oe(`output ${P} pays ${$.scriptPublicKey}, the ${S} is ${x}`);if(BigInt($.value)!==w)throw new Oe(`output ${P} pays ${String($.value)} sompi, the plan ${w}`)},"check");if(e.cell.creatorSpk===void 0)throw new Oe("the plan names no creator");c("creator",e.creatorSompi,e.cell.creatorSpk,"creator");c("treasury",e.treasurySompi,void 0,"treasury");const d=r.map((b,w)=>({o:b,k:w})).filter(({o:b})=>b.covenant!==null&&b.covenant!==void 0);const l=e.cell.covenantId.toLowerCase();for(const{o:b,k:w}of d){const x=String(b.covenant.covenantId??"").toLowerCase();if(x!==l)throw new Oe(`output ${w} is bound to covenant ${x}, not the swept cell ${l}`)}if(d.length!==1)throw new Oe(`${d.length} outputs are bound to the swept cell; a sweep has one continuation`);const u=d[0].k;const p=a(b=>t.produces.find(w=>w.role===b)?.index,"indexOf");if(p("treasury")!==u+1||p("creator")!==u+2){throw new Oe(`the payouts are at outputs ${p("treasury")} and ${p("creator")}, the covenant pins them at ${u+1} and ${u+2}`)}const m=new Map(t.produces.map(b=>[b.index,b.role]));let y=0;let g=0n;for(const[b,w]of r.entries()){if(w.value===void 0||w.scriptPublicKey===void 0)throw new Oe(`output ${b} is malformed`);if(w.covenant!==null&&w.covenant!==void 0)continue;const x=m.get(b);if(x==="change"){if(w.scriptPublicKey!==s)throw new Oe(`the change output ${b} does not pay the funder`);y++;continue}if(x!=="treasury"&&x!=="creator")throw new Oe(`output ${b} is neither a payee nor the change: an output pays neither a payee nor the funder`);g+=BigInt(w.value)}if(y>1)throw new Oe(`${y} change outputs pay the funder`);if(g!==e.payoutSompi)throw new Oe(`the payouts total ${g} sompi, the plan ${e.payoutSompi}: an output pays neither a payee nor the funder`)}a(Yy,"checkClaimTx");async function oS(e,t,n){const r=[];for(const o of t){const i=await e({covenantId:o.cell.covenantId,venue:o.cell.venue,funder:n});Yy(o,i,{funder:n});r.push({plan:o,tx:i})}return{claims:r,totalFeeSompi:r.reduce((o,i)=>o+i.tx.feeSompi,0n),totalCreatorSompi:r.reduce((o,i)=>o+i.plan.creatorSompi,0n)}}a(oS,"buildClaims");var ze=class extends Error{static{a(this,"OptimisticConflict")}constructor(t){super(t);this.name="OptimisticConflict"}};function Qy(e){if(e.curve)return{kind:"curve",covenantId:e.curve.covenantId,outpoint:e.curve.toOutpoint};if(e.pool)return{kind:"pool",covenantId:e.pool.poolId,outpoint:e.pool.toOutpoint};const t=e.genesis?.[0];return t?{kind:t.kind,covenantId:t.covenantId,outpoint:t.outpoint}:void 0}a(Qy,"predictedHeadOf");function Zy(e){return[...e.curve?[e.curve.fromOutpoint]:[],...e.pool?[e.pool.fromOutpoint]:[],...e.cells.consumed,...(e.terminated??[]).map(t=>t.outpoint)]}a(Zy,"consumedByDelta");var Np=class{static{a(this,"OptimisticStore")}#e=new Map;pending(){return[...this.#e.values()]}get(t){return this.#e.get(t)}apply(t,n){if(this.#e.has(t.txid))throw new ze(`${t.txid} is already applied`);const r=t.consumes.map(d=>({txid:d.txid,index:d.index}));const o=new Set(r.map(B));if(o.size!==r.length)throw new ze(`${t.txid} consumes an outpoint twice`);for(const d of Zy(t.optimistic)){if(!o.has(B(d)))throw new ze(`${t.txid}: the delta consumes ${B(d)}, which the transaction does not spend`)}for(const d of t.optimistic.funding.reserved){if(!o.has(B(d))&&d.txid!==t.txid)throw new ze(`${t.txid}: reserves ${B(d)}, neither spent nor produced by it`)}for(const d of this.#e.values()){const l=d.consumes.find(u=>o.has(B(u)));if(l)throw new ze(`${t.txid} spends ${B(l)}, already spent by our ${d.txid}`)}const i=[...new Set(r.filter(d=>this.#e.has(d.txid)).map(d=>d.txid))];const s=Qy(t.optimistic);const c={txid:t.txid,status:"pending",consumes:r,...s?{predictedHead:s}:{},submittedAt:n,dependsOn:i,delta:t.optimistic};this.#e.set(t.txid,c);return c}commit(t){const n=this.#n(t);if(n.dependsOn.some(r=>this.#e.get(r)?.status==="pending"))throw new ze(`${t} accepted before a transaction it spends`);if(n.status==="pending")this.#e.set(t,{...n,status:"accepted"})}drop(t){const n=this.#n(t);if(n.status!=="accepted")throw new ze(`${t} is dropped before acceptance`);this.#e.delete(t);for(const[r,o]of this.#e)if(o.dependsOn.includes(t))this.#e.set(r,{...o,dependsOn:o.dependsOn.filter(i=>i!==t)})}rollback(t){const n=this.#n(t);if(n.status==="accepted")throw new ze(`${t} was accepted; an accepted transaction is not rolled back`);const r=new Set([t]);for(const i of this.#e.values())if(i.dependsOn.some(s=>r.has(s)))r.add(i.txid);const o=[t,...[...this.#e.keys()].filter(i=>i!==t&&r.has(i))];for(const i of o)this.#e.delete(i);return o}replace(t,n,r){const o=this.#n(t);if(o.status!=="pending")throw new ze(`${t} is not pending`);const i=o.consumes.map(B).sort();const s=n.consumes.map(B).sort();if(i.length!==s.length||i.some((d,l)=>d!==s[l]))throw new ze("a replacement must spend the same outpoints");const c=this.rollback(t);try{this.apply(n,r)}catch(d){this.#e.set(t,o);throw d}return c.slice(1)}reserved(){const t=new Set;for(const n of this.#e.values()){for(const r of n.consumes)t.add(B(r));for(const r of n.delta.funding.reserved)t.add(B(r))}return t}curveHead(t,n){return this.#o("curve",t,n)}poolHead(t,n){return this.#o("pool",t,n)}tokenCells(t){const n=this.#r();const r=t.filter(i=>!n.has(B(i.outpoint)));const o=new Set(r.map(i=>B(i.outpoint)));for(const i of this.#e.values()){for(const s of i.delta.cells.produced){const c=B(s.outpoint);if(!n.has(c)&&!o.has(c)){r.push({outpoint:s.outpoint,state:s.state,amount:s.amount});o.add(c)}}}return r}fundingView(t,n,r=0n){const o=this.reserved();const i=t.filter(c=>!o.has(B(c.outpoint)));const s=new Set(i.map(c=>B(c.outpoint)));for(const c of this.#e.values()){const d=c.delta.funding.change;if(!d)continue;const l=B(d.outpoint);if(o.has(l)||s.has(l))continue;i.push({outpoint:d.outpoint,amount:d.amount,spk:n.spk,daaScore:r,address:n.address});s.add(l)}return i}onHead(t){const n=[];const r=this.#e.get(t.createdBy);if(r){this.commit(t.createdBy);n.push(t.createdBy)}return{accepted:n,lost:this.#t(t.createdBy,t.consumed)}}onConflict(t){return this.#t(t.winnerTxid,[t.outpoint])}#t(t,n){const r=new Set(n.map(B));const o=[];for(const i of[...this.#e.values()]){if(i.txid===t||i.status!=="pending"||!this.#e.has(i.txid))continue;if(i.consumes.some(s=>r.has(B(s))))o.push(...this.rollback(i.txid))}return o}#n(t){const n=this.#e.get(t);if(!n)throw new ze(`${t} is not a live row`);return n}#r(){const t=new Set;for(const n of this.#e.values())for(const r of n.consumes)t.add(B(r));return t}#o(t,n,r){let o=r;const i=[];if(o===void 0){for(const s of this.#e.values()){const c=s.delta.genesis?.find(d=>d.kind===t&&d.covenantId===n);if(c){o={outpoint:c.outpoint,state:c.state,amount:c.amount};i.push(s.txid);break}}if(o===void 0)return void 0}for(let s=0;s<=this.#e.size;s++){const c=B(o.outpoint);let d;for(const l of this.#e.values()){const u=t==="curve"?l.delta.curve:l.delta.pool;const p=u===void 0?void 0:"covenantId"in u?u.covenantId:u.poolId;if(u&&p===n&&B(u.fromOutpoint)===c){d={row:l,cell:{outpoint:u.toOutpoint,state:u.state,amount:u.amount}};break}if(l.delta.terminated?.some(m=>m.kind===t&&m.covenantId===n&&B(m.outpoint)===c))return void 0}if(d===void 0)return{...o,via:i};i.push(d.row.txid);o=d.cell}throw new ze(`${t} ${n}: the predicted chain loops`)}};var De=class extends Error{static{a(this,"TokenRecipientRefused")}outputIndex;constructor(t,n){super(`token recipients refused${t===void 0?"":` at output ${t}`}: ${n}`);this.name="TokenRecipientRefused";this.outputIndex=t}};var Si=a(e=>e.toLowerCase(),"lower");function pS(e,t,n){const r=new Set(t.covenantOwners.map(Si));const o=typeof t.userXOnly==="string"?_(t.userXOnly):t.userXOnly;if(o.length!==32)throw new De(void 0,"the user key is not a 32-byte x-only key");for(const{index:i,owner:s}of Bp(e,t.tokenIds,n)){if(s.schemeByte===Xi){if(!M(s.identifier,o))throw new De(i,`tokens go to key ${h(s.identifier)}, not the connected key`)}else if(s.schemeByte===kt){if(!r.has(h(s.identifier)))throw new De(i,`tokens go to covenant ${h(s.identifier)}, which this transaction does not name`)}else{throw new De(i,`owner scheme 0x${s.schemeByte.toString(16).padStart(2,"0")} is neither the connected key nor a named covenant`)}}}a(pS,"checkTokenRecipients");function mS(e,t,n,r){const o=new Set(n.map(i=>`${i.scheme}:${Si(i.identifier)}`));for(const{index:i,owner:s}of Bp(e,t,r)){const c=`${s.schemeByte}:${h(s.identifier)}`;if(!o.has(c)){throw new De(i,`tokens go to owner ${h(s.identifier)} under scheme 0x${s.schemeByte.toString(16).padStart(2,"0")}, which this transaction does not name`)}}}a(mS,"checkTokenOwners");function Bp(e,t,n){const r=new Set(t.map(Si));let o;try{const c=JSON.parse(e.txJson);if(!Array.isArray(c.outputs))throw new Error("no outputs");o=c.outputs}catch{throw new De(void 0,"the transaction does not parse")}const i=new Map;for(const c of e.optimistic.cells.produced){if(c.outpoint.txid!==e.txid)throw new De(c.outpoint.index,"a produced cell names another transaction");if(i.has(c.outpoint.index))throw new De(c.outpoint.index,"two cells claim the same output");i.set(c.outpoint.index,c)}o.forEach((c,d)=>{const l=typeof c.covenant?.covenantId==="string"&&r.has(Si(c.covenant.covenantId));if(l&&!i.has(d))throw new De(d,"a token output that no produced cell explains")});const s=[];for(const[c,d]of i){const l=o[c];if(l===void 0)throw new De(c,"a produced cell claims an output the transaction does not have");const u=l.covenant?.covenantId;if(typeof u!=="string"||!r.has(Si(u)))throw new De(c,"a produced cell claims an output that is not bound to the token");let p;try{p=Qo(n,d.state)}catch(y){throw new De(c,`the claimed state does not encode: ${y instanceof Error?y.message:String(y)}`)}const m=typeof l.scriptPublicKey==="string"&&/^0000([0-9a-f]{2})+$/i.test(l.scriptPublicKey)?_(l.scriptPublicKey.slice(4)):null;if(m===null||!M(m,se(p)))throw new De(c,"the output script is not the claimed token state");s.push({index:c,owner:d.state.owner})}return s}a(Bp,"claimedTokenOutputs");var Xr=class extends Error{static{a(this,"CovenantCellNotFound")}role;expectedAmount;candidates;constructor(t,n,r){super(`no live ${t} cell holding ${n} tokens among ${r} covenant-owned candidate(s)`);this.name="CovenantCellNotFound";this.role=t;this.expectedAmount=n;this.candidates=r}};var eb="00".repeat(32);function oc(e,t,n){if(e.covenantId!==t||!Mt(e.state,n))return false;try{return ts(e.state)===rr&&h(ns(e.state))===eb}catch{return false}}a(oc,"isCovenantVaultCell");function Kp(e){const t=new Set;const n=[];for(const r of e){const o=B(r.outpoint);if(t.has(o))continue;t.add(o);n.push(r)}return n}a(Kp,"distinct");function Mp(e,t,n,r,o=false){const i=Kp(e).filter(d=>oc(d,t,n));const s=i.find(d=>d.state.amount===r.supply);if(s===void 0)throw new Xr("supply",r.supply,i.length);const c=i.find(d=>d!==s&&d.state.amount===r.reserve);if(c===void 0&&o)throw new Xr("reserve",r.reserve,i.length);return{supply:s,reserve:c}}a(Mp,"selectCurveCells");function Fp(e,t,n,r){const o=Kp(e).filter(s=>oc(s,t,n));const i=o.find(s=>s.state.amount===r);if(i===void 0)throw new Xr("pool-reserve",r,o.length);return i}a(Fp,"selectPoolReserve");var Je=ke/10n;var Dp=ai;var la=2010000n;var or=class extends Error{static{a(this,"FloorViolation")}rule;outputIndex;constructor(t,n,r){super(r);this.name="FloorViolation";this.rule=t;this.outputIndex=n}};function tb(e,t){for(const n of t){const r=`${e}: output ${n.index} "${n.label}"`;if(n.covenantId===void 0){if(n.value<la)throw new or("p2pk-output",n.index,`${r} of ${n.value} sompi is below the P2PK floor ${la}`);continue}if(n.value<Dp)throw new or("covenant-output",n.index,`${r} of ${n.value} sompi is below the covenant output floor ${Dp} (unminable)`);if(n.token===void 0)continue;try{Ba(n.token.state,_(n.covenantId),r)}catch(o){if(o instanceof Q)throw new or("self-owned",n.index,o.message);throw o}if(n.token.ownerScheme!==kt&&n.value<Je){throw new or("user-cell",n.index,`${r} is a user cell of ${n.value} sompi, below the ${Je} sompi minimum`)}}}a(tb,"assertOutputFloors");function Hp(e){tb(e.plan.name,e.outputs.map(t=>{const n=t.binding?.covenantId??t.cell?.covenantId;const r=t.cell?.predicted.kind==="token"?{ownerScheme:t.cell.predicted.state.owner.schemeByte,state:t.cell.predicted.state}:void 0;return{index:t.index,label:t.label,value:t.value,covenantId:n,token:r}}))}a(Hp,"assertFloors");var Yr=class extends Error{static{a(this,"InsufficientFundsError")}needed;available;fragmented;total;constructor(t,n,r=false,o){super(r?`insufficient funds in at most the allowed inputs: need ${t} sompi, ${n} available in the largest UTXOs (${o} in all): combine UTXOs first`:`insufficient funds: need ${t} sompi, ${n} available`);this.name="InsufficientFundsError";this.needed=t;this.available=n;this.fragmented=r;this.total=o}};var nb=5000000n;var rb=ke;var ob=3;var ab=8;var ib=60;var sb=130000n;var Ti=class extends Error{static{a(this,"PinnedFundingGone")}outpoints;constructor(t){super(`pinned funding no longer available: ${t.join(", ")}`);this.name="PinnedFundingGone";this.outpoints=t}};var cb=a((e,t)=>e.amount<t.amount?1:e.amount>t.amount?-1:0,"byAmountDesc");var Ai=a(e=>e.reduce((t,n)=>t+n.amount,0n),"sum");function ar(e,t,n={}){if(t<0n)throw new Error("needed must be non-negative");const r=n.feeAllowance??nb;const o=n.maxInputs??ob;if(!Number.isInteger(o)||o<1)throw new Error("maxInputs must be a positive integer");const i=n.preferredChange??rb;const s=n.minChange??Vf;const c=n.reserved??new Set;const d=t+r;const l=Math.max(o,n.escalateTo??ab);const u=Math.max(l,n.escalateMax??ib);const p=[...new Set([o,l,u])];const m=a(A=>d+BigInt(Math.max(0,A-o))*sb,"need");const y=new Set;const g=e.filter(A=>{const P=B(A.outpoint);if(c.has(P)||y.has(P))return false;y.add(P);return A.amount>0n}).sort(cb);const b=n.required??new Set;if(b.size>0){const A=g.filter(L=>b.has(B(L.outpoint)));const P=[...b].filter(L=>!A.some(U=>B(U.outpoint)===L));if(P.length>0)throw new Ti(P);if(A.length>u)throw new Error(`${A.length} required funding inputs exceed ${u}`);const $=g.filter(L=>!b.has(B(L.outpoint)));for(const L of p.filter(U=>U>=A.length)){for(const U of[i,s,0n]){const z=[...A];for(const R of[void 0,...$]){if(R!==void 0){if(z.length>=L)break;z.push(R)}if(Ai(z)>=m(z.length)+U)return z}}}throw new Yr(d,Ai([...A,...$].slice(0,u)))}const w=g.filter(A=>A.amount>=d+i);if(w.length>0)return[w[w.length-1]];for(const A of p){for(const P of[i,s,0n]){const $=[];for(const L of g){if($.length>=A)break;$.push(L);if(Ai($)>=m($.length)+P)return $}}}const x=Ai(g);const S=Ai(g.slice(0,u));throw x>=d?new Yr(d,S,true,x):new Yr(d,S)}a(ar,"selectFunding");function OS(e){return new Set(e.map(B))}a(OS,"reserve");function jp(e,t,n,r){return{outpoint:e,amount:t,spk:n,daaScore:0n,address:r}}a(jp,"predictedFunding");function ir(e,t=an,n=We,r){const o=ui(n,r);const i=Fs(e,o);return{curve:i,pool:o,token:Ds(),networkId:t}}a(ir,"createContext");function Ne(e){if(e.curve.version!==e.pool.version)throw new Error(`context mixes a ${e.curve.version} curve with a ${e.pool.version} pool`);return e.curve.version}a(Ne,"contextSet");function Ze(e){const t=Ne(e);return t==="v1"&&Kn(e.pool)?Ks:Cd(t)}a(Ze,"budgetsOf");function _e(e){Ne(e);return"uncapped"}a(_e,"poolLimitsOf");function fa(e){return Vp(e.pool)}a(fa,"poolRoundingOf");var db=Object.freeze(["v1-2026-10-18-final","v1-kasseal-mainnet-tn10","v1-kasseal-mainnet","v1-kasseal-mainnet-2-tn10","v1-kasseal-mainnet-2"]);function Vp(e){return e.version==="v1"&&(e.revision===void 0||db.includes(e.revision))?"nearest":"floor"}a(Vp,"poolTemplateRounding");function pa(e){const t=Ne(e);if(t==="v1")return Kn(e.pool)?Ks:si;throw new Error(`a ${t} context has no bindLp / addLiquidity / removeLiquidity budgets`)}a(pa,"budgetsV3Of");function ma(e,t,n,r,o){return{label:t,outpoint:e.outpoint,amount:e.value,spk:se(e.program),daaScore:e.daaScore,covenantId:e.covenantId,budget:n,sigscript:r,signature:o,cellKind:e.kind}}a(ma,"cellInput");function ln(e,t,n,r){const o=Kd(e.program,t);return ma(e,n,r,o.bytes,void 0)}a(ln,"tokenLeaderCovenantInput");function Ot(e,t,n,r){const o=Bd(e.program,t);return ma(e,n,r,o.bytes,Gp(o,"token-leader",e))}a(Ot,"tokenLeaderSignedInput");function fn(e,t,n=ve.tokenDelegatorCovenant){return ma(e,t,n,Fd(e.program).bytes,void 0)}a(fn,"tokenDelegatorCovenantInput");function Pi(e,t,n=ve.tokenDelegatorSigned){const r=Dd(e.program);return ma(e,t,n,r.bytes,Gp(r,"token-delegator",e))}a(Pi,"tokenDelegatorSignedInput");function Gp(e,t,n){if(e.signatureOffset===void 0)throw new Error("sigscript has no signature slot");return{kind:t,offset:e.signatureOffset,signer:h(n.state.owner.identifier),sighashType:1}}a(Gp,"slotOf");function Vt(e,t,n,r){return ma(e,t,n,r,void 0)}a(Vt,"curveInput");function Gt(e,t,n,r){return ma(e,t,n,r,void 0)}a(Gt,"poolInput");function ce(e,t="funding (P2PK)"){return Jf(e,t,ve.p2pk,bi)}a(ce,"kasInput");function ne(e,t,n,r,o,i){if(o!==void 0)Ba(n,_(o),t);if(n.owner.schemeByte===kt&&o!==void 0&&h(n.owner.identifier)===o)throw new Error(`${t}: self-owned token output`);const s=Qo(e.token,n);const c={predicted:{kind:"token",state:n},program:s,covenantId:o};return{label:t,value:r,spk:se(s),binding:o!==void 0&&i!==void 0?{authorizingInput:i,covenantId:o}:void 0,cell:c}}a(ne,"tokenOutput");function pn(e,t,n,r,o,i){const s=Zo(e.curve,n);const c={predicted:{kind:"curve",state:n},program:s,covenantId:o};return{label:t,value:r,spk:se(s),binding:o!==void 0&&i!==void 0?{authorizingInput:i,covenantId:o}:void 0,cell:c}}a(pn,"curveOutput");function ft(e,t,n,r,o,i){const s=li(e.pool,n);const c={predicted:{kind:"pool",state:n},program:s,covenantId:o};return{label:t,value:r,spk:se(s),binding:o!==void 0&&i!==void 0?{authorizingInput:i,covenantId:o}:void 0,cell:c}}a(ft,"poolOutput");function Mn(e,t,n){return{label:e,value:t,spk:n,binding:void 0,cell:void 0}}a(Mn,"plainOutput");function Ie(e,t="change",n=10000000n){return{label:t,spk:e,binding:void 0,cell:void 0,minimum:0n,dropBelow:n}}a(Ie,"changeTo");function Qr(e,t="payout",n=10000000n){return{label:t,spk:e,binding:void 0,cell:void 0,minimum:n,dropBelow:void 0}}a(Qr,"payoutTo");function fu(e,t,n,r,o,i){Ba(n,_(r),t);const s=Qo(e.token,n);return{label:t,spk:se(s),binding:{authorizingInput:o,covenantId:r},cell:{predicted:{kind:"token",state:n},program:s,covenantId:r},minimum:i,dropBelow:void 0}}a(fu,"tokenResidual");var Zr=class extends Error{static{a(this,"ProofNotBound")}verdict;operation;constructor(t,n){const r=typeof n==="string"?n:void 0;super(`${t} refused: the token's launch proof is ${r===void 0?"not supplied":`'${r}'`}, not 'bound'; C's singleton is proven only by the launch proof`);this.name="ProofNotBound";this.verdict=r;this.operation=t}};var Fn=class extends Error{static{a(this,"ShapeNotSupported")}constructor(t){super(t);this.name="ShapeNotSupported"}};var eo=class extends Error{static{a(this,"LineageMismatch")}expected;actual;constructor(t,n,r){super(`${t} names token lineage ${r}, the order is for ${n}: refused`);this.name="LineageMismatch";this.expected=n;this.actual=r}};var Dn=class extends Error{static{a(this,"TokenAmountMismatch")}expected;actual;constructor(t,n,r){super(`${t} would take ${r} tokens (whole lots of the curve program), the order approved ${n}: refused`);this.name="TokenAmountMismatch";this.expected=n;this.actual=r}};var to=class extends Error{static{a(this,"UnknownCurveTemplate")}constructor(t="curve program matches no known curve template"){super(t);this.name="UnknownCurveTemplate"}};var no=class extends Error{static{a(this,"CovenantCellValue")}cell;value;minimum;constructor(t,n,r){super(`${t}: served value ${n} sompi is below the curve's token cell value ${r}; refused`);this.name="CovenantCellValue";this.cell=t;this.value=n;this.minimum=r}};var sr=class extends Error{static{a(this,"LpUnsafe")}reason;constructor(t){super(`deposit refused: the indexer does not confirm this pool's LP invariants${t===void 0?"":` (${t})`}`);this.name="LpUnsafe";this.reason=t}};var ro=class extends Error{static{a(this,"CurveNotOfProof")}curveId;expectedCurveId;constructor(t,n){super(`curve ${t} is not the curve ${n} the launch proof names`);this.name="CurveNotOfProof";this.curveId=t;this.expectedCurveId=n}};var oo=class extends Error{static{a(this,"PoolNotOfProof")}poolId;expectedPoolId;constructor(t,n){super(`pool ${t} is not the pool ${n} the launch proof recomputes from the graduation`);this.name="PoolNotOfProof";this.poolId=t;this.expectedPoolId=n}};var cr=class extends Error{static{a(this,"NetBoundExceeded")}kind;actual;bound;feeSompi;constructor(t,n,r,o,i){super(n==="all-in"?`${t}: ${r} sompi would leave the wallet (network fee ${i}), above the ${o} shown as the most to pay`:`${t}: ${r} sompi would reach the wallet net (network fee ${i}), below the ${o} shown as the least to receive`);this.name="NetBoundExceeded";this.kind=n;this.actual=r;this.bound=o;this.feeSompi=i}};var ao=class extends Error{static{a(this,"NeedsConsolidation")}cells;transactions;constructor(t,n){super(`needs ${n} consolidation transaction(s) over ${t.length} cells first`);this.name="NeedsConsolidation";this.cells=t;this.transactions=n}};var io=class extends Error{static{a(this,"NeedsSplit")}cell;carve;constructor(t,n){super(`needs a split of ${t.txid}:${t.index} carving ${n} first`);this.name="NeedsSplit";this.cell=t;this.carve=n}};var mn=2010000n;var r2=ke/10n;function dr(e,t,n=false){if(n)return;if(t!=="bound")throw new Zr(e,t)}a(dr,"requireProofBound");function pt(e,t,n){const r=h(t);if(n!==void 0&&r!==n.toLowerCase())throw new eo(e,n.toLowerCase(),r);return r}a(pt,"requireLineage");var co=a(e=>(e??[]).reduce((t,n)=>t+n.amount,0n),"fundingSum");function ga(e,t,n,r){if(r!==void 0&&t>r)throw new cr(e,"all-in",t,r,n)}a(ga,"assertAllIn");function ya(e,t,n,r){if(r!==void 0&&t<r)throw new cr(e,"net-out",t,r,n)}a(ya,"assertNetOut");function Se(e){return _p(e.built,{feerate:Yd(e.built.plan),produces:e.roles.map((t,n)=>({index:n,role:t})),optimistic:e.optimistic})}a(Se,"toBuilt");function pe(e){return e.feerate===void 0?{feeMargin:e.feeMargin??0n}:{feeMargin:e.feeMargin??0n,feerate:e.feerate}}a(pe,"feeFields");function me(e,t,n,r={}){if(t.length!==e.outputs.length)throw new Error(`${e.name}: ${t.length} roles for ${e.outputs.length} fixed outputs`);const o=qf(e);Hp(o);const i=[...t];if(o.outputs.length>e.outputs.length){if(n===void 0)throw new Error(`${e.name}: residual output without a role`);i.push(n)}return{built:o,roles:i,optimistic:lb(o,i,r)}}a(me,"finish");var ub=new Set(["change","payout"]);function lb(e,t,n={}){const r=a(P=>({txid:e.txid,index:P}),"at");const o=[];const i=[];const s=[];const c=[];for(const P of e.plan.inputs){const $={txid:P.outpoint.txid,index:P.outpoint.index};if(P.cellKind==="vault"||P.cellKind==="deposit"||P.cellKind==="splitter"||P.cellKind==="order"||P.cellKind==="anchor"||P.cellKind==="dist-key")o.push($);else if(P.covenantId===void 0)i.push($);else if(P.cellKind==="token")o.push($);else if(P.cellKind==="curve")s.push({covenantId:P.covenantId,outpoint:$});else if(P.cellKind==="pool")c.push({covenantId:P.covenantId,outpoint:$});else throw new Error(`${e.plan.name}: covenant input "${P.label}" has no cell kind`)}const d=[];const l=[];const u=[];let p;for(const P of e.outputs){const $=P.cell?.predicted;const L=P.binding?.covenantId??P.cell?.covenantId;if($!==void 0&&L===void 0)throw new Error(`${e.plan.name}: output ${P.index} has a predicted cell but no covenant id`);const U=a(()=>Dr(L,`${e.plan.name}: covenant id of the predicted cell at output ${P.index}`),"idOf");if($?.kind==="token")d.push({outpoint:r(P.index),state:$.state,amount:P.value});else if($?.kind==="curve")l.push({covenantId:U(),outpoint:r(P.index),state:$.state,amount:P.value});else if($?.kind==="pool")u.push({covenantId:U(),outpoint:r(P.index),state:$.state,amount:P.value});else if(ub.has(t[P.index])){if(p!==void 0)throw new Error(`${e.plan.name}: more than one change output`);p={outpoint:r(P.index),amount:P.value}}}for(const P of n.reserveOutputs??[])i.push(r(P));if(s.length>1||l.length>1||c.length>1||u.length>1)throw new Error(`${e.plan.name}: more than one singleton of a kind`);const m=[];const y=[];let g;let b;const[w,x,S,A]=[s[0],l[0],c[0],u[0]];if(w&&x){if(w.covenantId!==x.covenantId)throw new Error(`${e.plan.name}: curve continuation of another lineage`);g={covenantId:w.covenantId,fromOutpoint:w.outpoint,toOutpoint:x.outpoint,state:x.state,amount:x.amount}}else if(x)m.push({kind:"curve",covenantId:x.covenantId,outpoint:x.outpoint,state:x.state,amount:x.amount});else if(w)y.push({kind:"curve",covenantId:w.covenantId,outpoint:w.outpoint});if(S&&A){if(S.covenantId!==A.covenantId)throw new Error(`${e.plan.name}: pool continuation of another lineage`);b={poolId:S.covenantId,fromOutpoint:S.outpoint,toOutpoint:A.outpoint,state:A.state,amount:A.amount}}else if(A)m.push({kind:"pool",covenantId:A.covenantId,outpoint:A.outpoint,state:A.state,amount:A.amount});else if(S)y.push({kind:"pool",covenantId:S.covenantId,outpoint:S.outpoint});return{...g?{curve:g}:{},...b?{pool:b}:{},cells:{consumed:o,produced:d},funding:p?{reserved:i,change:p}:{reserved:i},...m.length>0?{genesis:m}:{},...y.length>0?{terminated:y}:{}}}a(lb,"deltaOf");function ur(e,t){if(t.state.phase!==wt)throw new Error(`curve is in phase ${t.state.phase}, not active`);if(t.state.tokenCovId.every(n=>n===0))throw new Error("curve state has no token lineage (not initialised)");if(t.program.length!==e.curve.bytecode.length)throw new Error("curve cell program length does not match the template");return h(t.state.tokenCovId)}a(ur,"requireActiveCurve");function ac(e,t,n){const r=h(t.state.tokenCovId);if(n.covenantId!==r)throw new Error(`supply cell lineage ${n.covenantId} != curve's T ${r}`);if(!Mt(n.state,t.covenantId))throw new Error("supply cell is not owned by the curve");const o=(e.curve.params.curveLots-t.state.lotsSold)*e.curve.params.lot;if(n.state.amount!==o)throw new Error(`supply cell holds ${n.state.amount}, expected ${o} (is this the reserve cell?)`);return r}a(ac,"requireSupplyCell");function ba(e,t){const n=e.curve.params.tokenCellKas;for(const{cell:r,name:o}of t){if(r.value<n)throw new no(`${o} cell ${r.outpoint.txid}:${r.outpoint.index}`,r.value,n)}return BigInt(t.length)*n}a(ba,"curveOwnedCellValue");function gn(e,t){const n=Ne(e);const r=So(t.state);if(r!==vo(n))throw new Error(`a ${r} pool cell in a ${n} context`);const{stateOffset:o,stateLength:i,templateHash:s}=e.pool;if(t.program.length!==e.pool.bytecode.length||Rt(t.program,o,i)!==s){throw new Error(`the pool cell's program is not this context's ${n} pool template`)}if(Fe(n)){const c=t.state;const d=t.value-(c.kasScaled+c.feeAccruedScaled)*le;Ee({kasScaled:c.kasScaled,tokenReserve:c.tokenReserve,feeAccruedScaled:c.feeAccruedScaled,dust:d,lpShares:c.lpShares},_e(e))}return n}a(gn,"requirePoolOfContext");function ha(e,t){const n=h(e.state.tokenCovId);if(t.covenantId!==n)throw new Error("pool token cell is not of lineage T");if(!Mt(t.state,e.covenantId))throw new Error("token cell is not pool-owned");if(t.state.amount!==e.state.tokenReserve)throw new Error(`pool token cell holds ${t.state.amount}, state says ${e.state.tokenReserve}`);const r=rt(t.state);if(r.borrowScheme!==0||r.borrowGuard.some(o=>o!==0))throw new Error("pool token cell has a borrow scheme or guard set; it is not the pool reserve");return n}a(ha,"requirePoolToken");function lr(e,t,n){if(e.covenantId!==t)throw new Error("user cell is not of lineage T");if(Mt(e.state,n))throw new Error("leader cell is owned by the venue");if(e.state.owner.schemeByte!==0)throw new Error(`user cell owner scheme ${e.state.owner.schemeByte} is not p2pk-schnorr/v1; the builder signs only key-owned leaders`)}a(lr,"requireUserCell");function Ke(e,t,n,r,o){const i=ml({inputs:t.map((s,c)=>({state:s.state,index:c,kasValue:s.value})),outputs:n.map((s,c)=>o?.[c]===void 0?{state:s,index:c}:{state:s,index:c,kasValue:o[c]}),witness:r,covenantId:_(e)});if(i.selfOwnedOutputs.length>0)throw new Error(`token output ${i.selfOwnedOutputs[0]} would be self-owned (anyone-can-spend)`)}a(Ke,"checkTokenFamily");function pu(e,t,n){if(e===void 0)throw new Error(`the template names no ${t} script`);if(n==="p2pk"?!Jt(e):!Ms(e))throw new Error(`the ${t} script is not a version-0 ${n==="p2pk"?"P2PK":"P2SH"} script`);return zf(e).script}a(pu,"payeeScript");function qp(e){return e!==void 0&&e.length===37?"p2sh":"p2pk"}a(qp,"treasuryForm");function Ci(e,t,n,r=false){if(r){if(e.creator!==0n)throw new Error("a treasury-only payout with a creator share");return{outputs:[Mn(n.treasury,e.treasury,pu(t.treasurySpk,"treasury",qp(t.treasurySpk)))],roles:["treasury"]}}return{outputs:[Mn(n.treasury,e.treasury,pu(t.treasurySpk,"treasury",qp(t.treasurySpk))),Mn(n.creator,e.creator,pu(t.creatorSpk,"creator","p2pk"))],roles:["treasury","creator"]}}a(Ci,"payoutOutputs");var Hn=Uint8Array.of(0);var qt=(()=>{const e=new Uint8Array(66);e[0]=0;return e})();var so=class extends Error{static{a(this,"ForeignCovenantInput")}tx;outpoint;constructor(t,n,r){super(`${t}: input ${n} ${r}: refused (a foreign covenant cell in a curve or pool transaction is taken by its submitter)`);this.name="ForeignCovenantInput";this.tx=t;this.outpoint=n}};var fb=a(e=>e.length===35&&e[0]===170&&e[1]===32&&e[34]===135,"isP2shScript");function He(e,t,n){const r=new Set(t.map(o=>o.toLowerCase()));for(const o of e.inputs){const i=`${o.outpoint.txid}:${o.outpoint.index}`;if(o.cellKind===void 0){if(o.covenantId!==void 0)throw new so(e.name,i,`is a funding input bound to covenant ${o.covenantId}`);const s=n!==void 0&&n.outpoint.txid===o.outpoint.txid&&n.outpoint.index===o.outpoint.index&&h(n.spk)===h(o.spk);if(fb(o.spk)&&!s)throw new so(e.name,i,"is a funding input paying a P2SH script");continue}if(o.covenantId===void 0||!r.has(o.covenantId.toLowerCase()))throw new so(e.name,i,`carries lineage ${String(o.covenantId)}, not one of the transaction's own`)}}a(He,"requireOwnLineages");function pb(e,t){const n=rt(e);return xt({amount:t,owner:n.owner,ownerScheme:n.ownerScheme,borrowScheme:rr,borrowGuard:Ve,extensionCommitment:n.extensionCommitment})}a(pb,"carvedState");function mu(e,t){return xt({...rt(e),amount:t})}a(mu,"withAmount");var ic=250000000n;function Ei(e){const t=e/2n;const n=t<ic?ic:t;const r=e-n<ic?ic:e-n;const o=n+r-e;return{carveValue:n,restValue:r,topUp:o>0n?o:0n}}a(Ei,"splitValues");function sc(e){const{ctx:t,cell:n,carve:r,funding:o}=e;const i=n.covenantId;if(n.state.owner.schemeByte!==0)throw new Error("split: the builder signs only key-owned cells (owner scheme 0x00)");if(r<=0n||r>=n.state.amount)throw new Error(`split: carve ${r} must be positive and below the cell's ${n.state.amount}`);if(o.length===0)throw new Error("split needs a funding input for the fee");const s=Ei(n.value);const c=e.carveValue??s.carveValue;const d=e.restValue??(e.carveValue===void 0?s.restValue:n.value-c);const l=mu(n.state,n.state.amount-r);const u=pb(n.state,r);Ke(i,[n],[l,u],qt);const p={name:`split ${n.state.amount} -> ${n.state.amount-r} + ${r}`,inputs:[Ot(n,[l,u],"KCC20 cell (T leader, 00 || sig)",Ct(1,2)),...o.map(m=>ce(m,"owner KAS (fee)"))],outputs:[ne(t,"rest (owner kept)",l,d,i,0),ne(t,"carved cell",u,c,i,0)],residual:Ie(Z(e.changeAddress)),genesisGroups:[],payload:new Uint8Array(0),...pe(e)};return{...me(p,["token-user","token-user"],"change"),restNext:l,carvedNext:u}}a(sc,"buildSplit");function gu(e){const{ctx:t,cells:n,owner:r}=e;if(n.length<2||n.length>3)throw new Error("consolidate takes 2 or 3 cells (max_token_inputs = 3)");const o=n[0].covenantId;const i=h(r.xOnlyPubkey);const s=new Set;for(const g of n){if(g.covenantId!==o)throw new Error("cells are of different lineages");if(g.state.owner.schemeByte!==0||h(g.state.owner.identifier)!==i)throw new Error("every cell must be p2pk-owned by the same key");const b=`${g.outpoint.txid}:${g.outpoint.index}`;if(s.has(b))throw new Error(`cell ${b} appears twice`);s.add(b)}const c=n.reduce((g,b)=>g+b.state.amount,0n);const d=mu(n[0].state,c);Ke(o,n,[d],qt);const l=e.funding??[];const u=[Ot(n[0],[d],"KCC20 leader (00 || sig)",Ct(n.length,1)),...n.slice(1).map((g,b)=>Pi(g,`KCC20 delegator ${b+1} (sig)`)),...l.map(g=>ce(g,"owner KAS (fee)"))];const p=`consolidate ${n.length}->1`;const m=l.length===0?{name:p,inputs:u,outputs:[],residual:fu(t,"consolidated cell",d,o,0,Je),genesisGroups:[],payload:new Uint8Array(0),...pe(e)}:{name:p,inputs:u,outputs:[ne(t,"consolidated cell",d,n.reduce((g,b)=>g+b.value,0n),o,0)],residual:Ie(Z(r.address)),genesisGroups:[],payload:new Uint8Array(0),...pe(e)};const y=l.length===0?me(m,[],"token-user"):me(m,["token-user"],"change");return{...y,next:d}}a(gu,"buildConsolidate");var pr=class extends Error{static{a(this,"InsufficientTokensError")}needed;available;constructor(t,n){super(`insufficient tokens: need ${t}, ${n} available`);this.name="InsufficientTokensError";this.needed=t;this.available=n}};var Oi=a((e,t)=>e.amount<t.amount?1:e.amount>t.amount?-1:0,"byAmountDesc");var cc=a(e=>`step${e}:merged`,"mergedId");var dc=a(e=>`step${e}:rest`,"restId");var fr=a(e=>`step${e}:carved`,"carvedId");function Wp(e,t,n=Tn){const r=[...e].sort(Oi);for(let o=2;o<=Math.min(n,r.length);o++){const i=[];const s=a((c,d)=>{if(i.length===o)return d===0n;for(let l=c;l<r.length;l++){const u=r[l];if(u.amount>d)continue;i.push(u);if(s(l+1,d-u.amount))return true;i.pop()}return false},"rec");if(s(0,t))return i}return void 0}a(Wp,"exactSubset");function bu(e,t,n=Tn,r=0){return zp([...e].sort(Oi),t,n,r)}a(bu,"planMerges");function zp(e,t,n,r){if(n<2)throw new Error("a merge needs at least 2 inputs");if(e.length===0)throw new Error("no cells");const o=[...e];const i=[];for(;;){const s=o[0];if(t!==void 0&&s.amount>=t)return{steps:i,largest:s};if(o.length===1){if(t!==void 0)throw new pr(t,s.amount);return{steps:i,largest:s}}const c=[s];let d=s.amount;for(let p=1;p<o.length&&c.length<n;p++){if(t!==void 0&&d>=t)break;c.push(o[p]);d+=o[p].amount}const l=r+i.length;const u={id:cc(l),amount:d};i.push({kind:"merge",inputs:c.map(p=>p.id),output:u.id,amount:d});o.splice(0,c.length);o.unshift(u)}}a(zp,"planMergesFrom");function hu(e,t,n=Tn){if(t<=0n)throw new Error("target must be positive");const r=new Set;for(const p of e){if(p.amount<=0n)throw new Error(`cell ${p.id} holds no tokens`);if(r.has(p.id))throw new Error(`cell ${p.id} listed twice`);r.add(p.id)}const o=e.reduce((p,m)=>p+m.amount,0n);if(o<t)throw new pr(t,o);const i=e.find(p=>p.amount===t);if(i)return{target:t,kind:"exact",steps:[],result:i.id};const s=e.filter(p=>p.amount>t).sort(Oi);if(s.length>0){const p=s[s.length-1];return{target:t,kind:"split",steps:[{kind:"split",input:p.id,carve:t,rest:dc(0),carved:fr(0)}],result:fr(0)}}const c=Wp(e,t,n);if(c)return{target:t,kind:"merge",steps:[{kind:"merge",inputs:c.map(p=>p.id),output:cc(0),amount:t}],result:cc(0)};const{steps:d,largest:l}=bu(e,t,n);if(l.amount===t)return{target:t,kind:"merge",steps:d,result:l.id};const u=d.length;return{target:t,kind:"merge+split",steps:[...d,{kind:"split",input:l.id,carve:t,rest:dc(u),carved:fr(u)}],result:fr(u)}}a(hu,"planExactCell");function mb(e,t,n,r=Tn){if(n.size===0)return hu(e,t,r);if(t<=0n)throw new Error("target must be positive");const o=e.reduce((m,y)=>m+y.amount,0n);if(o<t)throw new pr(t,o);const i=e.filter(m=>n.has(m.id)).sort(Oi);if(i.length===0)throw new Error("none of the cells the plan must spend is listed");const s=i.find(m=>m.amount===t);if(s)return{target:t,kind:"exact",steps:[],result:s.id};const c=i.filter(m=>m.amount>t);if(c.length>0){const m=c[c.length-1];return{target:t,kind:"split",steps:[{kind:"split",input:m.id,carve:t,rest:dc(0),carved:fr(0)}],result:fr(0)}}const d=i[0];const{steps:l,largest:u}=zp([d,...e.filter(m=>m.id!==d.id).sort(Oi)],t,r,0);if(u.amount===t)return{target:t,kind:"merge",steps:l,result:u.id};const p=l.length;return{target:t,kind:"merge+split",steps:[...l,{kind:"split",input:u.id,carve:t,rest:dc(p),carved:fr(p)}],result:fr(p)}}a(mb,"planExactCellSpending");function _2(e,t){const n=new Map(e.map(o=>[o.id,o.amount]));const r=a(o=>{const i=n.get(o);if(i===void 0)throw new Error(`plan spends ${o}, which is not live`);n.delete(o);return i},"take");for(const o of t){if(o.kind==="merge"){const i=o.inputs.reduce((s,c)=>s+r(c),0n);if(i!==o.amount)throw new Error(`merge ${o.output}: inputs hold ${i}, step says ${o.amount}`);n.set(o.output,i)}else{const i=r(o.input);if(o.carve<=0n||o.carve>=i)throw new Error(`split of ${o.input}: carve ${o.carve} of ${i}`);n.set(o.rest,i-o.carve);n.set(o.carved,o.carve)}}return n}a(_2,"applyPlan");var Jp=a(e=>e.map(t=>({id:B(t.outpoint),amount:t.state.amount})),"planCellsOf");function yu(e,t){const n=e.built.outputs[t];if(n?.cell?.predicted.kind!=="token"||n.cell.covenantId===void 0)throw new Error(`${e.built.plan.name}: output ${t} is not a token cell`);return{kind:"token",outpoint:{txid:e.built.txid,index:t},value:n.value,covenantId:n.cell.covenantId,program:n.cell.program,state:n.cell.predicted.state,daaScore:0n}}a(yu,"producedCell");function Xp(e,t){const{ctx:n,owner:r}=e;const o=new Map(e.cells.map(p=>[B(p.outpoint),p]));let i=[...e.funding];const s=Z(r.address);const c=a(p=>{const m=o.get(p);if(!m)throw new Error(`plan step needs cell ${p}, which is not available`);o.delete(p);return m},"take");const d=a((p,m)=>{const y=new Set(m.map(b=>B(b.outpoint)));i=i.filter(b=>!y.has(B(b.outpoint)));const g=p.optimistic.funding.change;if(g)i.push({outpoint:g.outpoint,amount:g.amount,spk:s,daaScore:0n,address:r.address})},"spendFunding");const l={...e.feeMargin===void 0?{}:{feeMargin:e.feeMargin},...e.feerate===void 0?{}:{feerate:e.feerate}};const u=[];for(const p of t){if(p.kind==="merge"){const m=p.inputs.map(c);let y;try{y=gu({ctx:n,cells:m,owner:r,...l})}catch(g){if(!(g instanceof Dt))throw g;const b=ar(i,0n,e.fundingOptions);y=gu({ctx:n,cells:m,owner:r,funding:b,...l});d(y,b)}u.push(y);o.set(p.output,yu(y,0))}else{const m=c(p.input);const y=ar(i,Ei(m.value).topUp,e.fundingOptions);const g=sc({ctx:n,cell:m,carve:p.carve,changeAddress:r.address,funding:y,...l});d(g,y);u.push(g);o.set(p.rest,yu(g,0));o.set(p.carved,yu(g,1))}}return{transactions:u,cells:o}}a(Xp,"buildSteps");function _i(e){const t=new Set((e.mustSpend??[]).map(B));const n=mb(Jp(e.cells),e.target,t);const{transactions:r,cells:o}=Xp(e,n.steps);const i=o.get(n.result);if(!i||i.state.amount!==e.target)throw new Error(`chain did not produce a cell of ${e.target}`);return{plan:n,transactions:r,totalFee:r.reduce((s,c)=>s+c.built.fee,0n),cell:i}}a(_i,"buildExactCellChain");function Yp(e){const t=Jp(e.cells);if(t.length<2)throw new Error("nothing to consolidate: fewer than two cells");let n;const r=e.target;if(r!==void 0){const c=t.reduce((l,u)=>l+u.amount,0n);if(c<r)throw new pr(r,c);if(t.some(l=>l.amount>=r))throw new Error(`a cell of at least ${r} already exists`);const d=Wp(t,r);n=d?[{kind:"merge",inputs:d.map(l=>l.id),output:cc(0),amount:r}]:bu(t,r).steps}else{n=bu(t,void 0).steps}const{transactions:o,cells:i}=Xp(e,n);const s=n[n.length-1];if(s.kind!=="merge")throw new Error("unreachable: a merge chain ends with a merge");return{plan:{steps:n},transactions:o,totalFee:o.reduce((c,d)=>c+d.built.fee,0n),cell:Dr(i.get(s.output),`the merged cell ${s.output}`)}}a(Yp,"buildMergeChain");function bn(e){const t=e.value-(e.state.kasScaled+e.state.feeAccruedScaled)*le;if(t<0n||t>=le)throw new Error(`pool cell value ${e.value} is inconsistent with its state (dust ${t})`);return{kasScaled:e.state.kasScaled,tokenReserve:e.state.tokenReserve,feeAccruedScaled:e.state.feeAccruedScaled,dust:t}}a(bn,"poolMathState");var yn=class extends Error{static{a(this,"UnsafeScript")}constructor(t){super(t);this.name="UnsafeScript"}};function j2(e){if(e.length!==32)throw new Error("a key-locked script needs a 32-byte x-only key");return E(Uint8Array.of(32),e,Uint8Array.of(172))}a(j2,"keyLockedRedeem");function Qp(e){return e.length===34&&e[0]===32&&e[33]===172?e.subarray(1,33):void 0}a(Qp,"keyOfLockedRedeem");var gb=a((e,t)=>t.length>0&&e.length>=t.length&&h(e.subarray(e.length-t.length))===h(t),"endsWith");function Zp(e,t){if(e.length===0)throw new yn("an empty script can be satisfied by anyone");if(Qp(e)!==void 0)return;if(t.allowAnyScript!==true)throw new yn("only a key-locked script (<x-only key> OP_CHECKSIG) is accepted; pass allowAnyScript for another one");for(const n of t.programs){const r=n.subarray(Math.max(0,n.length-256));if(gb(e,r))throw new yn("the script is a pool or token program: tokens delivered to it would be locked for good")}}a(Zp,"assertSafeRedeem");function em(e){const{ctx:t,pool:n,poolToken:r,buyer:o,kasInScaled:i,funding:s}=e;gn(t,n);pt(`pool ${n.covenantId}`,n.state.tokenCovId,e.tokenId);const c=ha(n,r);const d=e.userCellValue??Pt;if(d<Je)throw new Error(`user cell value ${d} is below the ${Je} sompi minimum`);if(i<=0n)throw new Error("kasInScaled must be positive");if(s.length===0)throw new Error("swap needs at least one funding input");const l=xi(bn(n),i,_e(t),fa(t));if(l.tokenOut<=0n)throw new Error(`a leg of ${i} scaled units buys no tokens`);if(e.minTokensOut!==void 0&&l.tokenOut<e.minTokensOut)throw new Error(`quote ${l.tokenOut} tokens is below minOut ${e.minTokensOut}`);const u=e.minTokensOut??l.tokenOut;const p={...n.state,kasScaled:l.pool.kasScaled,tokenReserve:l.pool.tokenReserve,feeAccruedScaled:l.pool.feeAccruedScaled};const m=Ue(l.pool.tokenReserve,n.covenantId);const y=e.deliverToScript;if(y!==void 0&&!Kn(t.pool))throw new Error("swap-and-deposit needs a composable pool (Kasseal-mainnet-2)");if(y!==void 0){Zp(y.redeem,{...y.allowAnyScript===void 0?{}:{allowAnyScript:y.allowAnyScript},programs:[n.program,r.program]});if(y.scriptFunding<la)throw new Error(`script funding ${y.scriptFunding} is below the ${la} sompi output minimum`)}const g=y===void 0?Bn(l.tokenOut,o.xOnlyPubkey):$d(l.tokenOut,ea(y.redeem));Ke(c,[r],[m,g],Hn);const b=Gr(l.pool);if(b!==n.value+i*le)throw new Error("pool value arithmetic mismatch");const w={name:`swapKasForTokens(${i})`,inputs:[Gt(n,`POOL swapKasForTokens(${i}, ${u}, ${Kn(t.pool)?`${gi.reserveK}, ${gi.restK}`:"user"})`,Ze(t).poolSwapKasForTokens,Gd(t.pool,n.program,i,tr(g,t.token.templateHash),u)),ln(r,[m,g],"KCC20 pool cell (T leader, witness 00)",ve.tokenLeaderCovenant2Out),...s.map(A=>ce(A,"buyer KAS"))],outputs:[ft(t,"POOL'",p,b,n.covenantId,0),ne(t,"rest (owner P)",m,r.value,c,1),ne(t,y===void 0?"user cell":"deposit cell (owned by the script)",g,d,c,1),...y===void 0?[]:[Mn("script funding (P2SH)",y.scriptFunding,se(y.redeem))]],residual:Ie(Z(o.address),"change (buyer)"),genesisGroups:[],payload:new Uint8Array(0),...pe(e)};He(w,[n.covenantId,c]);const x=me(w,y===void 0?["pool","token-rest","token-user"]:["pool","token-rest","token-user","deposit"],"change");const S=i*le+d+(y?.scriptFunding??0n)+x.built.fee;ga(w.name,S,x.built.fee,e.maxAllIn);return{...x,poolNext:p,tokensOut:l.tokenOut,restNext:m,userNext:g,allIn:S}}a(em,"buildSwapKasForTokens");function ku(e){const{ctx:t,pool:n,poolToken:r,userCell:o,seller:i}=e;gn(t,n);pt(`pool ${n.covenantId}`,n.state.tokenCovId,e.tokenId);const s=ha(n,r);const c=e.extraUserCells??[];const d=e.scriptAuthority;if((c.length>0||d!==void 0)&&!Kn(t.pool))throw new Error("a multi-cell or script-authorized sell needs a composable pool (Kasseal-mainnet-2)");if(c.length>1)throw new Error("KCC-20 carries at most three token inputs: the seller's cell, one more and the reserve");if(d===void 0)lr(o,s,n.covenantId);else{if(o.covenantId!==s)throw new Error("user cell is not of lineage T");if(o.state.owner.schemeByte!==3||h(o.state.owner.identifier)!==h(ea(d.redeem)))throw new Error("the cell is not owned by the authority script");Zp(d.redeem,{...d.allowAnyScript===void 0?{}:{allowAnyScript:d.allowAnyScript},programs:[n.program,r.program]});const U=Qp(d.redeem);if(U!==void 0&&h(U)!==d.signerXOnly.toLowerCase())throw new yn("the authority script is locked to another key than the signer")}for(const U of c)lr(U,s,n.covenantId);const l=c.reduce((U,z)=>U+z.state.amount,o.state.amount);const u=qr(bn(n),l,_e(t),fa(t));if(e.minOutScaled!==void 0&&u.kasOutScaled<e.minOutScaled)throw new Error(`net payout ${u.kasOutScaled} is below minOut ${e.minOutScaled}`);const p=e.minOutScaled??u.kasOutScaled;const m={...n.state,kasScaled:u.pool.kasScaled,tokenReserve:u.pool.tokenReserve,feeAccruedScaled:u.pool.feeAccruedScaled};const y=Ue(u.pool.tokenReserve,n.covenantId);const g=2+c.length+1;const b=d===void 0?qt:Uint8Array.of(pi,g);Ke(s,[o,...c,r],[y],b);const w=Gr(u.pool);if(w!==n.value-u.kasOutScaled*le)throw new Error("pool value arithmetic mismatch");const x=d===void 0?Ot(o,[y],"KCC20 user cell (T leader, 00 || sig)",Ct(2+c.length,1)):(()=>{const U=mi(o.program,[y],b);return{label:"KCC20 script-owned cell (T leader, 00 || authority input)",outpoint:o.outpoint,amount:o.value,spk:se(o.program),daaScore:o.daaScore,covenantId:o.covenantId,budget:ve.tokenLeaderCovenant1Out,sigscript:U.bytes,signature:void 0,cellKind:"token"}})();const S={reserveK:BigInt(1+c.length),mergedK:0n};const A=d===void 0?[]:[{label:"authority script (P2SH, the signer's key)",outpoint:d.utxo.outpoint,amount:d.utxo.amount,spk:se(d.redeem),daaScore:d.utxo.daaScore,covenantId:void 0,budget:ve.p2pk,sigscript:E(Uint8Array.of(65),ra,cn(d.redeem)),signature:{kind:"token-delegator",offset:1,signer:d.signerXOnly,sighashType:1}}];const P={name:`swapTokensForKas(${l})`,inputs:[x,...c.map(U=>Pi(U,"KCC20 user cell (T delegator, sig)")),fn(r,"KCC20 pool cell (T delegator, empty witness)"),Gt(n,`POOL swapTokensForKas(${l}, ${p})`,Ze(t).poolSwapTokensForKas,qd(t.pool,n.program,l,p,S)),...A,...(e.funding??[]).map(U=>ce(U,"seller KAS (top-up)"))],outputs:[ne(t,"merged (owner P)",y,r.value,s,0),ft(t,"POOL'",m,w,n.covenantId,2+c.length)],residual:Qr(Z(i.address),"payout (seller)",mn),genesisGroups:[],payload:new Uint8Array(0),...pe(e)};He(P,[n.covenantId,s],d===void 0?void 0:{outpoint:d.utxo.outpoint,spk:se(d.redeem)});const $=me(P,["token-rest","pool"],"payout");const L=$.built.residualValue-co(e.funding);ya(P.name,L,$.built.fee,e.minNetOut);return{...$,poolNext:m,kasOutScaled:u.kasOutScaled,mergedNext:y,payout:$.built.residualValue,netOut:L}}a(ku,"buildSwapTokensForKas");var yb=0;var bb=1;var r8=2;var tm=3;var o8=4;var a8=0;var i8=1;var s8=2;var c8=3;var hb=0;var d8=1;var nm=2;var kb=3;var u8=4;var l8=0;var f8=1;var p8=2;var wb=3;var wu=4;var $i=sp;var rm=cp;function xu(e){return{...bn(e),lpShares:e.state.lpShares}}a(xu,"lpPoolMathState");function Li(e){if(e.state.lpCovId===void 0)throw new Error(`pool ${e.covenantId} has the 108-byte state: swap-only, no liquidity entries`);if(!Ua(e.state))throw new Error(`pool ${e.covenantId} is unbound (lpCovId 0^32): swap-only until bindLp`);return h(e.state.lpCovId)}a(Li,"requireBoundPool");function Ri(e,t,n="capped"){const r=Li(e);if(t.covenantId!==r)throw new Error(`inventory cell lineage ${t.covenantId} is not the pool's L ${r}`);if(!Mt(t.state,e.covenantId))throw new Error("inventory cell is not pool-owned");const o=vi(xu(e),n);if(t.state.amount!==o)throw new Error(`L inventory holds ${t.state.amount}, the state implies ${o} (LP_SUPPLY - issued); the pool is not spendable through add/remove`);return r}a(Ri,"requirePoolInventory");function Ui(e,t,n="capped"){Li(e);const r=xu(e);if(t<1n)throw new Error(`shares must be at least 1, got ${t}`);const o=zs(r,n);if(t>o)throw new Error(`${t} shares exceed the ${o} this pool can still issue (SHARES_MAX or a reserve cap)`);const i=mp(r,n);if(t<i)throw new Error(`deposit of ${t} shares is below the minimum of ${i} (at least max(1 KAS, 20 shares' worth of KAS), and enough shares to stay withdrawable whatever the price does later)`);return fp(t,r,n)}a(Ui,"depositQuote");function Ni(e,t,n,r,o="capped"){Li(e);if(t<1n)throw new Error(`shares must be at least 1, got ${t}`);const i=pp(t,xu(e),o);if(i.dKasScaled<un)throw new Error(`KAS leg ${i.dKasScaled} scaled is below the pool's PAYOUT_MIN ${un}`);if(n!==void 0&&i.dKasScaled<n)throw new Error(`KAS leg ${i.dKasScaled} scaled is below minKasOut ${n}`);if(r!==void 0&&i.dTok<r)throw new Error(`token leg ${i.dTok} is below minTokOut ${r}`);return i}a(Ni,"withdrawalQuote");var uo=a(e=>rt(e.state).extensionCommitment,"extOf");function om(e,t,n){const r=h(fi(e.pool,t.covenantId));const o=h(uo(n));if(o!==r)throw new Error(`L inventory extension commitment ${o} is not the ${r===t.covenantId?"pool's id":"0^32 of this build"} (${r})`)}a(om,"requireLpCommitment");function jn(e){const t=e<0n;const n=t?-e:e;const r=n/ke;const o=(n%ke).toString().padStart(8,"0").replace(/0+$/,"");return`${t?"-":""}${r}${o.length>0?`.${o}`:""}`}a(jn,"kasString");function uc(e){const{ctx:t,pool:n,inventory:r,reserve:o,userCell:i,funding:s,shares:c}=e;if(!Fe(gn(t,n)))throw new Error("addLiquidity exists in the v1 pool only");if(e.lpSafe!==true)throw new Error("deposit refused: the caller must assert lpSafe (the indexer confirms the L supply and the inventory equation of this pool)");pt(`pool ${n.covenantId}`,n.state.tokenCovId,e.tokenId);const d=Ri(n,r,_e(t));om(t,n,r);const l=ha(n,o);const u=n.covenantId;lr(i,l,u);if(s.length===0)throw new Error("addLiquidity needs at least one KAS input (the KAS leg and the fee)");const p=e.lpCellValue??$i;if(p<rm)throw new Error(`LP cell value ${p} is below the ${rm} sompi minimum`);const m=Ui(n,c,_e(t));if(i.state.amount!==m.dTok)throw new Error(`user cell holds ${i.state.amount} tokens, a deposit of ${c} shares takes exactly ${m.dTok}; split or merge first`);const y=uo(o);if(h(uo(i))!==h(y))throw new Error("user cell's extension commitment differs from the pool reserve's");const g={...n.state,kasScaled:m.pool.kasScaled,tokenReserve:m.pool.tokenReserve,lpShares:m.pool.lpShares};const b=Ue(m.pool.tokenReserve,u,y);const w=uo(r);const x=Ue(r.state.amount-c,u,w);const S=Bn(c,i.state.owner.identifier,{extensionCommitment:w});Ke(l,[i,o],[b],qt);Ke(d,[r],[x,S],Hn);const A=Gr(m.pool);if(A!==n.value+m.dKasScaled*le)throw new Error("pool value arithmetic mismatch");const P=pa(t);const $={name:`addLiquidity(${c})`,inputs:[Gt(n,`POOL addLiquidity(${c}, lpUser)`,P.poolAddLiquidity,Jd(t.pool,n.program,c,tr(S,t.token.templateHash))),Ot(i,[b],"KCC20 user cell of T (T leader, 00 || sig)",Ct(2,1)),fn(o,"KCC20 pool reserve (T delegator, empty witness)"),ln(r,[x,S],"KCC20 L inventory (L leader, witness 00)",ve.tokenLeaderCovenant2Out),...s.map(R=>ce(R,"KAS (depositor: KAS leg, LP cell funding, fee)"))],outputs:[ft(t,"POOL' {+dKas, +dTok, +shares}",g,A,u,yb),ne(t,"mergedT (owner P)",b,o.value,l,bb),ne(t,"restL inventory (owner P)",x,r.value,d,tm),ne(t,"lpUser (LP cell)",S,p,d,tm)],residual:Ie(Z(e.changeAddress),"change (depositor)"),genesisGroups:[],payload:new Uint8Array(0),...pe(e)};He($,[u,l,d]);const L=me($,["pool","token-rest","token-reserve","token-user"],"change");const U=co(s)-L.built.residualValue;ga($.name,U,L.built.fee,e.maxAllIn);const z=`Deposit ${c} shares: ${jn(m.dKasScaled*le)} KAS + ${m.dTok} tokens into the pool (shares ${n.state.lpShares} -> ${m.pool.lpShares}); your ${jn(i.value)} KAS token cell becomes a ${jn(p)} KAS LP cell; network fee ${jn(L.built.fee)} KAS.`;return{...L,shares:c,dKasScaled:m.dKasScaled,dTok:m.dTok,L:d,poolNext:g,mergedTokenNext:b,restLpNext:x,lpUserNext:S,lpCellValue:p,budgets:L.built.budgets,fee:L.built.fee,summary:z,allIn:U}}a(uc,"buildAddLiquidity");var xb=ke/2n;function Bi(e){const t=e-xb;const n=t>Pt?Pt:t;return n<Je?Je:n}a(Bi,"defaultTokenCellValue");var vb=ke/2n;function lc(e,t,n){return e-t+n*le<vb}a(lc,"withdrawalNeedsTopUp");function ka(e){const{ctx:t,pool:n,inventory:r,reserve:o,userLpCell:i,shares:s}=e;if(!Fe(gn(t,n)))throw new Error("removeLiquidity exists in the v1 pool only");pt(`pool ${n.covenantId}`,n.state.tokenCovId,e.tokenId);const c=Ri(n,r,_e(t));om(t,n,r);const d=ha(n,o);const l=n.covenantId;if(i.covenantId!==c)throw new Error(`LP cell lineage ${i.covenantId} is not the pool's L ${c}`);lr(i,c,l);const u=e.tokCellValue??Bi(i.value);if(u<Je)throw new Error(`token cell value ${u} is below the ${Je} sompi minimum`);const p=Ni(n,s,e.minKasOut,e.minTokOut,_e(t));if(i.state.amount!==s)throw new Error(`LP cell holds ${i.state.amount} shares, removeLiquidity(${s}) absorbs exactly ${s}; split or merge first`);const m=uo(r);if(h(uo(i))!==h(m))throw new Error("LP cell's extension commitment differs from the inventory's");const y=i.state.owner;if(y.schemeByte!==0)throw new Error(`LP cell owner scheme ${y.schemeByte} is not p2pk-schnorr/v1; the builder withdraws key-owned positions only`);const g=Z(e.changeAddress);if(h(g)!==`20${h(y.identifier)}ac`)throw new Error("the payout address is not the LP cell owner's key: the pool pays the KAS leg to the owner");const b={...n.state,kasScaled:p.pool.kasScaled,tokenReserve:p.pool.tokenReserve,lpShares:p.pool.lpShares};const w=Ue(r.state.amount+s,l,m);const x=uo(o);const S=Ue(p.pool.tokenReserve,l,x);const A=Bn(p.dTok,i.state.owner.identifier,{extensionCommitment:x});Ke(c,[i,r],[w],qt);Ke(d,[o],[S,A],Hn);const P=Gr(p.pool);if(P!==n.value-p.dKasScaled*le)throw new Error("pool value arithmetic mismatch");const $=pa(t);const L={name:`removeLiquidity(${s})`,inputs:[Ot(i,[w],"KCC20 user cell of L (L leader, 00 || sig)",Ct(2,1)),fn(r,"KCC20 L inventory (L delegator, empty witness)"),ln(o,[S,A],"KCC20 pool reserve (T leader, witness 00)",ve.tokenLeaderCovenant2Out),Gt(n,`POOL removeLiquidity(${s}, tokUser)`,$.poolRemoveLiquidity,Xd(t.pool,n.program,s,tr(A,t.token.templateHash))),...(e.funding??[]).map(xe=>ce(xe,"KAS (withdrawer top-up)"))],outputs:[ne(t,"mergedL inventory (owner P)",w,r.value,c,hb),ne(t,"restT (owner P)",S,o.value,d,nm),ne(t,"tokUser (token cell)",A,u,d,nm),ft(t,"POOL' {-dKas, -dTok, -shares}",b,P,l,kb)],residual:Qr(g,"payout (withdrawer)",p.dKasScaled*le>mn?p.dKasScaled*le:mn),genesisGroups:[],payload:new Uint8Array(0),...pe(e)};He(L,[l,d,c]);if(L.outputs.length!==wu||wu!==wb+1)throw new Error(`removeLiquidity payout must be output ${wu}, right after the pool`);const U=me(L,["token-reserve","token-rest","token-user","pool"],"payout");const z=U.built.residualValue;const R=z-co(e.funding);ya(L.name,R,U.built.fee,e.minNetOut);const W=`Withdraw ${s} shares: ${jn(p.dKasScaled*le)} KAS + ${p.dTok} tokens out of the pool (shares ${n.state.lpShares} -> ${p.pool.lpShares}); your ${jn(i.value)} KAS LP cell becomes a ${jn(u)} KAS token cell and a ${jn(z)} KAS payout; network fee ${jn(U.built.fee)} KAS.`;return{...U,shares:s,dKasScaled:p.dKasScaled,dTok:p.dTok,L:c,poolNext:b,mergedLpNext:w,restTokenNext:S,tokenUserNext:A,tokCellValue:u,payout:z,netOut:R,budgets:U.built.budgets,fee:U.built.fee,summary:W}}a(ka,"buildRemoveLiquidity");var Sb=.01;var Ab=100n;function vu(e,t){for(const[o,i]of[["quoted",e],["live",t]]){if(i.kasScaled<=0n||i.tokenReserve<=0n)throw new Error(`${o} state has non-positive reserves`)}const n=t.kasScaled*e.tokenReserve;const r=e.kasScaled*t.tokenReserve;return{num:n>r?n-r:r-n,den:r}}a(vu,"ratioTerms");function m8(e,t){const{num:n,den:r}=vu(e,t);return(n*10000n+r-1n)/r}a(m8,"ratioDriftBps");function Tb(e,t){const{num:n,den:r}=vu(e,t);return Number(n*1000000000n/r)/1e9}a(Tb,"ratioDrift");function Pb(e,t){const{num:n,den:r}=vu(e,t);return n*10000n<Ab*r}a(Pb,"canRebuildAutomatically");var Ii=class extends Error{static{a(this,"RatioDriftError")}drift;quoted;live;constructor(t,n){const r=Tb(t,n);super(`reserve ratio moved ${(r*100).toFixed(3)} % since the quote (limit ${Sb*100} %): re-quote before rebuilding`);this.name="RatioDriftError";this.drift=r;this.quoted={kasScaled:t.kasScaled,tokenReserve:t.tokenReserve};this.live={kasScaled:n.kasScaled,tokenReserve:n.tokenReserve}}};function am(e,t){if(!Pb(e,t))throw new Ii(e,t)}a(am,"assertRebuildAllowed");var fc=1e3;var im=10000n;var _t=class extends Error{static{a(this,"SlippageOutOfRange")}value;constructor(t,n){super(`slippage: ${String(t)} ${n}`);this.name="SlippageOutOfRange";this.value=t}};function Su(e){if(typeof e!=="number"||!Number.isInteger(e))throw new _t(e,"bps is not an integer");if(e<0)throw new _t(e,"bps is negative");if(e>fc)throw new _t(e,`bps is above the ${fc} bps maximum`)}a(Su,"assertSlippageBps");function sm(e){if(typeof e!=="number"||!Number.isFinite(e))throw new _t(e,"% is not a finite number");if(e<0)throw new _t(e,"% is negative");const t=e*100;const n=Math.round(t);if(Math.abs(t-n)>1e-6)throw new _t(e,"% is finer than one basis point");Su(n);return n}a(sm,"slippageBpsOfPercent");function cm(e){if(typeof e!=="bigint")throw new _t(Number(e),"amount is not a bigint");if(e<0n)throw new _t(e,"amount is negative")}a(cm,"assertAmount");function Cb(e,t){cm(e);Su(t);return e+e*BigInt(t)/im}a(Cb,"maxWithSlippage");function Eb(e,t){cm(e);Su(t);return e-e*BigInt(t)/im}a(Eb,"minWithSlippage");function b8(e,t){return Cb(e,sm(t))}a(b8,"maxWithSlippagePct");function h8(e,t){return Eb(e,sm(t))}a(h8,"minWithSlippagePct");function Ob(e,t){const n=String(e);const r=/script units exceeded the amount committed in the input: used=(\d+), limit=(\d+)/.exec(n);if(r){const d=Number(r[1]);const l=Number(r[2]);const u=Kr(l);const p=t&&u!==void 0?_b(t,u):void 0;return{kind:"budget",used:d,limit:l,inputIndex:p,message:n}}const o=/fees which is under the required amount of (\d+) for ([a-z ]*mass)/.exec(n);if(o)return{kind:"fee-too-low",required:BigInt(o[1]),bucket:o[2].trim(),message:n};const i=/output \(([0-9a-f]{64}), (\d+)\) already spent by transaction ([0-9a-f]{64}) in the mempool/.exec(n);if(i)return{kind:"lost-race",outpoint:{txid:i[1],index:Number(i[2])},winnerTxid:i[3],message:n};const s=/already spent by transaction ([0-9a-f]{64}) in the mempool/.exec(n);if(s)return{kind:"lost-race",outpoint:void 0,winnerTxid:s[1],message:n};if(/is an orphan where orphan is disallowed/.test(n))return{kind:"orphan",message:n};if(/is already in the mempool/.test(n))return{kind:"duplicate",message:n};const c=/storage mass of (\d+) is larger than max allowed size of 500000/.exec(n);if(c)return{kind:"unminable",storageMass:Number(c[1]),message:n};if(/failed to verify the signature script/.test(n))return{kind:"script-failure",message:n};return{kind:"other",message:n}}a(Ob,"classifyRejection");function _b(e,t){const n=e.map((r,o)=>r===t?o:-1).filter(r=>r>=0);return n.length>0?n[0]:void 0}a(_b,"indexOfBudget");var wa=class extends Error{static{a(this,"RejectedError")}rejection;txid;constructor(t,n){super(`transaction ${t} rejected (${n.kind}): ${n.message}`);this.name="RejectedError";this.rejection=n;this.txid=t}};function Ib(e){return String(e?.message??e)}a(Ib,"errorMessage");async function A8(e,t,{maxBudgetPatches:n=6}={}){const r=[];let o=t;for(let i=0;;i++){try{const s=await e.submitTransaction({transaction:o.tx,allowOrphan:false});r.push({budgets:o.budgets,fee:o.fee,ok:true});if(s.transactionId!==o.txid)throw new Error(`node echoed txid ${s.transactionId}, expected ${o.txid}`);return{txid:o.txid,attempts:r,budgets:o.budgets,masses:o.masses}}catch(s){if(s instanceof Error&&s.message.startsWith("node echoed txid"))throw s;const c=Ob(Ib(s),o.budgets);r.push({budgets:o.budgets,fee:o.fee,ok:false,rejection:c});if(c.kind==="budget"&&c.inputIndex!==void 0&&i<n){const d=Math.max(o.budgets[c.inputIndex]+1,ci(c.used));o=Wf(o,c.inputIndex,d);if(o.masses.minFee>o.fee){throw new wa(o.txid,{...c,message:`${c.message} (budget ${d} makes compute the binding bucket; rebuild with the new budget)`})}continue}throw new wa(o.txid,c)}}}a(A8,"submit");async function $b(e,t,n=5){for(let r=0;r<n;r++){try{const o=await e.getMempoolEntry({transactionId:t,includeOrphanPool:false,filterTransactionPool:false});const i=o.mempoolEntry.transaction;return{fee:o.mempoolEntry.fee,storageMass:i.storageMass??i.mass,computeMass:i.verboseData?.computeMass}}catch{await dm(50)}}return void 0}a($b,"mempoolEntry");async function T8(e,t){const n=await e.getUtxosByAddresses([t]);return n.entries.filter(r=>!r.isCoinbase).map(r=>Lb(r,t))}a(T8,"utxosOf");function Lb(e,t){const n=e.entry.covenantId?.toString();return{outpoint:{txid:e.outpoint.transactionId,index:e.outpoint.index},amount:e.amount,spk:hi(e.scriptPublicKey.script),daaScore:e.blockDaaScore,address:t,covenantId:n===void 0||/^0+$/.test(n)?void 0:n}}a(Lb,"utxoOf");async function P8(e,t,n,{timeoutMs:r=6e4,pollMs:o=200}={}){const i=t.outputs.filter(u=>u.cell!==void 0||u.binding!==void 0);const s=i.length>0?i:[t.outputs[t.outputs.length-1]];const c=Date.now()+r;const d=new Map;const l=await $b(e,t.txid);while(Date.now()<c){for(const u of s){if(d.has(u.index))continue;const p=Vs(u.spk,n);const m=await e.getUtxosByAddresses([p]);const y=m.entries.find(g=>g.outpoint.transactionId===t.txid&&g.outpoint.index===u.index);if(y){d.set(u.index,{outputIndex:u.index,address:p,amount:y.amount,covenantId:y.entry.covenantId?.toString(),spk:y.scriptPublicKey.script,daaScore:y.blockDaaScore})}}if(d.size===s.length){const u=[...d.values()].sort((p,m)=>p.outputIndex-m.outputIndex);return{txid:t.txid,daaScore:u[0].daaScore,cells:u,mempool:l}}await dm(o)}throw new Error(`${t.plan.name} ${t.txid}: not in the UTXO index after ${r} ms (${d.size}/${s.length} outputs seen)`)}a(P8,"waitForAcceptance");function C8(e,t){const n=e.outputs[t.outputIndex];if(!n)throw new Error(`no output ${t.outputIndex}`);if(t.amount!==n.value)throw new Error(`output ${n.index} "${n.label}": on-chain amount ${t.amount} != built ${n.value}`);if(t.spk!==h(n.spk))throw new Error(`output ${n.index} "${n.label}": on-chain spk ${t.spk} != built ${h(n.spk)}`);const r=n.cell?.covenantId??n.binding?.covenantId;if(r!==void 0&&t.covenantId!==r)throw new Error(`output ${n.index} "${n.label}": on-chain covenant id ${t.covenantId} != ${r}`)}a(C8,"assertAcceptedCell");var dm=a(e=>new Promise(t=>setTimeout(t,e)),"sleep");var Au=.001;var ye=class extends Error{static{a(this,"ReplacementRefused")}constructor(t){super(t);this.name="ReplacementRefused"}};var Rb=new Set(["submitted","already-in-mempool","fee-too-low"]);var Ub=new Set(["change","payout"]);function lm(e){if(!Number.isFinite(e)||e<0||e>1)throw new ye(`bump ${e} out of range`);return BigInt(Math.round(e*1e6))}a(lm,"bumpPpm");function Nb(e,t=Au){if(e<=0n)throw new ye("original fee must be positive");const n=lm(t);const r=(e*(1000000n+n)+999999n)/1000000n;return r>e?r:e+1n}a(Nb,"replacementMinFee");function Bb(e,t,n){if(t.kind==="lost-race")throw new ye("a lost race is never replaced: rebuild at the new head instead");if(!Rb.has(t.kind))throw new ye(`state ${t.kind} is not replaceable`);if("txid"in t&&t.txid!==e.txid)throw new ye(`state is about ${t.txid}, not ${e.txid}`);if(!n.some(r=>r.txid===e.txid))throw new ye(`${e.txid} is not one of our pending transactions`)}a(Bb,"assertReplaceable");function um(e){return JSON.parse(e.txJson).outputs}a(um,"outputsOf");function Kb(e,t,n,r=Au){if(t.txid===e.txid)throw new ye("the replacement has the same txid");const o=e.consumes.map(B).sort();const i=t.consumes.map(B).sort();if(o.length!==i.length||o.some((g,b)=>g!==i[b]))throw new ye("the replacement must spend exactly the same outpoints");const s=new Set(i);for(const g of n){if(g.txid===e.txid)continue;const b=g.consumes.find(w=>s.has(B(w)));if(b)throw new ye(`the replacement would also conflict with our pending ${g.txid} on ${B(b)}`)}const c=um(e);const d=um(t);if(c.length!==d.length)throw new ye("the replacement changes the output count");const l=new Map(e.produces.map(g=>[g.index,g.role]));const u=new Map(t.produces.map(g=>[g.index,g.role]));c.forEach((g,b)=>{const w=d[b];if(l.get(b)!==u.get(b))throw new ye(`output ${b} changes its role`);const x=(g.covenant??null)===null?(w.covenant??null)===null:w.covenant!==null&&w.covenant!==void 0&&g.covenant.authorizingInput===w.covenant.authorizingInput&&g.covenant.covenantId===w.covenant.covenantId;if(g.scriptPublicKey!==w.scriptPublicKey||!x)throw new ye(`output ${b} changes its script or binding`);const S=l.get(b);if(S!==void 0&&Ub.has(S)){if(BigInt(w.value)>BigInt(g.value))throw new ye(`output ${b} (${S}) grows in the replacement`)}else if(BigInt(w.value)!==BigInt(g.value)){throw new ye(`output ${b} changes its value; only the change or payout may pay for the bump`)}});const p=BigInt(e.masses.max);const m=BigInt(t.masses.max);if(p<=0n||m<=0n)throw new ye("masses must be positive");const y=lm(r);if(!(t.feeSompi*p>e.feeSompi*m))throw new ye("the replacement feerate is not strictly greater");if(t.feeSompi*p*1000000n<e.feeSompi*m*(1000000n+y))throw new ye(`the replacement feerate is below the +${Number(y)/1e4} % bump`)}a(Kb,"assertReplacement");async function I8(e,t){const n=t.bump??Au;Bb(e,t.state,t.pending);const r=await t.rebuild(Nb(e.feeSompi,n));Kb(e,r,t.pending,n);const o=await t.sign(r);if(o.txid!==r.txid)throw new ye("signing changed the replacement txid");const i=await t.submitReplacement(o);if(i.transactionId!==o.txid)throw new ye(`node echoed ${i.transactionId}, submitted ${o.txid}`);if(i.replacedTxid!==e.txid)throw new ye(`the node replaced ${i.replacedTxid}, not our ${e.txid}`);return{state:{kind:"replaced",oldTxid:e.txid,newTxid:o.txid},built:o}}a(I8,"replace");var fm=Object.freeze({budgetMs:15e3,backoffMinMs:120,backoffMaxMs:200,silenceMs:3e3});var et=class extends Error{static{a(this,"RetryPolicyError")}constructor(t){super(t);this.name="RetryPolicyError"}};var Tu=class{static{a(this,"RetryPolicy")}config;#e;#t;#n;#r;#o;#c=0;#i=0;#s=0;#d=0;#a;constructor(t,n=Math.random,r=fm){if(!(r.backoffMinMs>=0&&r.backoffMaxMs>=r.backoffMinMs&&r.budgetMs>0&&r.silenceMs>0))throw new et("invalid retry policy configuration");this.#e=t;this.#t=n;this.config=r}start(){if(this.#n!==void 0)throw new et("retry policy already started");this.#n=this.#e.now()}get startedAt(){if(this.#n===void 0)throw new et("retry policy not started");return this.#n}get deadline(){const t=this.#a===void 0?0:Math.max(0,this.#e.now()-this.#a);return this.startedAt+this.config.budgetMs+this.#d+t}pause(){if(this.#a===void 0)this.#a=this.#e.now()}resume(){if(this.#a===void 0)return;this.#d+=Math.max(0,this.#e.now()-this.#a);this.#a=void 0}get pausedMs(){return this.#d+(this.#a===void 0?0:Math.max(0,this.#e.now()-this.#a))}get rereads(){return this.#s}get pending(){return this.#r}onState(t){const n=this.#e.now();this.#o=t;switch(t.kind){case"built":case"signed":throw new et(`state ${t.kind} is not a submission outcome`);case"accepted":case"confirmed":return this.#f({kind:"done",txid:t.txid});case"replaced":return this.#f({kind:"superseded",newTxid:t.newTxid});case"script-failed":return this.#u("script-failed",t);case"failed":return this.#u("failed",t);case"submitted":case"already-in-mempool":return this.#p(t.txid,n,t);case"lost-race":if(t.cause==="mempool-spent"&&t.winnerTxid!==void 0){if(n>=this.deadline)return this.#u("busy",t);return this.#f({kind:"await-winner",winnerTxid:t.winnerTxid,until:Math.min(n+this.config.silenceMs,this.deadline)})}return this.#l(n,t);case"fee-too-low":if(this.#c>=1)return this.#u("builder-bug",t);if(n>=this.deadline)return this.#u("busy",t);this.#c++;return this.#f({kind:"rebuild-with-fee",minFeeSompi:t.requiredSompi});case"budget-too-low":{const r=Kr(t.limit);if(this.#i>=1||t.inputIndex<0||r===void 0)return this.#u("builder-bug",t);if(n>=this.deadline)return this.#u("busy",t);this.#i++;return this.#f({kind:"patch-budget",inputIndex:t.inputIndex,budget:Math.max(r+1,ci(t.used))})}}}onWinnerAccepted(t){const n=this.#r;if(n?.kind!=="await-winner"||n.winnerTxid!==t)throw new et(`not waiting for ${t}`);const r=this.config.backoffMaxMs-this.config.backoffMinMs+1;const o=this.#t();if(!(o>=0&&o<1))throw new et(`random source returned ${o}`);return this.#l(this.#e.now()+this.config.backoffMinMs+Math.floor(o*r),this.#o)}onWinnerInTip(t){const n=this.#r;if(n?.kind!=="await-winner"||n.winnerTxid!==t)throw new et(`not waiting for ${t}`);return this.#l(this.#e.now(),this.#o)}onTimer(){const t=this.#e.now();const n=this.#r;if(n===void 0)throw new et("no pending action");if(n.kind==="await-winner"&&t>=n.until)return this.#l(t,this.#o);if(n.kind==="await-acceptance"&&t>=n.until)return t>=this.deadline?this.#u("busy",this.#o):this.#f({kind:"check-status",txid:n.txid});return n}onStatus(t){const n=this.#e.now();const r=this.#o;const o=this.#r?.kind==="check-status"||this.#r?.kind==="await-acceptance"?this.#r.txid:void 0;if(o===void 0||r===void 0)throw new et("no transaction in flight");if(t==="accepted")return this.#f({kind:"done",txid:o});if(t==="in-mempool")return this.#p(o,n,r);return this.#l(n,{kind:"lost-race",txid:o,cause:"orphan"})}#p(t,n,r){if(n>=this.deadline)return this.#u("busy",r);return this.#f({kind:"await-acceptance",txid:t,until:Math.min(n+this.config.silenceMs,this.deadline)})}#l(t,n){if(t>=this.deadline)return this.#u("busy",n);this.#s++;return this.#f({kind:"reread",at:t})}#u(t,n){return this.#f({kind:"give-up",reason:t,state:n})}#f(t){this.#r=t;return t}};function N8(e){if(!Number.isInteger(e.slippageBps)||e.slippageBps<0||e.slippageBps>fc)throw new et(`slippage ${e.slippageBps} bps out of range`);if(e.quoted<=0n||e.requoted<0n)throw new et("quotes must be positive");const t=BigInt(e.slippageBps);return e.side==="cost"?e.requoted*10000n<=e.quoted*(10000n+t):e.requoted*10000n>=e.quoted*(10000n-t)}a(N8,"withinSlippage");async function B8(e,t=fm){const n=new Tu(e.clock,e.random??Math.random,t);n.start();let r=0;let o=0;let i={};let s;let c;const d=a(g=>e.onState?.(g,c??s),"report");const l=a(g=>({outcome:g,built:c??s,submissions:r,rebuilds:o,elapsedMs:e.clock.now()-n.startedAt}),"finish");const u=a(async g=>{n.pause();try{return await g()}finally{n.resume()}},"person");let p={kind:"reread",at:e.clock.now()};for(;;){switch(p.kind){case"done":case"give-up":case"superseded":return l(p);case"reread":case"rebuild-with-fee":{if(p.kind==="reread")await e.sleepUntil(p.at);else i={...i,minFeeSompi:p.minFeeSompi};if(s!==void 0)o++;s=await e.build(i);d({kind:"built"});if(o>0&&e.approve!==void 0&&!await u(()=>e.approve(s,o))){const g={kind:"failed",reason:"price moved beyond the accepted slippage"};d(g);return l({kind:"give-up",reason:"failed",state:g})}c=await u(()=>e.sign(s));d({kind:"signed"});p=await y(c);break}case"patch-budget":{const g=e.patchBudget(c,p.inputIndex,p.budget);if(g===void 0){i={...i,budget:{inputIndex:p.inputIndex,budget:p.budget}};if(s!==void 0)o++;s=await e.build(i);d({kind:"built"});c=await u(()=>e.sign(s));d({kind:"signed"});p=await y(c);break}c=g;d({kind:"signed"});p=await y(c);break}case"await-winner":{const g=await e.waitForAcceptance(p.winnerTxid,p.until);p=g!==void 0?n.onWinnerAccepted(p.winnerTxid):await m(p.until);break}case"await-acceptance":{const g=await e.waitForAcceptance(p.txid,p.until);if(g!==void 0){const b={kind:"accepted",txid:p.txid,acceptingBlueScore:g};d(b);p=n.onState(b)}else{p=await m(p.until)}break}case"check-status":p=n.onStatus(await e.status(p.txid));break}}async function m(g){await e.sleepUntil(g);return n.onTimer()}a(m,"timer");async function y(g){r++;const b=await e.submit(g);d(b);return n.onState(b)}a(y,"submitOnce")}a(B8,"runSubmission");var xa="([0-9a-f]{64})";var Mb=new RegExp(`^(?:RPC Server \\(remote error\\) -> )?Rejected transaction ${xa}: (.*)$`,"s");var Fb=new RegExp(`^output \\(${xa}, (\\d+)\\) already spent by transaction ${xa} in the mempool$`);var Db=new RegExp(`^transaction ${xa} is an orphan where orphan is disallowed$`);var Hb=new RegExp(`^transaction ${xa} is already in the mempool$`);var jb=/^failed to verify the signature script: script units exceeded the amount committed in the input: used=(\d+), limit=(\d+)$/;var Vb=new RegExp(`^(?:transaction ${xa} is not standard: )?transaction has (\\d+) fees which is under the required amount of (\\d+) for (compute|normalized transient|storage) mass (\\d+)(?: \\(proportional to transaction byte size\\))?$`);var Gb=/^failed to verify the signature script: (?:script ran, but verification failed|false stack entry at end of script execution)$/;var qb={compute:"compute","normalized transient":"transient",storage:"storage"};function Wb(e){if(typeof e==="string")return e;const t=e?.message;return typeof t==="string"?t:String(e)}a(Wb,"rejectionMessage");function pm(e,t={}){const n=Wb(e).trim();const r=Mb.exec(n);if(!r)return{kind:"failed",reason:n};const o=r[1];const i=r[2];if(t.txid!==void 0&&t.txid.toLowerCase()!==o)return{kind:"failed",reason:`rejection names ${o}, submitted ${t.txid}: ${n}`};const s=o;const c=Fb.exec(i);if(c)return{kind:"lost-race",txid:s,winnerTxid:c[3],cause:"mempool-spent"};const d=Db.exec(i);if(d&&d[1]===s)return{kind:"lost-race",txid:s,cause:"orphan"};const l=Hb.exec(i);if(l&&l[1]===s)return{kind:"already-in-mempool",txid:s};const u=jb.exec(i);if(u){const m=Number(u[1]);const y=Number(u[2]);const g=Kr(y);const b=g===void 0||t.budgets===void 0?-1:t.budgets.indexOf(g);return{kind:"budget-too-low",txid:s,inputIndex:b,used:m,limit:y}}const p=Vb.exec(i);if(p&&(p[1]===void 0||p[1]===s))return{kind:"fee-too-low",txid:s,requiredSompi:BigInt(p[3]),bucket:qb[p[4]]};if(Gb.test(i))return{kind:"script-failed",txid:s};return{kind:"failed",reason:n}}a(pm,"classifyNodeRejection");var zb=10;var hn=class extends Error{static{a(this,"InvalidTransition")}state;event;constructor(t,n,r="not allowed"){super(`submit state ${t.kind} cannot take event ${n.kind}: ${r}`);this.name="InvalidTransition";this.state=t;this.event=n}};var Jb=new Set(["script-failed","replaced","failed"]);var Xb=new Set(["submitted","already-in-mempool"]);var Yb=new Set(["lost-race","fee-too-low","budget-too-low"]);function Qb(e){return Jb.has(e.kind)}a(Qb,"isTerminal");function Zb(e){if(e.kind==="replaced")return e.newTxid;return"txid"in e?e.txid:void 0}a(Zb,"txidOf");function mr(e,t,n){const r=Zb(e);if(r!==void 0&&r!==n)throw new hn(e,t,`event names ${n}, state is about ${r}`)}a(mr,"sameTx");function eh(e,t){if(t.kind==="failed"){if(Qb(e)||e.kind==="confirmed")throw new hn(e,t);return{kind:"failed",reason:t.reason}}switch(e.kind){case"built":if(t.kind==="signed")return{kind:"signed"};break;case"signed":if(t.kind==="submitted"){if(!/^[0-9a-f]{64}$/.test(t.txid))throw new hn(e,t,"txid is not 32-byte hex");return{kind:"submitted",txid:t.txid,at:t.at}}break;case"submitted":case"already-in-mempool":switch(t.kind){case"accepted":mr(e,t,t.txid);return{kind:"accepted",txid:t.txid,acceptingBlueScore:t.acceptingBlueScore};case"rejected":{const n=pm(t.error,t.budgets===void 0?{txid:e.txid}:{txid:e.txid,budgets:t.budgets});return n}case"conflict":mr(e,t,t.txid);if(t.winnerTxid===t.txid)throw new hn(e,t,"a transaction cannot conflict with itself");return{kind:"lost-race",txid:t.txid,winnerTxid:t.winnerTxid,cause:t.winnerAccepted?"orphan":"mempool-spent"};case"unknown":mr(e,t,t.txid);return{kind:"lost-race",txid:t.txid,cause:"orphan"};case"replaced":mr(e,t,t.oldTxid);if(t.newTxid===t.oldTxid)throw new hn(e,t,"a replacement has a new txid");return{kind:"replaced",oldTxid:t.oldTxid,newTxid:t.newTxid};default:break}break;case"accepted":if(t.kind==="accepted"){mr(e,t,t.txid);return{kind:"accepted",txid:t.txid,acceptingBlueScore:t.acceptingBlueScore}}if(t.kind==="depth"){mr(e,t,t.txid);return t.depth>=zb?{kind:"confirmed",txid:t.txid,depth:t.depth}:e}break;case"confirmed":if(t.kind==="depth"){mr(e,t,t.txid);return t.depth>e.depth?{kind:"confirmed",txid:e.txid,depth:t.depth}:e}break;case"lost-race":case"fee-too-low":case"budget-too-low":if(t.kind==="rebuilt")return{kind:"built"};if(t.kind==="budget-patched"&&e.kind==="budget-too-low")return{kind:"signed"};if(t.kind==="replaced"&&e.kind==="fee-too-low"){mr(e,t,t.oldTxid);return{kind:"replaced",oldTxid:t.oldTxid,newTxid:t.newTxid}}break;default:break}throw new hn(e,t)}a(eh,"nextState");var mm=class{static{a(this,"SubmitMachine")}#e;#t;constructor(t={kind:"built"}){this.#e=t;this.#t=[t]}get state(){return this.#e}get history(){return this.#t}get inFlight(){return Xb.has(this.#e.kind)}get retryable(){return Yb.has(this.#e.kind)}dispatch(t){const n=eh(this.#e,t);if(n!==this.#e){this.#e=n;this.#t.push(n)}return n}};var va="mainnet";var pc=class extends Error{static{a(this,"PresetNotAllowedOnNetwork")}preset;networkId;constructor(t,n,r){super(`preset ${t} cannot be launched on ${n}: ${r}`);this.name="PresetNotAllowedOnNetwork";this.preset=t;this.networkId=n}};function gm(e){if(e.networkId!==va)return;const t=e.curve;const n=ld(t.preset);if(n===void 0)throw new pc(t.preset,e.networkId,"only the Standard family (standard and its price bands) may be launched on mainnet");const r=t.params;const o=r.p0===n.curve.p0&&r.k===n.curve.k&&r.feeBps===n.curve.feeBps&&r.curveLots===n.curve.curveLots&&r.lot===n.lotSize&&r.gradReserve===n.gradLots*n.lotSize;if(!o)throw new pc(t.preset,e.networkId,`its constants are not the ${n.name} preset's`)}a(gm,"assertPresetAllowedOnNetwork");var ym=15*6e4;var th=6e4;var Pu=class extends Error{static{a(this,"KasPriceRequired")}preset;constructor(t){super(`preset ${t}: a Standard-family launch on mainnet needs the KAS/USD price its band was picked at`);this.name="KasPriceRequired";this.preset=t}};var Cu=class extends Error{static{a(this,"KasPriceStale")}asOfMs;nowMs;constructor(t,n){super(`the KAS/USD price is from ${Number.isFinite(t)?new Date(t).toISOString():String(t)}, ${Math.round((n-t)/1e3)} s before now: a launch needs a price at most ${ym/6e4} minutes old`);this.name="KasPriceStale";this.asOfMs=t;this.nowMs=n}};var Ki=class extends Error{static{a(this,"StandardBandMismatch")}preset;kasUsd;expected;constructor(t,n,r,o){super(`preset ${t} is not the Standard band for KAS/USD ${n}${r===void 0?"":` (that is ${r})`}: ${o}`);this.name="StandardBandMismatch";this.preset=t;this.kasUsd=n;this.expected=r}};function bm(e,t,n){const r=e.curve.preset;if(ld(r)===void 0){if(rf(r))throw new Ki(r,t?.usd??Number.NaN,void 0,"it is a legacy band, no longer part of the Standard family");return}if(t===void 0){if(e.networkId===va)throw new Pu(r);return}const{usd:o,asOfMs:i}=t;if(typeof o!=="number"||!Number.isFinite(o)||o<=0)throw new Ki(r,o,void 0,"the price is not a positive number");if(typeof i!=="number"||!Number.isFinite(i)||n-i>ym||i-n>th){throw new Cu(i,n)}const s=cf(r,o,0);if(!s.accepted)throw new Ki(r,o,s.expected?.name,s.message)}a(bm,"assertBandForPrice");function hm(e){throw new Bt(`contracts/vault/v1/artifacts/${e}/manifest.json`)}a(hm,"splitterOfArtifacts");var km="qpzry9x8gf2tvdw0s3jn54khce6mua7l";var nh=[0x98f2bc8e61n,0x79b76d99e2n,0xf33e5fb3c4n,0xae2eabe2a8n,0x1e4f43e470n];var yc=0;var rh=1;var oh=8;var mc={0:32,1:33,8:32};var Ae=class extends Error{static{a(this,"AddressError")}constructor(t){super(t);this.name="AddressError"}};function ah(e){let t=1n;for(const n of e){const r=t>>35n;t=(t&0x07ffffffffn)<<5n^BigInt(n);for(let o=0;o<5;o++)if(r>>BigInt(o)&1n)t^=nh[o]}return t^1n}a(ah,"polymod");function wm(e,t){return ah([...[...t].map(n=>n.charCodeAt(0)&31),0,...e,0,0,0,0,0,0,0,0])}a(wm,"checksum");function gc(e,t,n,r){let o=0;let i=0;const s=[];const c=(1<<n)-1;for(const d of e){o=o<<t|d;i+=t;while(i>=n){i-=n;s.push(o>>i&c)}o&=(1<<i)-1}if(r){if(i>0)s.push(o<<n-i&c)}else if(i>=t||(o<<n-i&c)!==0){throw new Ae("address payload has non-zero padding")}return s}a(gc,"convertBits");function Eu(e,t,n){if(!/^[a-z0-9]+$/.test(e))throw new Ae(`invalid address prefix ${JSON.stringify(e)}`);if(n.length!==mc[t])throw new Ae(`version ${t} payload must be ${mc[t]} bytes, got ${n.length}`);const r=gc([t,...n],8,5,true);const o=wm(r,e);const i=[];for(let c=4;c>=0;c--)i.push(Number(o>>BigInt(8*c)&0xffn));const s=gc(i,8,5,true);return`${e}:${[...r,...s].map(c=>km[c]).join("")}`}a(Eu,"encodeAddress");function Wt(e){const t=e.lastIndexOf(":");if(t<=0)throw new Ae(`address ${JSON.stringify(e)} has no prefix`);const n=e.slice(0,t);const r=e.slice(t+1);if(n!==n.toLowerCase()||r!==r.toLowerCase())throw new Ae("mixed-case address");if(r.length<9)throw new Ae("address too short");const o=[...r].map(m=>{const y=km.indexOf(m);if(y<0)throw new Ae(`invalid address character ${JSON.stringify(m)}`);return y});const i=o.slice(0,-8);const s=o.slice(-8);const c=gc(s,5,8,false);let d=0n;for(const m of c)d=d<<8n|BigInt(m);if(d!==wm(i,n))throw new Ae("address checksum mismatch");const l=gc(i,5,8,false);const u=l[0];if(u!==0&&u!==1&&u!==8)throw new Ae(`unknown address version ${u}`);const p=Uint8Array.from(l.slice(1));if(p.length!==mc[u])throw new Ae(`version ${u} payload must be ${mc[u]} bytes, got ${p.length}`);return{prefix:n,version:u,payload:p}}a(Wt,"decodeAddress");function mt(e){if(e==="mainnet")return"kaspa";if(e==="devnet")return"kaspadev";if(e==="simnet")return"kaspasim";if(/^testnet(-\d+)?$/.test(e))return"kaspatest";throw new Ae(`unknown network ${JSON.stringify(e)}`)}a(mt,"addressPrefixOf");function Sa(e){const t=Wt(e);if(t.version!==yc)throw new Ae(`${e} is not a Schnorr P2PK address (version ${t.version})`);return t.payload}a(Sa,"xOnlyKeyOfAddress");function xm(e,t){if(e.length===34&&e[0]===32&&e[33]===172)return Eu(t,yc,e.subarray(1,33));if(e.length===35&&e[0]===33&&e[34]===171)return Eu(t,rh,e.subarray(1,34));if(e.length===35&&e[0]===170&&e[1]===32&&e[34]===135)return Eu(t,oh,e.subarray(2,34));return void 0}a(xm,"addressOfScript");var Ou="kaspa:qrt0p8sd5g8k383mzxgqtyl7ehkdez8ds8cpxqcuwjdaayke9rjhg9pqnr3zx";var ih="mainnet";var lo=class extends Error{static{a(this,"TreasuryNotAllowedOnNetwork")}networkId;treasurySpk;constructor(t,n,r){super(`treasury ${n??"(none)"} is not allowed on ${t}: ${r}`);this.name="TreasuryNotAllowedOnNetwork";this.networkId=t;this.treasurySpk=n}};function Sm(e,t){const n=Wt(e);if(n.prefix!==t)throw new Error(`${e} is not a ${t} address`);if(n.version!==yc)throw new Error(`${e} is not a Schnorr P2PK address`);return Uint8Array.from([0,0,32,...n.payload,172])}a(Sm,"p2pkTreasurySpkOfAddress");function Am(){return h(Sm(Ou,"kaspa"))}a(Am,"mainnetCompanySpk");function Tm(){const e=Am();let t;try{t=hm(ih)}catch(n){if(n instanceof Bt)return[e];throw n}if(h(t.companySpk)!==e){throw new lo(va,h(t.spk),`the mainnet Splitter pays company script ${h(t.companySpk)}, not ${e} (${Ou})`)}return[e,h(t.spk)]}a(Tm,"mainnetTreasurySpks");var vm;function bc(e){if(e!==va)return void 0;vm??=Tm();return vm}a(bc,"allowedTreasurySpks");function _u(e,t=bc(e.networkId)){if(t===void 0)return void 0;const n=e.curve.params.treasurySpk;const r=e.pool.treasurySpk;const o=`${e.curve.version}:${e.curve.preset}${e.pool.revision===void 0?"":`@${e.pool.revision}`}`;if(n===void 0||r===void 0)return`${o}: the curve or its pool names no treasury`;if(h(n)!==h(r))return`${o}: the curve's treasury ${h(n)} is not its pool's ${h(r)}`;if(!t.includes(h(n)))return`${o}: its treasury is not one of ${t.join(", ")}`;return void 0}a(_u,"treasuryProblemOf");function Mi(e,t){return _u(e,t??bc(e.networkId))===void 0}a(Mi,"isTreasuryAllowedOnNetwork");function Aa(e,t){const n=_u(e,t??bc(e.networkId));if(n!==void 0){const r=e.curve.params.treasurySpk;throw new lo(e.networkId,r===void 0?void 0:h(r),n)}}a(Aa,"assertTreasuryAllowedOnNetwork");var Vn=class extends Error{static{a(this,"MessageSignatureError")}wallet;constructor(t,n){super(`${t} signMessage: ${n}`);this.name="MessageSignatureError";this.wallet=t}};var Ta=class extends Error{static{a(this,"MessageSigningUnsupported")}wallet;constructor(t,n){super(`${t} cannot sign messages here: ${n}`);this.name="MessageSigningUnsupported";this.wallet=t}};function hc(e,t){if(typeof t!=="string")throw new Vn(e,`expected a hex signature, got ${t===null?"null":typeof t}`);const n=t.trim().replace(/^0x/i,"").toLowerCase();if(!/^[0-9a-f]*$/.test(n)||n.length%2!==0)throw new Vn(e,"the signature is not hex");if(n.length!==128)throw new Vn(e,`expected a 64-byte Schnorr signature, got ${n.length/2} bytes`);return n}a(hc,"kaspaMessageSignature");var Y=class extends Error{static{a(this,"SignRequestError")}constructor(t){super(t);this.name="SignRequestError"}};function sh(e){const t=[];for(const n of er(e)){if(n.payload.length===Ce)t.push(n.dataOffset);else if(n.payload.length===Ce+1&&n.payload[0]===0)t.push(n.dataOffset+1)}return t}a(sh,"signatureSlotsOf");function ch(e,t,n){if(!Number.isInteger(t)||t<0||t+Ce>e.length){throw new Y(`input ${n}: signature offset ${t} outside the ${e.length}-byte sigscript`)}let r;try{r=sh(e)}catch(o){throw new Y(`input ${n}: sigscript is not push-only: ${o.message}`)}if(!r.includes(t))throw new Y(`input ${n}: offset ${t} is not a signature slot of the sigscript (slots ${r.join(", ")||"none"})`);if(e.subarray(t,t+Ce).some(o=>o!==0))throw new Y(`input ${n}: signature slot at ${t} is not empty`)}a(ch,"assertEmptySignatureSlot");function Pa(e,t,{networkId:n}){let r;try{r=JSON.parse(e)}catch(u){throw new Y(`transaction JSON does not parse: ${u.message}`)}if(!Array.isArray(r.inputs))throw new Y("transaction JSON has no inputs");if(typeof r.id!=="string"||!/^[0-9a-f]{64}$/.test(r.id))throw new Y("transaction JSON has no transaction id");if(t.length===0)throw new Y("no inputs to sign");const o=mt(n);const i=new Set;const s=[];const c=JSON.parse(e);for(const u of[...t].sort((p,m)=>p.index-m.index)){const p=u.index;const m=c.inputs[p];if(!Number.isInteger(p)||m===void 0)throw new Y(`input ${p} does not exist (${c.inputs.length} inputs)`);if(i.has(p))throw new Y(`input ${p} listed twice`);i.add(p);if(u.sighashType!==ua)throw new Y(`input ${p}: sighash type ${String(u.sighashType)} is not SIGHASH_ALL (1)`);if(!m.utxo)throw new Y(`input ${p} has no UTXO entry`);if(m.utxo.isCoinbase===true)throw new Y(`input ${p} spends a coinbase output`);const y=_(m.signatureScript??"");if(u.kind==="p2pk"){if(y.length!==0&&!M(y,bi))throw new Y(`input ${p}: P2PK input does not hold the builder placeholder`);if(u.signatureOffset!==void 0&&u.signatureOffset!==1)throw new Y(`input ${p}: P2PK signature offset ${u.signatureOffset}`)}else{if(u.signatureOffset===void 0)throw new Y(`input ${p}: ${u.kind} without a signature offset`);if(typeof m.utxo.covenantId!=="string"||!/^[0-9a-f]{64}$/.test(m.utxo.covenantId))throw new Y(`input ${p}: covenant input without utxo.covenantId`);ch(y,u.signatureOffset,p);s.push({inputIndex:p,scriptHex:"",prebuiltSignatureScript:h(y),signatureOffsets:[u.signatureOffset],expectedSighash:""})}m.signatureScript=""}for(const[u,p]of c.inputs.entries()){if(p.utxo&&(p.utxo.address===null||p.utxo.address===void 0)){const m=xm(ec(p.utxo.scriptPublicKey).script,o);if(m===void 0)throw new Y(`input ${u}: UTXO script has no address form`);p.utxo.address=m}}const d=JSON.stringify(c);const l=c;return{txJson:d,txid:r.id,signInputs:[...i].sort((u,p)=>u-p).map(u=>({index:u,sighashType:ua})),prebuilt:s.map(u=>({...u,expectedSighash:lu(l,u.inputIndex,ua)}))}}a(Pa,"prepareSignRequest");function Pm(e){if(typeof e==="string")return e;if(e!==null&&typeof e==="object"&&"psktTransactionJson"in e){const t=e.psktTransactionJson;if(typeof t==="string")return t;if(t!==null&&typeof t==="object")return JSON.stringify(t)}throw new Y("wallet returned neither a SafeJSON string nor { psktTransactionJson }")}a(Pm,"signedTxJsonOf");function Ca(e,t){let n;try{n=JSON.parse(t)}catch(i){throw new Y(`signed transaction does not parse: ${i.message}`)}const r=JSON.parse(e.txJson);if(n.id!==e.txid)throw new Y(`signed transaction id ${String(n.id)} is not the requested ${e.txid}`);if(!Array.isArray(n.inputs)||n.inputs.length!==r.inputs.length)throw new Y("signed transaction has another input count");const o=new Set(e.signInputs.map(i=>i.index));r.inputs.forEach((i,s)=>{const c=n.inputs[s];if(c.transactionId!==i.transactionId||Number(c.index)!==Number(i.index))throw new Y(`signed input ${s} spends another outpoint`);if(!o.has(s)&&(c.signatureScript??"")!==(i.signatureScript??""))throw new Y(`the wallet changed the sigscript of input ${s}, which it was not asked to sign`);if(o.has(s)&&(c.signatureScript??"")==="")throw new Y(`the wallet did not sign input ${s}`)})}a(Ca,"assertAnswerMatchesRequest");var fo=class extends Error{static{a(this,"KaspireError")}code;method;constructor(t,n,r){super(`kaspire ${t}${n===void 0?"":` (${n})`}: ${r}`);this.name="KaspireError";this.code=n;this.method=t}get rejectedByUser(){return this.code===4001}};var Gn=class extends Error{static{a(this,"WalletUnavailable")}constructor(t){super(`wallet "${t}" is not available in this browser`);this.name="WalletUnavailable"}};var Me=class extends Error{static{a(this,"WalletNotConnected")}constructor(){super("wallet is not connected");this.name="WalletNotConnected"}};var qn=class extends Error{static{a(this,"WalletNetworkMismatch")}expected;actual;constructor(t,n){super(`wallet is on network ${JSON.stringify(n)}, expected ${t}`);this.name="WalletNetworkMismatch";this.expected=t;this.actual=n}};var we=class extends Error{static{a(this,"WalletAccountMismatch")}constructor(t){super(t);this.name="WalletAccountMismatch"}};var dh=["accountsChanged","networkChanged"];function uh(){const e=globalThis.kaspire;return e!==null&&typeof e==="object"&&typeof e.request==="function"?e:void 0}a(uh,"defaultProvider");var Iu=class{static{a(this,"KaspireAdapter")}id="kaspire";label="Kaspire";network;signing;#e;#t=null;#n;#r=new Set;constructor(t={}){const n=t.provider;this.#e=typeof n==="function"?n:n!==void 0?()=>n:uh;this.network=t.network??"testnet-10";this.signing=t.signing??"b1";mt(this.network)}isAvailable(){return this.#e()!==void 0}getAccount(){return this.#t}onChange(t){this.#r.add(t);return()=>this.#r.delete(t)}async connect(){const t=this.#c();const n=await this.#s(t,"requestAccounts");if(!Array.isArray(n)||n.length===0||typeof n[0]!=="string")throw new fo("requestAccounts",void 0,"no account returned");return this.#o(t,n[0])}async restore(){const t=this.#e();if(t===void 0)return null;const n=await this.#s(t,"getAccounts");if(!Array.isArray(n)||n.length===0||typeof n[0]!=="string")return null;return this.#o(t,n[0],false)}async switchNetwork(){const t=this.#c();await this.#s(t,"switchNetwork",{network:this.network})}async#o(t,n,r=true){this.#d(t);await this.#i(t);let o;try{o=Wt(n)}catch(s){throw new we(`wallet account ${n} is not a valid address: ${s.message}`)}if(o.prefix!==mt(this.network))throw new we(`wallet account ${n} is not a ${this.network} address`);let i;try{i=h(Sa(n))}catch(s){throw new we(`wallet account ${n}: ${s.message}`)}if(r){const s=await this.#s(t,"getPublicKey");if(typeof s!=="string"||!/^[0-9a-fA-F]{64}$/.test(s))throw new we(`getPublicKey returned ${JSON.stringify(s)}, expected a 32-byte x-only key`);if(s.toLowerCase()!==i)throw new we(`getPublicKey ${s} is not the key of ${n}`)}this.#t={address:n,publicKey:i,network:this.network};return this.#t}async disconnect(){this.#a();this.#t=null;const t=this.#e();if(t===void 0)return;try{await t.request({method:"disconnect"})}catch{}}async signPskt(t,n){const{signed:r}=await this.signRequest(t,n);return r}async signRequest(t,n){const r=this.#t;if(r===null)throw new Me;const o=this.#c();await this.#i(o);if(this.#t!==r)throw new Me;const i=Pa(t,n,{networkId:this.network});const s=this.signing==="b2"&&i.prebuilt.length>0?{sender:r.address,psktTransactionJson:i.txJson,submitTransaction:false,signInputs:i.signInputs,scripts:i.prebuilt}:{sender:r.address,txJsonString:i.txJson,options:{signInputs:i.signInputs}};const c=await this.#s(o,"signPskt",s);const d=Pm(c);Ca(i,d);return{request:i,signed:d}}async signMessage(t){const n=this.#t;if(n===null)throw new Me;const r=this.#c();await this.#i(r);if(this.#t!==n)throw new Me;const o=await this.#s(r,"signMessage",{message:t,address:n.address});if(o===null||typeof o!=="object")throw new Vn("kaspire","expected { publicKey, signedMessage }");const i=o;if(i.address!==void 0&&i.address!==n.address)throw new we(`signMessage answered for ${String(i.address)}, not ${n.address}`);if(i.publicKey!==void 0&&(typeof i.publicKey!=="string"||i.publicKey.toLowerCase()!==n.publicKey)){throw new we(`signMessage signed with ${String(i.publicKey)}, not the key of ${n.address}`)}return hc("kaspire",i.signedMessage??i.signature)}#c(){const t=this.#e();if(t===void 0)throw new Gn(this.id);return t}async#i(t){const n=await this.#s(t,"getNetwork");if(n!==this.network){this.#t=null;throw new qn(this.network,n)}}async#s(t,n,r){try{return await t.request(r===void 0?{method:n}:{method:n,params:r})}catch(o){const i=o;throw new fo(n,typeof i?.code==="number"?i.code:void 0,typeof i?.message==="string"?i.message:String(o))}}#d(t){if(this.#n?.provider===t)return;this.#a();if(typeof t.on!=="function")return;const n=new Map;for(const r of dh){const o=a((...i)=>this.#p(r==="accountsChanged"?{kind:"accounts-changed",payload:i[0]}:{kind:"network-changed",payload:i[0]}),"listener");t.on(r,o);n.set(r,o)}this.#n={provider:t,listeners:n}}#a(){const t=this.#n;this.#n=void 0;if(!t||typeof t.provider.removeListener!=="function")return;for(const[n,r]of t.listeners)t.provider.removeListener(n,r)}#p(t){this.#t=null;for(const n of[...this.#r]){try{n(t)}catch{}}}};function x3(e={}){return new Iu(e)}a(x3,"createKaspireAdapter");async function v3(e,t){const n=e.getAccount?.()?.publicKey;const r=await e.signPskt(t.txJson,t.inputsToSign);return rc(t,r,n===void 0?{}:{signer:n})}a(v3,"signBuilt");var kn=class extends Error{static{a(this,"KasWareError")}code;method;constructor(t,n,r){super(`kasware ${t}${n===void 0?"":` (${n})`}: ${r}`);this.name="KasWareError";this.code=n;this.method=t}get rejectedByUser(){return this.code===4001}};var kc={kaspa_mainnet:"mainnet",kaspa_testnet_10:"testnet-10",kaspa_testnet_11:"testnet-11",kaspa_testnet_12:"testnet-12",kaspa_devnet:"devnet"};function lh(e){if(typeof e!=="string")return void 0;return kc[e]??(Object.values(kc).includes(e)?e:void 0)}a(lh,"networkOfKasWare");function Cm(e){const t=Object.keys(kc).find(n=>kc[n]===e);if(t===void 0)throw new Ae(`KasWare has no network for ${JSON.stringify(e)}`);return t}a(Cm,"kasWareNetworkOf");function Lu(e){if(typeof e!=="string")return void 0;const t=e.toLowerCase().replace(/^0x/,"");if(/^[0-9a-f]{64}$/.test(t))return t;if(/^0[23][0-9a-f]{64}$/.test(t))return t.slice(2);return void 0}a(Lu,"xOnlyOfReportedKey");function fh(e){if(typeof e==="string")return e;if(e!==null&&typeof e==="object"){const t=e;for(const n of["txJsonString","psktTransactionJson","signedTxJson","tx"]){const r=t[n];if(typeof r==="string")return r;if(r!==null&&typeof r==="object"&&Array.isArray(r.inputs))return JSON.stringify(r)}if(Array.isArray(t.inputs))return JSON.stringify(t)}throw new Y("KasWare returned no signed transaction JSON")}a(fh,"kasWareSignedJsonOf");function ph(e){try{const t=JSON.parse(e);return(t.inputs??[]).map((n,r)=>{const o=n.signatureScript??"";return{input:r,bytes:o.length/2,head:o.slice(0,2),tail:o.slice(-2)}})}catch{return"unparseable"}}a(ph,"sigScriptSummary");var mh=["accountsChanged","networkChanged"];function gh(){const e=globalThis.kasware;return e!==null&&typeof e==="object"&&typeof e.requestAccounts==="function"?e:void 0}a(gh,"defaultProvider");var $u=class{static{a(this,"KasWareAdapter")}id="kasware";label="KasWare";network;#e;#t;#n=null;#r;#o=new Set;constructor(t={}){const n=t.provider;this.#e=typeof n==="function"?n:n!==void 0?()=>n:gh;this.network=t.network??"testnet-10";this.#t=t.log===void 0?(...r)=>console.info(...r):t.log;mt(this.network);Cm(this.network)}isAvailable(){return this.#e()!==void 0}getAccount(){return this.#n}onChange(t){this.#o.add(t);return()=>this.#o.delete(t)}async connect(){const t=this.#i();const n=await this.#d("requestAccounts",()=>t.requestAccounts());if(!Array.isArray(n)||n.length===0||typeof n[0]!=="string")throw new kn("requestAccounts",void 0,"no account returned");return this.#c(t,n[0])}async restore(){const t=this.#e();if(t===void 0||typeof t.getAccounts!=="function")return null;const n=await this.#d("getAccounts",()=>t.getAccounts());const r=typeof n==="string"?n===""?[]:[n]:n;if(!Array.isArray(r)||r.length===0||typeof r[0]!=="string")return null;return this.#c(t,r[0])}async switchNetwork(){const t=this.#i();if(typeof t.switchNetwork!=="function")throw new kn("switchNetwork",4200,"this KasWare has no switchNetwork");await this.#d("switchNetwork",()=>t.switchNetwork(Cm(this.network)))}async#c(t,n){this.#a(t);await this.#s(t);let r;try{r=Wt(n)}catch(c){throw new we(`wallet account ${n} is not a valid address: ${c.message}`)}if(r.prefix!==mt(this.network))throw new we(`wallet account ${n} is not a ${this.network} address`);let o;try{o=h(Sa(n))}catch(c){throw new we(`wallet account ${n}: ${c.message}`)}const i=await this.#d("getPublicKey",()=>t.getPublicKey());this.#t?.("[kasware] getPublicKey ->",i);const s=Lu(i);if(s===void 0)throw new we(`getPublicKey returned ${JSON.stringify(i)}, expected a 33-byte compressed or 32-byte x-only key`);if(s!==o)throw new we(`getPublicKey ${String(i)} is not the key of ${n}`);this.#n={address:n,publicKey:o,network:this.network};return this.#n}async disconnect(){this.#p();this.#n=null;const t=this.#e();if(t===void 0||typeof t.disconnect!=="function")return;try{const n=globalThis.location?.origin;await t.disconnect(n)}catch{}}async signPskt(t,n){const{signed:r}=await this.signRequest(t,n);return r}async signRequest(t,n){const r=this.#n;if(r===null)throw new Me;const o=this.#i();await this.#s(o);if(this.#n!==r)throw new Me;const i=Pa(t,n,{networkId:this.network});const s={txJsonString:i.txJson,options:{signInputs:i.signInputs}};this.#t?.("[kasware] signPskt request",{txid:i.txid,inputsToSign:n.map(l=>({index:l.index,kind:l.kind,signatureOffset:l.signatureOffset})),options:s.options});this.#t?.("[kasware] signPskt txJsonString",i.txJson);let c;try{c=await this.#d("signPskt",()=>o.signPskt(s))}catch(l){this.#t?.("[kasware] signPskt error",l instanceof kn?{code:l.code,message:l.message}:l);throw l}this.#t?.("[kasware] signPskt raw response",typeof c==="string"?c:JSON.stringify(c));const d=fh(c);this.#t?.("[kasware] signPskt signature scripts",ph(d));Ca(i,d);return{request:i,signed:d}}async signMessage(t){const n=this.#n;if(n===null)throw new Me;const r=this.#i();if(typeof r.signMessage!=="function")throw new Ta("KasWare","this version has no signMessage");await this.#s(r);if(this.#n!==n)throw new Me;this.#t?.("[kasware] signMessage request",{message:t});let o;try{o=await this.#d("signMessage",()=>r.signMessage(t,{type:"schnorr"}))}catch(i){this.#t?.("[kasware] signMessage error",i instanceof kn?{code:i.code,message:i.message}:i);throw i}this.#t?.("[kasware] signMessage raw response",o);return hc("kasware",o)}#i(){const t=this.#e();if(t===void 0)throw new Gn(this.id);return t}async#s(t){const n=await this.#d("getNetwork",()=>t.getNetwork());const r=lh(n);if(r!==this.network){this.#n=null;throw new qn(this.network,r??n)}}async#d(t,n){try{return await n()}catch(r){const o=r;throw new kn(t,typeof o?.code==="number"?o.code:void 0,typeof o?.message==="string"?o.message:String(r))}}#a(t){if(this.#r?.provider===t)return;this.#p();if(typeof t.on!=="function")return;const n=new Map;for(const r of mh){const o=a((...i)=>{this.#t?.(`[kasware] ${r}`,i[0]);this.#l(r==="accountsChanged"?{kind:"accounts-changed",payload:i[0]}:{kind:"network-changed",payload:i[0]})},"listener");t.on(r,o);n.set(r,o)}this.#r={provider:t,listeners:n}}#p(){const t=this.#r;this.#r=void 0;if(!t||typeof t.provider.removeListener!=="function")return;for(const[n,r]of t.listeners)t.provider.removeListener(n,r)}#l(t){this.#n=null;for(const n of[...this.#o]){try{n(t)}catch{}}}};function _3(e={}){return new $u(e)}a(_3,"createKasWareAdapter");var yh=["mainnet","testnet-10"];var Em=4200;var gt=class extends Error{static{a(this,"KastleError")}code;method;constructor(t,n,r){super(`kastle ${t}${n===void 0?"":` (${n})`}: ${r}`);this.name="KastleError";this.code=n;this.method=t}get rejectedByUser(){return this.code===4001}get covenantRefused(){return this.method==="signTx"&&this.code===Em}};function bh(e){if(typeof e==="string")return e;if(e!==null&&typeof e==="object"&&Array.isArray(e.inputs))return JSON.stringify(e);throw new Y("Kastle returned no signed transaction JSON")}a(bh,"kastleSignedJsonOf");function hh(e){if(typeof e==="string"){const t=e.toLowerCase().replace(/^0x/,"");if(/^[0-9a-f]{128}$/.test(t))return t}throw new gt("signMessage",void 0,`expected a 64-byte hex signature, got ${JSON.stringify(e)}`)}a(hh,"kastleMessageSignatureOf");function kh(e){try{const t=JSON.parse(e);return(t.inputs??[]).map((n,r)=>{const o=n.signatureScript??"";return{input:r,bytes:o.length/2,head:o.slice(0,2),tail:o.slice(-2)}})}catch{return"unparseable"}}a(kh,"sigScriptSummary");var wh=["accountsChanged","networkChanged"];function xh(){const e=globalThis.kastle;return e!==null&&typeof e==="object"&&typeof e.signTx==="function"?e:void 0}a(xh,"defaultProvider");var Ru=class{static{a(this,"KastleAdapter")}id="kastle";label="Kastle";network;#e;#t;#n=null;#r;#o=new Set;constructor(t={}){const n=t.provider;this.#e=typeof n==="function"?n:n!==void 0?()=>n:xh;this.network=t.network??"testnet-10";this.#t=t.log===void 0?(...r)=>console.info(...r):t.log;mt(this.network);if(!yh.includes(this.network))throw new Ae(`Kastle has no network ${JSON.stringify(this.network)}`)}isAvailable(){return this.#e()!==void 0}getAccount(){return this.#n}onChange(t){this.#o.add(t);return()=>this.#o.delete(t)}async connect(){const t=this.#i();const n=await this.#a("connect",()=>t.connect());if(n!==true)throw new gt("connect",void 0,`connection not approved (${JSON.stringify(n)})`);await this.#d(t);return this.#c(t)}async restore(){const t=this.#e();if(t===void 0)return null;try{await t.getAccount()}catch{return null}return this.#c(t)}async#c(t){this.#p(t);await this.#s(t);const n=await this.#a("getAccount",()=>t.getAccount());this.#t?.("[kastle] getAccount ->",n);const r=n??{};if(typeof r.address!=="string")throw new gt("getAccount",void 0,"no account returned");const o=r.address;let i;try{i=Wt(o)}catch(d){throw new we(`wallet account ${o} is not a valid address: ${d.message}`)}if(i.prefix!==mt(this.network))throw new we(`wallet account ${o} is not a ${this.network} address`);let s;try{s=h(Sa(o))}catch(d){throw new we(`wallet account ${o}: ${d.message}`)}const c=Lu(r.publicKey);if(c===void 0)throw new we(`getAccount returned the key ${JSON.stringify(r.publicKey)}, expected a 33-byte compressed or 32-byte x-only key`);if(c!==s)throw new we(`getAccount key ${String(r.publicKey)} is not the key of ${o}`);this.#n={address:o,publicKey:s,network:this.network};return this.#n}async disconnect(){this.#l();this.#n=null;const t=this.#e();if(t===void 0||typeof t.disconnect!=="function")return;try{await t.disconnect()}catch{}}async signPskt(t,n){const{signed:r}=await this.signRequest(t,n);return r}async signRequest(t,n){const r=this.#n;if(r===null)throw new Me;const o=this.#i();await this.#s(o);if(this.#n!==r)throw new Me;const i=Pa(t,n,{networkId:this.network});const s=i.signInputs.map(l=>({inputIndex:l.index,signType:"All"}));this.#t?.("[kastle] signTx request",{networkId:this.network,txid:i.txid,inputsToSign:n.map(l=>({index:l.index,kind:l.kind,signatureOffset:l.signatureOffset})),scripts:s});this.#t?.("[kastle] signTx txJson",i.txJson);let c;try{c=await this.#a("signTx",()=>o.signTx(this.network,i.txJson,s))}catch(l){this.#t?.("[kastle] signTx error",l instanceof gt?{code:l.code,message:l.message,covenantRefused:l.covenantRefused}:l);throw l}this.#t?.("[kastle] signTx raw response",typeof c==="string"?c:JSON.stringify(c));const d=bh(c);this.#t?.("[kastle] signTx signature scripts",kh(d));Ca(i,d);return{request:i,signed:d}}async signMessage(t){const n=this.#n;if(n===null)throw new Me;const r=this.#i();if(typeof r.signMessage!=="function")throw new gt("signMessage",Em,"this Kastle version has no signMessage");await this.#s(r);if(this.#n!==n)throw new Me;this.#t?.("[kastle] signMessage request",t);let o;try{o=await this.#a("signMessage",()=>r.signMessage(t))}catch(i){this.#t?.("[kastle] signMessage error",i instanceof gt?{code:i.code,message:i.message}:i);throw i}this.#t?.("[kastle] signMessage raw response",o);return hh(o)}#i(){const t=this.#e();if(t===void 0)throw new Gn(this.id);return t}async#s(t){const n=await this.#a("getNetwork",()=>t.getNetwork());if(n!==this.network){this.#n=null;throw new qn(this.network,n)}}async#d(t){if(this.#t===null||typeof t.getVersion!=="function")return;try{this.#t("[kastle] getVersion ->",await t.getVersion())}catch{}}async#a(t,n){try{return await n()}catch(r){if(typeof r==="string")throw new gt(t,r==="User denied"?4001:void 0,r);const o=r;const i=typeof o?.message==="string"?o.message:String(r);const s=typeof o?.code==="number"?o.code:i==="User denied"?4001:void 0;throw new gt(t,s,i)}}#p(t){if(this.#r?.provider===t)return;this.#l();if(typeof t.on!=="function")return;const n=new Map;for(const r of wh){const o=a((...i)=>{this.#t?.(`[kastle] ${r}`,i[0]);this.#u(r==="accountsChanged"?{kind:"accounts-changed",payload:i[0]}:{kind:"network-changed",payload:i[0]})},"listener");t.on(r,o);n.set(r,o)}this.#r={provider:t,listeners:n}}#l(){const t=this.#r;this.#r=void 0;if(!t||typeof t.provider.removeListener!=="function")return;for(const[n,r]of t.listeners)t.provider.removeListener(n,r)}#u(t){this.#n=null;for(const n of[...this.#o]){try{n(t)}catch{}}}};function K3(e={}){return new Ru(e)}a(K3,"createKastleAdapter");var vh=36;function wc(e,t){if(t.length!==nt)throw new Error(`a creator slot holds ${nt} bytes`);const n=[];e:for(let r=0;r+1+t.length<=e.length;r++){if(e[r]!==vh)continue;for(let o=0;o<t.length;o++)if(e[r+1+o]!==t[o])continue e;n.push(r+1);r+=t.length}return n}a(wc,"creatorSlots");function Uu(e,t){if(!Jt(t))throw new Error("creator script must be a version-0 P2PK script in the 36-byte form");const n=e.curve;const r=wc(n.suffix,n.params.creatorSpk);if(r.length===0)throw new Error(`preset ${n.preset}: no creator slot in the compiled suffix`);const o=Uint8Array.from(n.suffix);for(const c of r)o.set(t,c);const i=n.bytecode.subarray(n.stateOffset,n.stateOffset+n.stateLength);const s={...n,suffix:o,bytecode:E(n.prefix,i,o),templateHash:Lt(n.prefix,o),params:{...n.params,creatorSpk:Uint8Array.from(t)}};return{...e,curve:s}}a(Uu,"instantiateCurve");function Om(e,t){for(const n of t){const r=n.curve;if(e.length!==r.bytecode.length||!M(e.subarray(0,r.stateOffset),r.prefix))continue;const o=wc(r.suffix,r.params.creatorSpk)[0];if(o===void 0)continue;const i=e.subarray(r.stateOffset+r.stateLength);const s=i.subarray(o,o+nt);if(!Jt(s))continue;const c=Uu(n,s);if(M(c.curve.suffix,i))return c}return null}a(Om,"contextForCurveProgram");var _m=a((e,t)=>e.state.amount<t.state.amount?1:e.state.amount>t.state.amount?-1:0,"byAmountDesc");function Im(e,t,n={}){const r=n.reserved??new Set;return e.filter(o=>(t===void 0||o.covenantId===t)&&o.state.owner.schemeByte===0&&o.state.amount>0n&&!r.has(B(o.outpoint)))}a(Im,"spendableCells");function W3(e,t,n=Tn){if(t<=0n)throw new Error("amount must be positive");const r=e.reduce((c,d)=>c+d.state.amount,0n);if(r<t)return{kind:"insufficient",available:r};const o=e.find(c=>c.state.amount===t);if(o)return{kind:"exact",cell:o};const i=e.filter(c=>c.state.amount>t).sort(_m);if(i.length>0)return{kind:"needs-split",cell:i[i.length-1],available:r};const s=[...e].sort(_m);for(let c=2;c<=Math.min(n,s.length);c++){const d=Sh(s,c,t);if(d)return{kind:"needs-consolidation",cells:d}}return{kind:"needs-plan",available:r}}a(W3,"selectTokenCells");function Sh(e,t,n){const r=[];const o=a((i,s)=>{if(r.length===t)return s===0n;for(let c=i;c<e.length;c++){const d=e[c];if(d.state.amount>s)continue;r.push(d);if(o(c+1,s-d.state.amount))return true;r.pop()}return false},"rec");return o(0,n)?r:void 0}a(Sh,"subsetOfSize");function $m(e,t,n){const r=new Set;for(const s of t)for(const c of s.built.plan.inputs)if(c.covenantId===void 0)r.add(B(c.outpoint));const o=e.filter(s=>!r.has(B(s.outpoint)));const i=Z(n.address);for(const s of t){const c=s.optimistic.funding.change;if(c)o.push({outpoint:c.outpoint,amount:c.amount,spk:i,daaScore:0n,address:n.address})}return o}a($m,"remainingFunding");var Lm=a(e=>({...e.feeMargin===void 0?{}:{feeMargin:e.feeMargin},...e.feerate===void 0?{}:{feerate:e.feerate}}),"feeOf");function Rm(e){const{ctx:t,pool:n,inventory:r,reserve:o,owner:i,shares:s}=e;Ri(n,r,_e(t));const c=Ui(n,s,_e(t));const d=Lm(e);const l=_i({ctx:t,cells:e.cells,owner:i,funding:e.funding,target:c.dTok,...e.fundingOptions===void 0?{}:{fundingOptions:e.fundingOptions},...d});const u=$m(e.funding,l.transactions,i);const p=e.lpCellValue??$i;const m=p>l.cell.value?p-l.cell.value:0n;const y=ar(u,c.dKasScaled*le+m,e.fundingOptions);const g=uc({ctx:t,pool:n,inventory:r,reserve:o,userCell:l.cell,funding:y,changeAddress:i.address,shares:s,lpSafe:e.lpSafe,...e.lpCellValue===void 0?{}:{lpCellValue:e.lpCellValue},...d,...e.tokenId===void 0?{}:{tokenId:e.tokenId},...e.maxAllIn===void 0?{}:{maxAllIn:e.maxAllIn}});const b=[...l.transactions,g];return{plan:l.plan,transactions:b,totalFee:b.reduce((w,x)=>w+x.built.fee,0n),final:g}}a(Rm,"buildDepositChain");function Um(e){const{ctx:t,pool:n,inventory:r,reserve:o,owner:i,shares:s}=e;const c=Ri(n,r,_e(t));const d=Ni(n,s,e.minKasOut,e.minTokOut,_e(t));for(const b of e.lpCells)if(b.covenantId!==c)throw new Error(`cell ${B(b.outpoint)} is not of the pool's L ${c}`);const l=Lm(e);const u=_i({ctx:t,cells:e.lpCells,owner:i,funding:e.funding,target:s,...e.fundingOptions===void 0?{}:{fundingOptions:e.fundingOptions},...l});const p=e.tokCellValue??Bi(u.cell.value);const m={ctx:t,pool:n,inventory:r,reserve:o,userLpCell:u.cell,changeAddress:i.address,shares:s,tokCellValue:p,...e.minKasOut===void 0?{}:{minKasOut:e.minKasOut},...e.minTokOut===void 0?{}:{minTokOut:e.minTokOut},...l,...e.tokenId===void 0?{}:{tokenId:e.tokenId},...e.minNetOut===void 0?{}:{minNetOut:e.minNetOut}};let y;if(!lc(u.cell.value,p,d.dKasScaled)){try{y=ka(m)}catch(b){if(!(b instanceof Dt))throw b}}if(y===void 0){const b=$m(e.funding,u.transactions,i);y=ka({...m,funding:ar(b,0n,e.fundingOptions)})}const g=[...u.transactions,y];return{plan:u.plan,transactions:g,totalFee:g.reduce((b,w)=>b+w.built.fee,0n),final:y}}a(Um,"buildWithdrawalChain");function Xe(e){const t=e.params;if(t.gradReserve%t.lot!==0n)throw new Error(`gradReserve ${t.gradReserve} is not a whole number of lots`);return{name:e.preset,curve:{p0:t.p0,k:t.k,feeBps:t.feeBps,curveLots:t.curveLots},lotSize:t.lot,totalSupply:t.curveLots*t.lot+t.gradReserve,gradLots:t.gradReserve/t.lot,treasurySharePct:Ws[vr(e.version)],sweepMinSompi:10n*ke,tokenCellSompi:t.tokenCellKas}}a(Xe,"launchPresetOf");var Nu=class extends Error{static{a(this,"ReservedTickerError")}word;field;constructor(t,n){super(`buildCreate: the ${n} reads as ${t}, which is reserved`);this.name="ReservedTickerError";this.word=t;this.field=n}};var Bu=5n*ke;var Ku=5n*ke;function Nm(e){const{ctx:t,creatorAddress:n,metadata:r,funding:o}=e;const i=e.prepValue??Bu;const s=e.curveValue??Ku;const c=pe(e);const d=t.curve;Ne(t);gm(t);Aa(t);bm(t,e.kasPrice,e.nowMs??Date.now());let l;if(e.factoryGate?.skip){if(!e.factoryGate.reason)throw new Error("factoryGate.skip needs a reason");l=e.factoryGate.reason;dt(Xe(d))}else{np(Xe(d))}if(o.length===0)throw new Error("buildCreate: no funding");for(const be of["name","symbol"]){const he=r[be];if(typeof he!=="string"||he.trim()==="")throw new Error(`buildCreate: the declaration needs a non-empty ${be==="symbol"?"ticker (`symbol`)":"name (`name`)"}`)}const u=uf(t.networkId,{name:r.name,ticker:r.symbol},n);if(u!==null)throw new Nu(u.word,u.field);const p=Z(n);const m=Sf(r);const y={tokenCovId:Ve,lotsSold:0n,feeAccrued:0n,phase:xr};const g=Zo(d,y);if(h(g)!==h(d.bytecode))throw new Error("curve genesis program differs from the compiled artifact");const b={name:"tx01 prep + curve genesis",inputs:o.map((be,he)=>ce(be,he===0?"creator KAS (prep + genesis funding)":`creator KAS ${he}`)),outputs:[Mn("prep outpoint P2PK(creator)",i,p),pn(t,"CURVE genesis {phase 0}",y,s,void 0,void 0)],residual:Ie(p,"change (creator)"),genesisGroups:[{authorizingInput:0,outputs:[1]}],payload:m,...c};const w=me(b,["prep","curve"],"change",{reserveOutputs:[0]});const x=w.built;const S=x.genesis[0].covenantId;if(x.residualValue===0n&&e.funding2===void 0)throw new Error("tx01 has no change output to fund tx2; pass funding2");const A=x.outputs.findIndex(be=>be.label==="change (creator)");const P=e.funding2??[{outpoint:{txid:x.txid,index:A},amount:x.residualValue,spk:p,daaScore:0n,address:n}];const $=Ah({ctx:t,creatorAddress:n,prepTxid:x.txid,C:S,prepValue:i,curveValue:s,funding2:P,...c});const{T:L,initCurveState:U,supplyState:z,reserveState:R}=$;const W=$.shaped;const xe=W.built;const ge=Th(t,S,L,m,[z,R]);return{tx01:x,tx2:xe,prepAndCurveGenesis:w,tokenGenesisInit:W,registration:ge,C:S,T:L,payload:m,genesisCurveState:y,initCurveState:U,factoryGateSkipped:l}}a(Nm,"buildCreate");function Ah(e){const{ctx:t,creatorAddress:n,prepTxid:r,C:o,prepValue:i,curveValue:s,funding2:c}=e;const d=t.curve;const l=d.params;const u=Z(n);const p={tokenCovId:Ve,lotsSold:0n,feeAccrued:0n,phase:xr};const m=Zo(d,p);const y=l.curveLots*l.lot;const g=Ue(y,o);const b=Ue(l.gradReserve,o);const w=ne(t,"KCC20 supply cell {CURVE_SUPPLY, owner C}",g,l.tokenCellKas,void 0,void 0);const x=ne(t,"KCC20 reserve cell {GRAD_RESERVE, owner C}",b,l.tokenCellKas,void 0,void 0);const S={txid:r,index:0};const A=tt(S.txid,S.index,[{index:0,value:w.value,scriptVersion:0,script:w.spk},{index:1,value:x.value,scriptVersion:0,script:x.spk}]);if(A===o)throw new Error("token lineage id collides with the curve id");const P={tokenCovId:_(A),lotsSold:0n,feeAccrued:0n,phase:wt};const $={outpoint:S,amount:i,spk:u,daaScore:0n,address:n};const L={kind:"curve",outpoint:{txid:r,index:1},value:s,covenantId:o,program:m,state:p,daaScore:0n};const U={name:"tx2 token genesis + curve init",inputs:[ce($,"tx01:0 prep outpoint (authorizing input of the T group)"),Vt(L,"tx01:1 CURVE init(prefix, suffix)",Ze(t).curveInit,Bf(d,m,t.token.prefix,t.token.suffix)),...c.map((R,W)=>ce(R,W===0?"creator KAS (cell funding + fee)":`creator KAS ${W}`))],outputs:[{...w,cell:w.cell?{...w.cell,covenantId:A}:void 0},{...x,cell:x.cell?{...x.cell,covenantId:A}:void 0},pn(t,"CURVE' {T, 0, 0, active}",P,s,o,1)],residual:Ie(u,"change (creator)"),genesisGroups:[{authorizingInput:0,outputs:[0,1]}],payload:new Uint8Array(0),...pe(e)};const z=me(U,["token-rest","token-reserve","curve"],"change");if(z.built.genesis[0].covenantId!==A)throw new Error(`tx2 genesis id ${z.built.genesis[0].covenantId} != client-side T ${A}`);return{shaped:z,T:A,initCurveState:P,supplyState:g,reserveState:b}}a(Ah,"buildTokenGenesisInit");function Th(e,t,n,r,o){const i=e.curve;const s=i.params;return{expectedCurveId:t,curveTemplate:{prefix:h(i.prefix),suffix:h(i.suffix)},params:{preset:i.preset,templateHash:i.templateHash,p0:s.p0.toString(),k:s.k.toString(),lot:s.lot.toString(),curveLots:s.curveLots.toString(),gradReserve:s.gradReserve.toString(),feeBps:s.feeBps.toString(),tokenCellKas:s.tokenCellKas.toString(),openWindowLots:s.openWindowLots.toString(),openWindowMaxLots:s.openWindowMaxLots.toString(),tokenH:s.tokenH,poolH:s.poolH},...s.treasurySpk===void 0?{}:{treasurySpk:h(s.treasurySpk)},contractSet:i.version,creatorSpk:h(s.creatorSpk),declaration:h(r),expectedTokenId:n,genesisStates:o.map(ta)}}a(Th,"registrationOf");function Mu(e,t,n,r){const o=e.curve.params;if(n<=0n)throw new Error("n must be positive");if(t.state.lotsSold+n>o.curveLots)throw new Error(`only ${o.curveLots-t.state.lotsSold} lots remain`);if(t.state.lotsSold<o.openWindowLots&&n>o.openWindowMaxLots)throw new Error(`opening window: at most ${o.openWindowMaxLots} lots per buy while lotsSold < ${o.openWindowLots}`);const i=Ho(Xe(e.curve).curve,t.state.lotsSold,n);if(r!==void 0&&i.total>r)throw new Error(`quote ${i.total} exceeds maxKasIn ${r}`);return i}a(Mu,"buyPrecheck");function Bm(e){const{ctx:t,curve:n,supply:r,buyer:o,n:i,funding:s}=e;dr(`buy(${i})`,e.proofVerdict);if(e.borrowInto!==void 0){throw new Fn("borrowed receive into an existing cell: the deployed curve buy requires OpCovInputCount(T) == 1 and a user output of exactly n * lot")}ur(t,n);pt(`curve ${n.covenantId}`,n.state.tokenCovId,e.tokenId);const c=ac(t,n,r);const d=e.userCellValue??Pt;if(d<Je)throw new Error(`user cell value ${d} is below the ${Je} sompi minimum`);if(s.length===0)throw new Error("buy needs at least one funding input");const l=Mu(t,n,i,e.maxKasIn);const u=ba(t,[{cell:r,name:"supply"}]);const p=i*t.curve.params.lot;const m=Ue(r.state.amount-p,n.covenantId);const y=e.borrowThreshold===void 0?Bn(p,o.xOnlyPubkey):Bn(p,o.xOnlyPubkey,{borrowScheme:rs,borrowGuard:ul(e.borrowThreshold)});Ke(c,[r],[m,y],Hn);const g={tokenCovId:n.state.tokenCovId,lotsSold:n.state.lotsSold+i,feeAccrued:n.state.feeAccrued+l.fee,phase:wt};const b={name:`buy(${i})`,inputs:[Vt(n,`CURVE buy(${i}, user)`,Ze(t).curveBuy,Hd(t.curve,n.program,i,tr(y,t.token.templateHash))),ln(r,[m,y],"KCC20 supply cell (T leader, witness 00)",ve.tokenLeaderCovenant2Out),...s.map(S=>ce(S,"buyer KAS"))],outputs:[pn(t,"CURVE'",g,n.value+l.total,n.covenantId,0),ne(t,"rest (owner C)",m,u,c,1),ne(t,"user cell",y,d,c,1)],residual:Ie(Z(o.address),"change (buyer)"),genesisGroups:[],payload:new Uint8Array(0),...pe(e)};He(b,[n.covenantId,c]);const w=me(b,["curve","token-rest","token-user"],"change");const x=l.total+d+w.built.fee;ga(b.name,x,w.built.fee,e.maxAllIn);return{...w,quote:l,curveNext:g,restNext:m,userNext:y,allIn:x}}a(Bm,"buildBuy");function xc(e){return{treasury:e.treasury,creator:e.creator,split:e}}a(xc,"sharesOf");function Km(e){const{ctx:t,curve:n,funding:r}=e;ur(t,n);const o=Ne(t);const i=Xe(t.curve);if(!ap(i,n.state.lotsSold,n.state.feeAccrued))throw new Error(`sweep not allowed: lotsSold ${n.state.lotsSold}, feeAccrued ${n.state.feeAccrued}`);if(r.length===0)throw new Error("sweep needs a funding input for the fee");const s=Js(o,n.state.feeAccrued);const c=i.treasurySharePct;const d=Ci(s,t.curve.params,{treasury:`treasury (${c} %)`,creator:`creator (${100n-c} %)`});const l={...n.state,feeAccrued:0n};const u={name:"sweep",inputs:[Vt(n,"CURVE sweep()",Ze(t).curveSweep,Vd(t.curve,n.program)),...r.map(p=>ce(p,"KAS (fee)"))],outputs:[pn(t,"CURVE' {feeAccrued 0}",l,n.value-n.state.feeAccrued,n.covenantId,0),...d.outputs],residual:Ie(Z(e.changeAddress)),genesisGroups:[],payload:new Uint8Array(0),...pe(e)};if(su(s)+s.creator!==n.state.feeAccrued)throw new Error("sweep shares do not add up to the accrual");He(u,[n.covenantId]);return{...me(u,["curve",...d.roles],"change"),curveNext:l,...xc(s)}}a(Km,"buildSweep");function Mm(e){const{ctx:t,pool:n,funding:r}=e;if(r.length===0)throw new Error("pool sweep needs a funding input for the fee");const o=Ne(t);gn(t,n);const i=wi(bn(n));const s=Xs(o,i.payout);const c={...n.state,feeAccruedScaled:0n};const d=false;if(n.state.creatorSpk===void 0)throw new Error(`a ${o} pool state without a creator`);const l={treasurySpk:t.pool.treasurySpk,creatorSpk:n.state.creatorSpk??new Uint8Array(0)};const u=Ci(s,l,{treasury:d?"treasury (accrual + dust)":"treasury (half of accrual + dust)",creator:"creator (half of accrual + dust)"},d);const p={name:"pool sweep",inputs:[Gt(n,"POOL sweep()",Ze(t).poolSweep,Wd(t.pool,n.program)),...r.map(y=>ce(y,"KAS (fee)"))],outputs:[ft(t,"POOL' {feeAccruedScaled 0}",c,n.state.kasScaled*le,n.covenantId,0),...u.outputs],residual:Ie(Z(e.changeAddress)),genesisGroups:[],payload:new Uint8Array(0),...pe(e)};if(su(s)+s.creator!==i.payout)throw new Error("pool sweep shares do not add up to the payout");const m=["pool",...u.roles];He(p,[n.covenantId]);return{...me(p,m,"change"),poolNext:c,payout:i.payout,...xc(s)}}a(Mm,"buildPoolSweep");var Fm=3;function vc(e){const{ctx:t,curve:n,reserve:r,supplyEmpty:o,funding:i}=e;const s=t.curve.params;const c=ur(t,n);if(n.state.lotsSold!==s.curveLots)throw new Error(`graduate needs lotsSold == ${s.curveLots}, have ${n.state.lotsSold}`);for(const[R,W]of[["reserve",r],["supply",o]]){if(W.covenantId!==c)throw new Error(`${R} cell is not of lineage T`);if(!Mt(W.state,n.covenantId))throw new Error(`${R} cell is not curve-owned`)}if(r.state.amount!==s.gradReserve)throw new Error(`reserve cell holds ${r.state.amount}, expected ${s.gradReserve}`);if(o.state.amount!==0n)throw new Error(`supply cell holds ${o.state.amount} tokens, expected 0`);const d=ba(t,[{cell:r,name:"reserve"},{cell:o,name:"supply"}]);const l=e.keepSupplyDeposit===true?d-s.tokenCellKas:d;if(i.length===0)throw new Error("graduate needs a KAS input as the pool genesis authorizing input");const u=Ne(t);const p=gp(u,Xe(t.curve),n.value,n.state.feeAccrued);const m=p.escrow;const y=ki(m,s.gradReserve);const g={tokenCovId:n.state.tokenCovId,kasScaled:y.kasScaled,tokenReserve:s.gradReserve,lpShares:Qe,lpCovId:Uint8Array.from(Yo),feeAccruedScaled:0n,creatorSpk:Uint8Array.from(s.creatorSpk)};const b=ft(t,"POOL genesis",g,m,void 0,void 0);const w=tt(i[0].outpoint.txid,i[0].outpoint.index,[{index:0,value:m,scriptVersion:0,script:b.spk}]);if(w===n.covenantId||w===c)throw new Error("pool id collides with C or T");const x=Ue(s.gradReserve,w);Ke(c,[r,o],[x],Hn);const S=Xe(t.curve).treasurySharePct;const A=p.split===void 0?{outputs:[],roles:[]}:Ci(p.split,s,{treasury:`treasury (${S} %)`,creator:`creator (${100n-S} %)`});const P={name:"graduate",inputs:[Vt(n,"CURVE graduate(poolPrefix, poolSuffix)",Ze(t).curveGraduate,Kf(t.curve,n.program,t.pool)),ln(r,[x],"KCC20 reserve cell (T leader, witness 00)",ve.tokenLeaderCovenant1Out),fn(o,"KCC20 empty supply cell (T delegator, empty witness)"),...i.map((R,W)=>ce(R,W===0?"KAS (P genesis authorizing input, fee)":"KAS"))],outputs:[{...b,cell:b.cell?{...b.cell,covenantId:w}:void 0},ne(t,"reserve' (owner P)",x,l,c,1),...A.outputs],residual:Ie(Z(e.changeAddress)),genesisGroups:[{authorizingInput:Fm,outputs:[0]}],payload:new Uint8Array(0),...pe(e)};if(P.inputs.length-i.length!==Fm)throw new Error("unexpected input layout");const $=["pool","token-reserve",...A.roles];He(P,[n.covenantId,c]);const L=me(P,$,"change");if(L.built.genesis[0].covenantId!==w)throw new Error(`pool genesis id ${L.built.genesis[0].covenantId} != client-side P ${w}`);const U=2+A.outputs.length;if(L.built.outputs.length>U+1||L.built.outputs.some((R,W)=>W>0&&R.binding?.covenantId===w))throw new Error("graduate: output layout is not the pinned one");const z=p.split===void 0?void 0:xc(p.split);return{...L,P:w,poolNext:g,reserveNext:x,escrow:m,dust:y.dust,pooled:p.pooled,treasury:z?.treasury??0n,creator:z?.creator??0n}}a(vc,"buildGraduate");var po=10n*ke;var Fu=0;var Du=1;var Hu=3;var Ph=1;function Sc(e){const{ctx:t,pool:n,funding:r}=e;if(!Fe(gn(t,n)))throw new Error("bindLp exists in the v1 pool only");if(Ua(n.state))throw new Error(`pool ${n.covenantId} is already bound to L ${h(n.state.lpCovId)}`);if(n.state.lpShares!==Qe)throw new Error(`an unbound pool is at the graduation share count ${Qe}, this one says ${n.state.lpShares}`);if(r.length===0)throw new Error("bindLp needs a KAS input as the L genesis authorizing input");const o=e.inventoryValue??po;if(o<po)throw new Error(`inventory cell value ${o} is below TOKEN_CELL_KAS (${po} sompi)`);const i=n.covenantId;const s=h(n.state.tokenCovId);const c=Ue(ou,i,fi(t.pool,i));const d=ne(t,"L inventory (genesis, owner P)",c,o,void 0,void 0);const l=r[0];const u=tt(l.outpoint.txid,l.outpoint.index,[{index:Du,value:o,scriptVersion:0,script:d.spk}]);if(u===h(Yo)||u===i||u===s)throw new Error("L collides with 0^32, P or T");const p={...n.state,lpCovId:_(u)};const m=ft(t,"POOL' {lpCovId L}",p,n.value,i,Fu);const y={name:"bindLp",inputs:[Gt(n,"POOL bindLp(tokenPrefix, tokenSuffix)",pa(t).poolBindLp,zd(t.pool,n.program,t.token)),...r.map((b,w)=>ce(b,w===0?"KAS (L genesis authorizing input, inventory funding, fee)":"KAS"))],outputs:[m,{...d,cell:d.cell?{...d.cell,covenantId:u}:void 0}],residual:Ie(Z(e.changeAddress)),genesisGroups:[{authorizingInput:Ph,outputs:[Du]}],payload:new Uint8Array(0),...pe(e)};He(y,[i]);const g=me(y,["pool","token-reserve"],"change");if(g.built.genesis[0].covenantId!==u)throw new Error(`L genesis id ${g.built.genesis[0].covenantId} != client-side L ${u}`);if(g.built.outputs.length>Hu)throw new Error(`bindLp has ${g.built.outputs.length} outputs, the covenant allows ${Hu}`);if(g.built.outputs[Fu].value!==n.value)throw new Error("pool value must be unchanged by the bind");return{...g,L:u,poolNext:p,inventoryNext:c,budgets:g.built.budgets,fee:g.built.fee}}a(Sc,"buildBindLp");function Dm(e){const{ctx:t,changeAddress:n}=e;const r=vc(e);const o=r.built;const i={kind:"pool",outpoint:{txid:o.txid,index:0},value:o.outputs[0].value,covenantId:r.P,program:li(t.pool,r.poolNext),state:r.poolNext,daaScore:0n};if(!Fe(Ne(t)))return{graduate:r,pool:i};const s=Z(n);const c=o.outputs.length-1;if(o.residualValue<=0n||h(o.outputs[c].spk)!==h(s)){throw new Error("graduate pays no change to fund the bind: fund it with at least the inventory value plus both fees")}const d=jp({txid:o.txid,index:c},o.outputs[c].value,s,n);const l=Sc({ctx:t,pool:i,funding:[d],changeAddress:n,...e.inventoryValue===void 0?{}:{inventoryValue:e.inventoryValue},...e.feeMargin===void 0?{}:{feeMargin:e.feeMargin},...e.feerate===void 0?{}:{feerate:e.feerate}});return{graduate:r,bind:l,pool:i}}a(Dm,"buildGraduateAndBind");function ju(e,t,n,r){if(n<=0n||n>t.state.lotsSold)throw new Error(`cannot sell ${n} lots with ${t.state.lotsSold} sold`);const o=za(Xe(e.curve).curve,t.state.lotsSold,n);if(r!==void 0&&o.total<r)throw new Error(`quote ${o.total} is below minKasOut ${r}`);return o}a(ju,"sellPrecheck");function Hm(e){const{ctx:t,curve:n,supply:r,userCell:o,seller:i,n:s}=e;const c=t.curve.params;dr(`sell(${s})`,e.proofVerdict,e.allowUnboundExit===true);ur(t,n);pt(`curve ${n.covenantId}`,n.state.tokenCovId,e.tokenId);const d=ac(t,n,r);lr(o,d,n.covenantId);if(e.expectedTokens!==void 0&&s*c.lot!==e.expectedTokens)throw new Dn(`sell(${s})`,e.expectedTokens,s*c.lot);const l=ju(t,n,s,e.minKasOut);if(o.state.amount!==s*c.lot)throw new Error(`user cell holds ${o.state.amount} tokens, sell(${s}) needs exactly ${s*c.lot}; consolidate or split first`);const u=ba(t,[{cell:r,name:"supply"}]);const p=Ue(r.state.amount+s*c.lot,n.covenantId);Ke(d,[o,r],[p],qt);const m={tokenCovId:n.state.tokenCovId,lotsSold:n.state.lotsSold-s,feeAccrued:n.state.feeAccrued+l.fee,phase:wt};const y={name:`sell(${s})`,inputs:[Ot(o,[p],"KCC20 user cell (T leader, 00 || sig)",Ct(2,1)),fn(r,"KCC20 supply cell (T delegator, empty witness)"),Vt(n,`CURVE sell(${s})`,Ze(t).curveSell,jd(t.curve,n.program,s)),...(e.funding??[]).map(w=>ce(w,"seller KAS (top-up)"))],outputs:[ne(t,"merged (owner C)",p,u,d,0),pn(t,"CURVE'",m,n.value-l.cost+l.fee,n.covenantId,2)],residual:Qr(Z(i.address),"payout (seller)",mn),genesisGroups:[],payload:new Uint8Array(0),...pe(e)};He(y,[n.covenantId,d]);const g=me(y,["token-rest","curve"],"payout");const b=g.built.residualValue-co(e.funding);ya(y.name,b,g.built.fee,e.minNetOut);return{...g,quote:l,curveNext:m,mergedNext:p,payout:g.built.residualValue,netOut:b}}a(Hm,"buildSell");var Ch=100000000n;var jm=ke/20n;var Eh=ke/10n;function Ea(e=We,t){try{return kf(e,ri().list(Us(e,t)))}catch(n){if(t!==void 0)return[];throw n}}a(Ea,"committedPresets");function Vm(e){const{sources:t}=e;const n=e.networkId;const r=new Map;for(const f of e.contexts??[]){Aa(f);r.set(f.curve.templateHash,f)}let o=false;const i=e.presets;const s=a((f,k,v)=>{const C=ir(f,n,k,v);Aa(C);return C},"contextOf");const c=a((f,k,v)=>{const C=ir(f,n,k,v);return Mi(C)?C:void 0},"baseOf");const d=hd(n??an);const l=a((f,k)=>f.pool.revision===k,"isOfRevision");const u=[];const p=a(()=>{if(o)return;for(const f of Go){const k=f===We&&i!==void 0?i:Ea(f);for(const v of k){const C=c(v,f);if(C===void 0)continue;u.push(C);if(!r.has(C.curve.templateHash))r.set(C.curve.templateHash,C)}}for(const f of ti(n??an)){for(const k of Ea("v1",f)){const v=c(k,"v1",f);if(v===void 0)continue;u.push(v);if(!r.has(v.curve.templateHash))r.set(v.curve.templateHash,v)}}o=true},"loadPresets");const m=a((f,k=We,v=d)=>{p();if(v!==void 0&&v!==d&&!ti(n??an).includes(v)){throw new Error(`revision ${v} is not a ${n??an} build`)}for(const O of r.values())if(O.curve.preset===f&&Ne(O)===k&&l(O,v))return O;const C=s(f,k,v);r.set(C.curve.templateHash,C);return C},"contextFor");const y=a(f=>{p();for(const k of r.values())if(Ne(k)===f&&l(k,d))return k;return void 0},"anyContextOrUndefined");const g=a((f=We)=>{const k=y(f);if(k===void 0)throw new Error(`no ${f} curve context available`);return k},"anyContext");const b=new Map;const w=a(f=>{let k=b.get(f);if(!k){k=new di(f.curve,f.pool,f.token);b.set(f,k)}return k},"decoderOf");const x=a(f=>{p();for(const v of r.values()){try{if(w(v).decode(f).kind==="curve")return v}catch{}}const k=Om(f,u);if(k!==null){r.set(k.curve.templateHash,k);return k}throw new to},"contextOfCurveProgram");const S=a(f=>{for(const k of Go){const v=y(k);if(v===void 0)continue;const{stateOffset:C,stateLength:O,templateHash:T}=v.pool;if(f.length>=C+O&&Rt(f,C,O)===T)return v}for(const k of r.values()){if(l(k,d))continue;const{stateOffset:v,stateLength:C,templateHash:O}=k.pool;if(f.length>=v+C&&Rt(f,v,C)===O)return k}throw new Error("pool program matches no known pool template")},"contextOfPoolProgram");const A=a(async()=>{const f=ii(await t.feerate(),"GET /fees");return e.feeMargin===void 0?{feerate:f}:{feerate:f,feeMargin:e.feeMargin}},"feeOptions");const P=a((f={})=>({...e.fundingOptions,...f}),"fundingOpts");function $(f,k){const v=`cell ${k.outpoint.txid}:${k.outpoint.index}`;if(!/^[0-9a-f]{64}$/.test(k.covenantId))throw new Error(`${v}: malformed covenant id`);if(k.amount<=0n)throw new Error(`${v}: non-positive value`);const C=w(f).decode(k.redeemScript);if(C.templateHash!==k.templateHash)throw new Error(`${v}: source template hash ${k.templateHash} != recomputed ${C.templateHash}`);const O={outpoint:{txid:k.outpoint.txid,index:k.outpoint.index},value:k.amount,covenantId:k.covenantId,program:k.redeemScript,daaScore:0n};const T=a((I,G)=>{if(JSON.stringify(I)!==JSON.stringify(G))throw new Error(`${v}: source state differs from the state decoded from its program`)},"differs");switch(C.kind){case"token":T(ta(k.state),ta(C.state));return{kind:"token",...O,state:C.state};case"curve":T(Hs(k.state),Hs(C.state));return{kind:"curve",...O,state:C.state};case"pool":T(js(k.state),js(C.state));return{kind:"pool",...O,state:C.state}}}a($,"verifiedCell");const L=a((f,k)=>{const v=$(f,k);if(v.kind!=="token")throw new Error(`cell ${k.outpoint.txid}:${k.outpoint.index}: program is a ${v.kind} cell, expected a token cell`);return v},"tokenCellOf");const U=a((f,k)=>{const v=$(f,k);if(v.kind!=="curve")throw new Error(`cell ${k.outpoint.txid}:${k.outpoint.index}: program is a ${v.kind} cell, expected a curve cell`);return v},"curveCellOf");const z=a((f,k)=>{const v=$(f,k);if(v.kind!=="pool")throw new Error(`cell ${k.outpoint.txid}:${k.outpoint.index}: program is a ${v.kind} cell, expected a pool cell`);return v},"poolCellOf");const R=a((f,k)=>{if(k!==void 0&&k.toLowerCase()!==f.toLowerCase())throw new ro(f,k)},"requireCurveOfProof");const W=a(async(f,k)=>{const v=await t.curveHead(f);if(v.covenantId!==f)throw new Error(`curve head of ${v.covenantId}, asked for ${f}`);const C=x(v.redeemScript);const O=U(C,v);pt(`curve ${f}`,O.state.tokenCovId,k);return{ctx:C,curve:O}},"curveOf");async function xe(f,k,v=false){const C=h(k.state.tokenCovId);const O=k.covenantId;const[T,I]=await Promise.all([t.tokenCells(C,O).catch(()=>[]),t.covenantCells(O).then(oe=>[oe.supply,oe.reserve],()=>[])]);const G=[];for(const oe of[...I,...T]){try{G.push(L(f,oe))}catch{}}const q=f.curve.params;const J={supply:(q.curveLots-k.state.lotsSold)*q.lot,reserve:q.gradReserve};return Mp(G,C,O,J,v)}a(xe,"curveCellsOf");const ge=a(async(f,k,v)=>{if(v.length!==32)throw new Error("owner must be a 32-byte x-only public key");const C=h(v);const O=(await t.tokenCells(k,C)).map(T=>L(f,T));for(const T of O){if(T.covenantId!==k)throw new Error(`token cell ${T.outpoint.txid}:${T.outpoint.index} is not of lineage ${k}`);if(h(T.state.owner.identifier)!==C)throw new Error(`token cell ${T.outpoint.txid}:${T.outpoint.index} is not owned by ${C}`)}return Im(O,k)},"userCellsOf");const be=a(async(f,k,v)=>{if(v!==void 0&&v.toLowerCase()!==f.toLowerCase())throw new oo(f,v);const C=await t.poolCell(f);if(C.covenantId!==f)throw new Error(`pool cell of ${C.covenantId}, asked for ${f}`);const O=S(C.redeemScript);const T=z(O,C);bn(T);const I=pt(`pool ${f}`,T.state.tokenCovId,k);const G=Fp((await t.tokenCells(I,f)).map(q=>L(O,q)),I,f,T.state.tokenReserve);return{ctx:O,pool:T,poolToken:G,T:I}},"poolOf");const he=a(async(f,k,v,C)=>{const{ctx:O,pool:T,poolToken:I,T:G}=await be(f,v,C);const q=Li(T);if(k!==void 0)am(k,T.state);const J=vi({...bn(T),lpShares:T.state.lpShares},_e(O));const oe=(await t.tokenCells(q,f)).map(re=>L(O,re)).find(re=>oc(re,q,f)&&re.state.amount===J);if(oe===void 0)throw new Error(`no pool-owned L inventory cell holds ${J} (borrowing disabled, guard 0)`);return{ctx:O,pool:T,reserve:I,inventory:oe,T:G,L:q}},"boundPoolOf");const $e=a(async(f,k,v={})=>ar(await t.funding(f),k,P(v)),"fundingFor");const It=a((f,k)=>{const v=hu(f.map(I=>({id:B(I.outpoint),amount:I.state.amount})),k);const C=new Map(f.map(I=>[B(I.outpoint),I]));const O=v.steps[0];if(v.steps.length===1&&O?.kind==="split")return new io(C.get(O.input).outpoint,O.carve);const T=v.steps.flatMap(I=>I.kind==="merge"?I.inputs:[]).flatMap(I=>C.has(I)?[C.get(I).outpoint]:[]);return new ao(T,v.steps.length)},"needsOf");const Wn={async buildCreate(f){const k=m(f.preset,f.contractSet??We,f.revision??d);const v=await A();const C=f.prepValue??Bu;const O=f.curveValue??Ku;const T=await $e(f.creator,C+O+2n*k.curve.params.tokenCellKas,{feeAllowance:Eh});const I=Nm({ctx:k,creatorAddress:f.creator,metadata:f.metadata,funding:T,prepValue:C,curveValue:O,...v,...f.factoryGate===void 0?{}:{factoryGate:f.factoryGate},...f.kasPrice===void 0?{}:{kasPrice:f.kasPrice}});return{prepAndCurveGenesis:Se(I.prepAndCurveGenesis),tokenGenesisInit:Se(I.tokenGenesisInit),registration:I.registration}},async buildBuy(f){dr(`buy(${f.lots})`,f.proofVerdict);R(f.covenantId,f.expectedCurveId);if(f.borrowInto!==void 0){throw new Fn("borrowed receive into an existing cell: the deployed curve buy requires OpCovInputCount(T) == 1 and a user output of exactly n * lot")}const{ctx:k,curve:v}=await W(f.covenantId,f.tokenId);const{supply:C}=await xe(k,v);const O=Mu(k,v,f.lots,f.maxKasIn);const T=f.userCellValue??Pt;const I=await A();const G=await $e(f.buyer,O.total+T);return Se(Bm({ctx:k,curve:v,supply:C,buyer:{xOnlyPubkey:f.buyerXOnlyPubkey,address:f.buyer},n:f.lots,proofVerdict:f.proofVerdict,funding:G,userCellValue:T,...I,...f.maxKasIn===void 0?{}:{maxKasIn:f.maxKasIn},...f.tokenId===void 0?{}:{tokenId:f.tokenId},...f.maxAllIn===void 0?{}:{maxAllIn:f.maxAllIn}}))},async buildSell(f){const k=f.allowUnboundExit===true;dr(`sell(${f.lots})`,f.proofVerdict,k);R(f.covenantId,f.expectedCurveId);const{ctx:v,curve:C}=await W(f.covenantId,f.tokenId);const O=f.lots*v.curve.params.lot;if(f.expectedTokens!==void 0&&O!==f.expectedTokens)throw new Dn(`sell(${f.lots})`,f.expectedTokens,O);const{supply:T}=await xe(v,C);const I=ju(v,C,f.lots,f.minKasOut);const G=h(C.state.tokenCovId);const q=await ge(v,G,f.sellerXOnlyPubkey);const J=q.find($a=>$a.state.amount===O);if(!J)throw It(q,O);const oe=await A();const re=J.value+I.total<mn+jm;const Te=re?await $e(f.seller,0n):[];return Se(Hm({ctx:v,curve:C,supply:T,userCell:J,seller:{address:f.seller},n:f.lots,proofVerdict:f.proofVerdict,allowUnboundExit:k,funding:Te,...oe,...f.expectedTokens===void 0?{}:{expectedTokens:f.expectedTokens},...f.minKasOut===void 0?{}:{minKasOut:f.minKasOut},...f.tokenId===void 0?{}:{tokenId:f.tokenId},...f.minNetOut===void 0?{}:{minNetOut:f.minNetOut}}))},async buildSwap(f){if(f.side==="kas->tok")dr(`swapKasForTokens(${f.amountIn})`,f.proofVerdict);const{ctx:k,pool:v,poolToken:C,T:O}=await be(f.poolId,f.tokenId,f.expectedPoolId);const T=await A();const I=f.tokenId===void 0?{}:{tokenId:f.tokenId};if(f.side==="kas->tok"){const zn=Pt;const ag=await $e(f.trader,f.amountIn*le+zn+(f.deliverToScript?.scriptFunding??0n));return Se(em({ctx:k,pool:v,poolToken:C,buyer:{xOnlyPubkey:f.traderXOnlyPubkey,address:f.trader},kasInScaled:f.amountIn,funding:ag,userCellValue:zn,...T,...I,...f.deliverToScript===void 0?{}:{deliverToScript:f.deliverToScript},...f.minOut===void 0?{}:{minTokensOut:f.minOut},...f.maxAllIn===void 0?{}:{maxAllIn:f.maxAllIn}}))}const G=await ge(k,O,f.traderXOnlyPubkey);const q=f.extraCell===void 0?void 0:G.find(zn=>zn.outpoint.txid===f.extraCell.txid&&zn.outpoint.index===f.extraCell.index);if(f.extraCell!==void 0&&q===void 0)throw new Error(`cell ${f.extraCell.txid}:${f.extraCell.index} is not a spendable cell of the trader`);const J=G.find(zn=>zn.state.amount===f.amountIn&&zn!==q);if(!J)throw It(G,f.amountIn);const oe=f.amountIn+(q?.state.amount??0n);const re=qr(bn(v),oe,_e(k),fa(k));const Te=J.value+(q?.value??0n)+re.kasOutScaled*le<mn+jm;const $a=Te?await $e(f.trader,0n):[];return Se(ku({ctx:k,pool:v,poolToken:C,userCell:J,seller:{address:f.trader},funding:$a,...T,...I,...q===void 0?{}:{extraUserCells:[q]},...f.minOut===void 0?{}:{minOutScaled:f.minOut},...f.minNetOut===void 0?{}:{minNetOut:f.minNetOut}}))},async buildScriptSell(f){const{ctx:k,pool:v,poolToken:C,T:O}=await be(f.poolId,f.tokenId,f.expectedPoolId);const T=h(ea(f.redeem));const I=(await t.tokenCells(O,`script:${T}`)).map(re=>L(k,re)).filter(re=>re.covenantId===O&&re.state.owner.schemeByte===3&&h(re.state.owner.identifier)===T);if(I.length===0)throw new Error(`no cell of ${O} owned by script ${T}`);const G=I.reduce((re,Te)=>Te.state.amount>re.state.amount?Te:re);const q=Vs(se(f.redeem),n??an);if(q!==f.scriptAddress)throw new yn(`the script address ${f.scriptAddress} is not P2SH(redeem) (${q})`);const J=(await t.funding(f.scriptAddress))[0];if(J===void 0)throw new Error(`no UTXO at the script address ${f.scriptAddress}`);const oe=await A();return Se(ku({ctx:k,pool:v,poolToken:C,userCell:G,seller:{address:f.payout},funding:[],...oe,tokenId:O,scriptAuthority:{redeem:f.redeem,utxo:J,signerXOnly:h(f.signerXOnly),...f.allowAnyScript===void 0?{}:{allowAnyScript:f.allowAnyScript}}}))},async buildConsolidate(f){const k=g();const v=await ge(k,f.covenantId,f.ownerXOnlyPubkey);const C=await A();const O=await t.funding(f.owner);const T=Yp({ctx:k,cells:v,owner:{xOnlyPubkey:f.ownerXOnlyPubkey,address:f.owner},funding:O,fundingOptions:P(),...C,...f.target===void 0?{}:{target:f.target}});return T.transactions.map(Se)},async buildSplit(f){const k=g();const v=await ge(k,f.covenantId,f.ownerXOnlyPubkey);const C=v.find(I=>I.outpoint.txid===f.cell.txid&&I.outpoint.index===f.cell.index);if(!C)throw new Error(`cell ${f.cell.txid}:${f.cell.index} is not a spendable cell of this owner`);const O=await A();const T=await $e(f.owner,Ei(C.value).topUp);return Se(sc({ctx:k,cell:C,carve:f.carve,changeAddress:f.owner,funding:T,...O}))},async buildGraduate(f){const{ctx:k,curve:v}=await W(f.covenantId);const{supply:C,reserve:O}=await xe(k,v,true);const T=await A();const I=await $e(f.funder,0n);const G=f.keepSupplyDeposit===true;return Se(vc({ctx:k,curve:v,reserve:O,supplyEmpty:C,funding:I,changeAddress:f.funder,keepSupplyDeposit:G,...T}))},async buildGraduateAndBind(f){const{ctx:k,curve:v}=await W(f.covenantId);const{supply:C,reserve:O}=await xe(k,v,true);const T=await A();const I=f.keepSupplyDeposit===true;const G=Fe(Ne(k))?po+Ch:0n;const q=I?k.curve.params.tokenCellKas:0n;const J=G>q?G-q:0n;const oe=await $e(f.funder,J);const re=Dm({ctx:k,curve:v,reserve:O,supplyEmpty:C,funding:oe,changeAddress:f.funder,keepSupplyDeposit:I,...T});return{graduate:Se(re.graduate),...re.bind===void 0?{}:{bind:Se(re.bind)}}},async buildBindLp(f){const{ctx:k,pool:v}=await be(f.poolId);const C=await A();const O=await $e(f.funder,po);return Se(Sc({ctx:k,pool:v,funding:O,changeAddress:f.funder,...C}))},async buildAddLiquidity(f){if(f.lpSafe!==true)throw new sr(f.lpSafeReason);const{ctx:k,pool:v,reserve:C,inventory:O,T}=await he(f.poolId,f.quoted,f.tokenId,f.expectedPoolId);const I=Ui(v,f.shares,_e(k));const G=await ge(k,T,f.depositorXOnlyPubkey);const q=G.find(Te=>Te.state.amount===I.dTok);if(!q)throw It(G,I.dTok);const J=await A();const oe=f.lpCellValue??$i;const re=await $e(f.depositor,I.dKasScaled*le+(oe>q.value?oe-q.value:0n));return Se(uc({ctx:k,pool:v,inventory:O,reserve:C,userCell:q,funding:re,changeAddress:f.depositor,shares:f.shares,lpSafe:true,lpCellValue:oe,...J,...f.tokenId===void 0?{}:{tokenId:f.tokenId},...f.maxAllIn===void 0?{}:{maxAllIn:f.maxAllIn}}))},async buildRemoveLiquidity(f){const{ctx:k,pool:v,reserve:C,inventory:O,L:T}=await he(f.poolId,f.quoted,f.tokenId,f.expectedPoolId);const I=Ni(v,f.shares,f.minKasOut,f.minTokOut,_e(k));const G=await ge(k,T,f.withdrawerXOnlyPubkey);const q=G.find(Te=>Te.state.amount===f.shares);if(!q)throw It(G,f.shares);const J=await A();const oe=f.tokCellValue??Bi(q.value);const re={ctx:k,pool:v,inventory:O,reserve:C,userLpCell:q,changeAddress:f.withdrawer,shares:f.shares,tokCellValue:oe,...J,...f.minKasOut===void 0?{}:{minKasOut:f.minKasOut},...f.minTokOut===void 0?{}:{minTokOut:f.minTokOut},...f.tokenId===void 0?{}:{tokenId:f.tokenId},...f.minNetOut===void 0?{}:{minNetOut:f.minNetOut}};if(!lc(q.value,oe,I.dKasScaled)){try{return Se(ka({...re,funding:[]}))}catch(Te){if(!(Te instanceof Dt))throw Te}}return Se(ka({...re,funding:await $e(f.withdrawer,0n)}))},async planDeposit(f){if(f.lpSafe!==true)throw new sr(f.lpSafeReason);const{ctx:k,pool:v,reserve:C,inventory:O,T}=await he(f.poolId,f.quoted,f.tokenId,f.expectedPoolId);const I=await ge(k,T,f.depositorXOnlyPubkey);const G=await A();const q=await t.funding(f.depositor);const J=Rm({ctx:k,pool:v,inventory:O,reserve:C,cells:I,owner:{xOnlyPubkey:f.depositorXOnlyPubkey,address:f.depositor},funding:q,fundingOptions:P(),shares:f.shares,lpSafe:true,...f.lpCellValue===void 0?{}:{lpCellValue:f.lpCellValue},...G,...f.tokenId===void 0?{}:{tokenId:f.tokenId},...f.maxAllIn===void 0?{}:{maxAllIn:f.maxAllIn}});return{transactions:J.transactions.map(Se),totalFeeSompi:J.totalFee,shares:f.shares,dKasScaled:J.final.dKasScaled,dTok:J.final.dTok,summary:J.final.summary}},async planWithdrawal(f){const{ctx:k,pool:v,reserve:C,inventory:O,L:T}=await he(f.poolId,f.quoted,f.tokenId,f.expectedPoolId);const I=await ge(k,T,f.withdrawerXOnlyPubkey);const G=await A();const q=await t.funding(f.withdrawer);const J=Um({ctx:k,pool:v,inventory:O,reserve:C,lpCells:I,owner:{xOnlyPubkey:f.withdrawerXOnlyPubkey,address:f.withdrawer},funding:q,fundingOptions:P(),shares:f.shares,...G,...f.minKasOut===void 0?{}:{minKasOut:f.minKasOut},...f.minTokOut===void 0?{}:{minTokOut:f.minTokOut},...f.tokCellValue===void 0?{}:{tokCellValue:f.tokCellValue},...f.tokenId===void 0?{}:{tokenId:f.tokenId},...f.minNetOut===void 0?{}:{minNetOut:f.minNetOut}});return{transactions:J.transactions.map(Se),totalFeeSompi:J.totalFee,shares:f.shares,dKasScaled:J.final.dKasScaled,dTok:J.final.dTok,summary:J.final.summary}},async buildSweep(f){const k=await A();if(f.venue==="curve"){const{ctx:T,curve:I}=await W(f.covenantId);const G=await $e(f.funder,0n);return Se(Km({ctx:T,curve:I,funding:G,changeAddress:f.funder,...k}))}const{ctx:v,pool:C}=await be(f.covenantId);const O=await $e(f.funder,0n);return Se(Mm({ctx:v,pool:C,funding:O,changeAddress:f.funder,...k}))},async curveParams(f){const{ctx:k}=await W(f.covenantId,f.tokenId);return k.curve.params},async buildExactCell(f){const k=g();const v=await ge(k,f.covenantId,f.ownerXOnlyPubkey);const C=await A();const O=await t.funding(f.owner);const T=_i({ctx:k,cells:v,owner:{xOnlyPubkey:f.ownerXOnlyPubkey,address:f.owner},funding:O,fundingOptions:P(),target:f.amount,...f.mustSpend===void 0?{}:{mustSpend:f.mustSpend},...C});return{transactions:T.transactions.map(Se),totalFeeSompi:T.totalFee,cell:T.cell.outpoint,plan:T.plan}},finalize:rc,estimate:$p};return Wn}a(Vm,"createTxBuilder");var Oh=Object.freeze(["mainnet","testnet-10"]);var mo=Object.freeze({mainnet:"v1-kasseal-mainnet-2","testnet-10":"v1-kasseal-mainnet-2-tn10"});var _h=Object.freeze([mo.mainnet,mo["testnet-10"]]);var Ih=Object.freeze({mainnet:"https://app.kasseal.com/v1","testnet-10":"https://testnet.kasseal.com/v1"});var go=class extends Error{static{a(this,"UnsupportedNetwork")}networkId;constructor(t){super(`network ${JSON.stringify(t)} is not supported: use 'mainnet' or 'testnet-10'`);this.name="UnsupportedNetwork";this.networkId=t}};var yo=class extends Error{static{a(this,"UnsupportedBuild")}build;networkId;constructor(t,n){super(`contract build ${JSON.stringify(t)} is not the ${n} build (${mo[n]??"none"})`);this.name="UnsupportedBuild";this.build=t;this.networkId=n}};function Gm(e){return e==="mainnet"||e==="testnet-10"}a(Gm,"isKassealNetwork");function zt(e){if(!Gm(e))throw new go(String(e))}a(zt,"assertNetwork");function qm(e){zt(e);return mo[e]}a(qm,"buildOf");function $h(e,t,n="v1",r=qm(t)){zt(t);if(r!==mo[t])throw new yo(r,t);return ir(e,t,n,r)}a($h,"createContext");var Lh=Object.freeze(["buildBuy","buildSell","buildSwap","buildScriptSell","buildConsolidate","buildSplit","buildSweep","buildBindLp","buildAddLiquidity","buildRemoveLiquidity","planDeposit","planWithdrawal","buildExactCell","curveParams","finalize","estimate"]);function Rh(e){zt(e.networkId);for(const i of e.contexts??[]){if(i.networkId!==e.networkId)throw new go(i.networkId);if(i.pool.revision!==mo[e.networkId])throw new yo(String(i.pool.revision),e.networkId)}const{presets:t,...n}=e;const r=Vm({...n,networkId:e.networkId});const o={};for(const i of Lh){const s=r[i];if(typeof s!=="function")throw new Error(`builder method ${i} is missing`);o[i]=s.bind(r)}return Object.freeze(o)}a(Rh,"createTxBuilder");var _a=class extends Error{static{a(this,"ApiError")}path;status;problem;constructor(t,n,r){super(`${t}: HTTP ${n}`);this.name="ApiError";this.path=t;this.status=n;this.problem=r}};var gr=class extends Error{static{a(this,"HeadMoving")}constructor(){super("the curve or pool head is changing hands; read again");this.name="HeadMoving"}};var Uh=a(e=>new Promise(t=>setTimeout(t,e)),"sleep");var Wm=a(e=>`${e.txid}:${e.index}`,"keyOf");var Oa=a((e,t,n=e.confirmed)=>({outpoint:{txid:e.outpoint.txid,index:e.outpoint.index},amount:BigInt(e.amount),covenantId:e.covenantId,redeemScript:_(e.redeemScript),templateHash:e.templateHash,state:t,confirmed:n}),"cellOf");function Nh(e){zt(e.network);if(typeof e.baseUrl!=="string"||!/^https?:\/\/[^/]/.test(e.baseUrl))throw new TypeError("baseUrl must be an http(s) URL");const t=e.baseUrl.replace(/\/+$/,"");const n=mt(e.network);const r=e.attempts??5;const o=e.fetch??((...m)=>fetch(...m));const i=e.useTip??true;const s=e.ownKey.toLowerCase();let c;let d;let l=[];async function u(m){for(let y=0;;y++){const g=await o(`${t}${m}`,{headers:{accept:"application/json"}});if(g.ok)return await g.json();const b=await g.json().catch(()=>null);if((g.status===429||g.status===503)&&y+1<r){const w=typeof b?.retryAfterMs==="number"&&b.retryAfterMs>=0?Math.min(b.retryAfterMs,3e4):1e3;await Uh(w+Math.floor(Math.random()*250));continue}throw new _a(m,g.status,b)}}a(u,"get");const p=a(m=>{if(m.startsWith("script:"))return m;return m.toLowerCase()===s?`pk:${m}`:`covenant:${m}`},"ownerParam");return{lastFunding:a(()=>l,"lastFunding"),async funding(m){if(Wt(m).prefix!==n)throw new Ae(`${m} is not a ${e.network} address`);const y=await u(`/address/${encodeURIComponent(m)}/utxos`);l=y.utxos.filter(g=>!g.isCoinbase&&g.scriptPublicKey.version===0).map(g=>({outpoint:{txid:g.outpoint.txid,index:g.outpoint.index},amount:BigInt(g.amount),spk:_(g.scriptPublicKey.script),daaScore:BigInt(g.blockDaaScore),address:m}));return l},async tokenCells(m,y){const g=p(y);const b=(await u(`/tokens/${m}/cells?owner=${encodeURIComponent(g)}`)).cells.map(w=>Oa(w,na(w.state)));if(c!==void 0&&g===`covenant:${c.poolId}`&&c.cell.covenantId===m){const w=Oa(c.cell,na(c.cell.state),false);return[w,...b.filter(x=>Wm(x.outpoint)!==Wm(w.outpoint))]}return b},async covenantCells(){const m=await u(`/tokens/${e.tokenId}/covenant-cells`);const y=d??m.supply;if(y===void 0||m.reserve===void 0)throw new gr;return{supply:Oa(y,na(y.state)),reserve:Oa(m.reserve,na(m.reserve.state))}},async curveHead(){const m=await u(`/tokens/${e.tokenId}/curve-head`);if(m.headSpent===true)throw new gr;const y=i?m.tip:void 0;d=y?.supply;const g=y?.curve??m;return Oa(g,Rd(g.state),y===void 0?m.confirmed:false)},async poolCell(m){const y=await u(`/pools/${m}/cell`);if(y.headSpent===true)throw new gr;const g=i?y.tip:void 0;c=g===void 0?void 0:{poolId:m,cell:g.reserve};const b=g?.pool??y;return Oa(b,Ud(b.state),g===void 0?y.confirmed:false)},async feerate(){return BigInt((await u("/fees")).feerateSompiPerGram)}}}a(Nh,"createApiSources");var zm={"format":1,"builds":{"v1-kasseal-mainnet-2":{"network":"mainnet","poolTemplateHash":"92acd761504e4fa05acf70675ef1aea0c66efa2126ec5c726e4779b8aef054e0","treasurySpk":"000020d6f09e0da20f689e3b11900593fecdecdc88ed81f013031c749bde92d928e574ac","compiler":"silverc v1.0.0 3ed973335b59269293564805cc2c58a14595ec03","presets":{"standard":"63f032f087bbc2b66e0f2561b1f40a6319c80f9792743c7e77e5761d41f51f5f","standard-k103":"99f4b03048adae1281c959cc3e08799c4a8926be67fe0e783d3eb9f0f22b04d5","standard-k113":"78a2aa6f280ce9b6329d8a8c172f0dbff83fb32e72f4ff3b427ec759cfa1bb9a","standard-k124":"eb0b9ccb9a7f365425548ace55c3eecd85dc2ead732134e73f72c84c379cc89e","standard-k136":"9fe3087ca102d0944abde60b8f43d929c94963b91c2eed4060dbc3c950c2bd7a","standard-k164":"b561b9576250c2aad24c513845a7626804de24d3bcecaf811509374daba4d3d1","standard-k180":"0f7202636a8a2e2dd4b220b40efbd68d3382ec45fa541c6d63e5f3a2e98f424d","standard-k198":"450dcf4f6595835685246ddf9d4a21e3c98fc20e31e7d3a8bbd2901d71e52c3c","standard-k218":"3254b43422f6553964709a95f4b0b7299e26ccf0d7713ce3b2e0fd270532e235","standard-k240":"79fad128a4cd1199c1a0cfa6e9555c6128329fd664f3e7eb04335be1bfbef017","standard-k264":"cf74df28cce3c19922b59a278289f1430d9ef3393686d7bfeb54cb69e84a2f47","standard-k291":"3b2c887ce4b8bc53f33ee082ad0d6fb3443c0c7b2bb7d6fed3398d63baf1ceb0","standard-k320":"6493c27471d12663104230f69276305e1a5c16285a94941b8b4772457ab7e517","standard-k352":"e2d1796b8274e7a7f59813ec4a57efe5a8b54efd82ff8bfa4578f78f72d2c773","standard-k388":"6b0dc5c9d6a58be64f426cea85f4beb86bfe6876b744762ed7e1683277baf21c","standard-k427":"0d76faae8b462a9388abae8540264127c3c31cb7d31f75259e93238fe6e316bf","standard-k470":"4fc34a29b17a7ee83777345c262213522938faff558d202847096220e2f6ab10","standard-k518":"630c865af745bb6d8e2fa28ed098e7221ea09b1b92653d98eeba7c85e7a52fd4","standard-k571":"72356a7e111e5e0c5f8f61aa491ee635900deb4237e63d9f27c7db3d0e7ed389","standard-k629":"25335ce66ac3e6f2cc54b4dfe746810e0bb9c88157a4385d2334b37f4875b275","standard-lot10k-k1097":"f57d8808578b4c32aa9cbf0c58b29c0a06014a1a7bd7ef763098a14307382b46","standard-lot10k-k1209":"416f1fc7559f2b2d50ece009af191fd483990815e03e9198b6152e5ae8210657","standard-lot10k-k122":"81776a87bd0d070c6d61b8efc56ff890e118c0a92fb069eee83a8eaa26f65096","standard-lot10k-k1332":"9b9b09bf5999e86a68490728be7b8543be575043be78d2d3055011e0589a6038","standard-lot10k-k134":"1c8c397f54b586ed1d0c7c8adfad74b9aae0ccbb54ad38630723a16598e07802","standard-lot10k-k1468":"f042dd4d19ec70c94ec34d440fc4f80c0870b57cea948e73d2e4e605cf56881d","standard-lot10k-k147":"5d55d50bf35fae5def76500490a41482f392de204ecc29081297d05b76279aab","standard-lot10k-k161":"3532d348f4dec1da35a955c7c6be792a482105f0dd4135be0143cad9a881866e","standard-lot10k-k1618":"8a78f3adb37965041347a3dd637a7fc772ec224c9e9b9b30a86683f4068497af","standard-lot10k-k177":"8c90fa1940510f78f01666ee940a56575f50734a24c625f316972ef4944b9029","standard-lot10k-k1783":"5102485705c9cee3043362cb1745c9cc6ff72bb15602879cc2a6e1986a9db8ad","standard-lot10k-k195":"07ed5ea760ba1f4960418039adcce53505a8194fcd1872e2de9cf7abb214c33b","standard-lot10k-k1965":"ec63b54f0902a647358bb6c50af14e5fd9b366f2d75d75fc33ad5362e488e7b9","standard-lot10k-k214":"3dd3836b1179206f8ca214d51c23710216c0849adb95c480bb70374ad6428dbc","standard-lot10k-k2166":"d4bc4e1ae34815c47b9618b9ee936f51ad38eef4a43658154d27a51f44d0c781","standard-lot10k-k235":"231c2159de46492146adcff5e1e38df8bb010dece5743be00d695e57ffeccc56","standard-lot10k-k2387":"8e447589cf917dd7758aa48eb2970a6a8ae898a58ae39f446e77dac128bfd581","standard-lot10k-k258":"3b9e3c5b88c60a059182498be5bdae65485e636a2d18ef5b11393ad54a35819a","standard-lot10k-k2631":"aa5b39e2a2509430a501881479cdf8224905ef8462d555a9f6dc75511980aae7","standard-lot10k-k284":"8cf87a41a3e0dfbb117971eb17cea01d4ca93c2db8510973ade25e33309e6e82","standard-lot10k-k2900":"a3e82290d97d22fd0094c19c20f3e393988d4d3090e2c8558a65611153b2ca9c","standard-lot10k-k313":"4096fd3ff11071e6c17a36a8956d8bbfc5700b2f0623ebec99dc82609231cbdc","standard-lot10k-k3197":"e435c425d0fceb2b631575b10099043019166edd9f05c7884adc22c08b57aee5","standard-lot10k-k344":"135750ffc03972405b7dfefc67a755305e96b4c915e9708b64668e04134e8eda","standard-lot10k-k3524":"e6764b6fed7e72685ef654efb836b6222423d8caccf2f8cf89442dbdbbcde9a8","standard-lot10k-k379":"a1dd4eebf6cc99d7dd84520c5b2bc460a491c51237a794bd9beb363dde92d29f","standard-lot10k-k3885":"9fe40f7b3a38ef0ea1683a436b920ff04b1b0103c89bb833a0ae05ed68177685","standard-lot10k-k417":"cfd48c1c756b5f992f127a42ccc6e3e50d19181bbdaf4cf0fd1198f2523463b7","standard-lot10k-k4283":"f4877bd7b933ca74379cf478d4a13d000319be8ea3d35f72d45900e8c1d9ae67","standard-lot10k-k459":"d87362e57417e706f48d045cbe7c89e957e2b61831c4edcc9adc0f1717490aa3","standard-lot10k-k4722":"733e4627604d5e63de49b12b41390a9f46eae76c603f617e246eadf693b10418","standard-lot10k-k506":"11ef0ba994a43bf67bfb922f0497c82ec51bdff2d58b8debb8447c7c0305c672","standard-lot10k-k5205":"fcf8c7e1209eee04f0e6b87570452826fdd15d6101c84d01f31ea96454fb177b","standard-lot10k-k557":"0fdda861a1731e3d59e3b54c9c1b024e1c48edf4f883677a8d632ff6233bcc92","standard-lot10k-k5738":"7887d57fa7dc77508b1fdfd4defca3ea1b9c8981ea88606b6c25e8b1994d2b34","standard-lot10k-k613":"fa3862e2467ecc49607595cb6b19b8dee89300f051fc415874c728a6d3c4ebd9","standard-lot10k-k6326":"051fb5b6c1a64910e21ef1530bdcf56ca496c544ab629a8e9b5f84b39b3dcfd9","standard-lot10k-k675":"a57afb1b0e0b8ca6a761ff155df15fca14eddd68a06239e521b294d8d5ef5cd3","standard-lot10k-k6974":"046579e2f751f215aec7f89209afb789f61647235932dfd0db3e6b5aafd7f458","standard-lot10k-k744":"472169d09d362ac955e2dd95590edbfb8e36d28172346789ce3a415c69084e50","standard-lot10k-k7688":"e02e6fe80b6c1c1d9336ed5e8b3fe2a99e52a467302036ae39e2cfb875224b29","standard-lot10k-k820":"f55cd57f7b3c99d923c5954ac32544228920800d0fef97c10564d69fb80864b5","standard-lot10k-k8475":"3958a7e5b4c45933861ae19f10b74e1041a30e80799951026bd8102427a4594e","standard-lot10k-k904":"00c63dadf3d39f402d9ba2404beac113447aaeaa47069bbff324d0e93e57685c","standard-lot10k-k9343":"51b76eeae6e031cceb3f70682cebad4f23d74da4f30219f88d0a76f648f62336","standard-lot10k-k996":"f67a808cd2a10a00d2e28c82583675bcfceb7279eb6366d4bd98bbb5bba05c95"}},"v1-kasseal-mainnet-2-tn10":{"network":"testnet-10","poolTemplateHash":"28170395ca9350966c0d732ffce8b13c5a94201e74552b7add67143a35dea56a","treasurySpk":"0000204e105b097b8ff8eed92c73c3ea68260ef39a955d3d5e9e57e9753e6a263ad335ac","compiler":"silverc v1.0.0 3ed973335b59269293564805cc2c58a14595ec03","presets":{"standard":"1154008bee8cb3998f2237f15f056191e98a70dfbca6692ac85c05363dafc3c3","standard-k103":"ab5495ea2d3096a0c9dc1d92c4e61323481b5ec03c09442cd0b4c2fdaf5cdd56","standard-k113":"edfab55ea14b255545edfbe4081e9a1ff9a25ce69d33a559da68cc6355d6f056","standard-k124":"bd07e70423b2e3bb41ed551ceb4b190b7629384b6e2c8becbfb45e36f10b1fcf","standard-k136":"b73f1c2540c39112dcf59893938a1d4b7d1e7d225e835de8374456916e37eb5b","standard-k164":"78c2fb5e06d486f34a3f0c1ee663430d14e3035f0e84c63855275546c799df96","standard-k180":"0d0a4bdfd87c169e0b0015baa0fd721c75d50f1ac9cb045b38f6fa61ad691681","standard-k198":"b6805e86a154ba69f648719d2b982fcf33fa16b196522f2c0b9fa477e2cbd95d","standard-k218":"43a87e6385b3726a6e41d1271b53fa58f128e9cdcc3eaa8cef9fe6a3c477a871","standard-k240":"9a582ef87181ccd389a8ab1d3be12e325e4db70ca5caa768dfbb2e4a4b13742e","standard-k264":"5b62b2f25a536629c52135d9326f4d164feeb25b058034b224d82e1ef5d19edf","standard-k291":"f710a3404746242a4aaa8080b1166746a950e657d95bd06fbe778fe46a72de0c","standard-k320":"25d6bfd717c8da07fa4324011926a448d51c74f5e490828281f6510e2c3a6584","standard-k352":"790e9ef2adad8b84a40ea03421c6df946d500470a6d3b94accbd69f35ee354f8","standard-k388":"2f0475449421481351b0a17679269bfb9efa45458cceb4ba6a43a56a15f9e6e8","standard-k427":"95be45462bef5b430a718372a148af7475bfb25cbca9bc2619dfb6ce2cfd1c7b","standard-k470":"3958f07f7d777bce117e503b0704119d7fdbec96799c4d382ba447f35125900f","standard-k518":"9e05df419950c2419c748e98e3cace2bf9bd145c988bb9162cd12d2f0a0f9684","standard-k571":"314e47f1cc87dd3c00673c2e1863f79736af90bf84dcceea513502e8d8c612f9","standard-k629":"4ce1845e5f002184cf1cb90392b7e9b739f8f54121706b91caf1e6edaa519fe8","standard-lot10k-k1097":"f38b62ad0a30937f73ef3e94bf8821a68d58449636d23e3ae8c998223d04f336","standard-lot10k-k1209":"7137ccef67a390e94b67a5e0b88726f3c37ffdc8b0a105835c6a4bdfa1b9e268","standard-lot10k-k122":"68b9d1c1a9d33f895ad6c4c4a1e32d68026f584c56be219c250454b3d62657f9","standard-lot10k-k1332":"eaac5ca0f06db88b9d3b20a9dfcae580c7dca4bb973a5255a523544701b13e9a","standard-lot10k-k134":"20bd5c0b786968566faef140689a32de578decf817a86ec302061a32dce79770","standard-lot10k-k1468":"b9a678ef7f10ab646f81d9ac8edb471b06901749f2ab1c7e408a41c567a2f266","standard-lot10k-k147":"25bda840ca412da297aa3ee393e94b0c76dc00015cb80819ae1e24bcf5b593d6","standard-lot10k-k161":"2c44966cf8c85ed01b18ca82bc8fbae21de16d06ce29accff01dd8ecbc3ad590","standard-lot10k-k1618":"0c30d5ce97d7588c4706a1344ce7d8a7d52ef693877e68f9ef0fb22b3fed3b91","standard-lot10k-k177":"49c58452fa959cab48de77439e65e56efb7dd3d37624fa35860813c005805b9e","standard-lot10k-k1783":"a5c3452cca0b03c46d2188e57314b01c2aa1e39a78c8f1a81158c4d266a10266","standard-lot10k-k195":"b3ba2a18986d0f10793d23a258c1aaf27fa01e3fd93d5d41003920b00986a291","standard-lot10k-k1965":"d2fe5cd688c0353646f01ef01d49ef14e91db36803b56fa55b4a93ea62315a7f","standard-lot10k-k214":"862052071634a76f313e098141bf22c07b0724ae26adefb58038dab5eb4a12ba","standard-lot10k-k2166":"966b85bbfafe3936375b05fb9f48d62162208e1cfa34b3bd5c10f7bfac0f21cd","standard-lot10k-k235":"9804c10d4277c26a9534afbbf1f7d5a605be4165cc706ed13e59181ee51fda4e","standard-lot10k-k2387":"27c221186e1a3df6a33d2aa04b024237e75f0cb1c8039d19f0d20a76856c5540","standard-lot10k-k258":"3d5a5a512a24ec276a29f3cba0d465d0e446e00b7258697ef908226c609b6788","standard-lot10k-k2631":"609fb20053602c16e1cb72656dad9b3134af0b005971b076b661fd2c3529255a","standard-lot10k-k284":"8d72c7acf82dcd765b529e757281109a0937b6ab7437fb1de0adbc6d222223a2","standard-lot10k-k2900":"5f7a101f5f7258cbf68020aba679362dc625a53a9027a13c98cf6deac3d7ff70","standard-lot10k-k313":"158ece2a2fef64561830ae618c371e15d6143a1e6c92f58370c45c3c0e1f77a7","standard-lot10k-k3197":"f4faa19d2e2f6d44b08d9e90fdc011f33300889e49fdfdeb5271ee251e149737","standard-lot10k-k344":"6250ee594ad41efc847191f0df0c9c18f7fe0dcfa6cbdfedb38ec5fbf84e95c8","standard-lot10k-k3524":"addde6968c6bea309989f5a7baf1a0da560af41ab9bde5389177e3d4b4e10beb","standard-lot10k-k379":"1e3c1fd85b6523602afd344a1b6c2ed875c5a865c4d0bc984c4ffc47ea1ba487","standard-lot10k-k3885":"ce02dca1151f132f7bdd1879543b67e95be7d9cb9c2574e277c518da296ef074","standard-lot10k-k417":"782481190ff73f236278248b79a1861614a1614ccaaadea511e9d54e08cdb74f","standard-lot10k-k4283":"1c70f564f0ee3e409f2af731003d51ac1bc8c6b6ffce8dd3ee27e28b8090fc75","standard-lot10k-k459":"c1e079622e99d2f11b74a26d17ca2491509376e98032d047f82f2ff10b19a3d5","standard-lot10k-k4722":"1d94e0cbb85b5d65361eca1b7e40530fa531a73aec7fd406f861b49fbd763039","standard-lot10k-k506":"b7e91f7145f2fac8094bef68b6ef38f5903945a04072c6f35dd86d4c8f49bc02","standard-lot10k-k5205":"eeece3a17ba0d2ee131c614062b194174f4b04e5e4a221401e7b0fe7b8114a69","standard-lot10k-k557":"dd6cab0892a6a12951e7ed92bc7209ec82f21c4f0a0f0eff027da792552773f3","standard-lot10k-k5738":"f01597c28da32ee133ef2e9f8705795db7f79a2acd494a9e12f21a80564c078e","standard-lot10k-k613":"f01035cce8f4198dd0bff50ce261a5439ac3fad2b8bea8826e22222edca80414","standard-lot10k-k6326":"89de882b6554f981c82edc319f8fdd88ab550ff601a1210c86ab08c3f1965f8f","standard-lot10k-k675":"0eaa78a9df698c134c1f85d776214896cceaa75097328cad7802f51ec141865b","standard-lot10k-k6974":"41d90a3b1217e5b299322a3d0c0801da7861afe0df8ed0f93f8718df733831f6","standard-lot10k-k744":"6026a4f3aadc7fbac6e79de9e0b9c72bf33b87dc26c857f0f4f6a7181b24b91a","standard-lot10k-k7688":"4a794f29a8c92a0da178d46a37fd218ff21f9b91e6e313e3b5bad3403138bbe8","standard-lot10k-k820":"dc5a8b815fe521a7d66777dadd8cbf450d96c983ce724494542c29fca30ce915","standard-lot10k-k8475":"ab1d5d0db82c127538c5d94ef7da6c47b4dd5df2df6cd5dff9e2d61fe236303f","standard-lot10k-k904":"9326d4bc136807d8b333c71a6a439b919ec7e8b99683f483a471a444d52e21e2","standard-lot10k-k9343":"b58f3d20e61e461e329e48c5a2dc396b014aded9f8663b262cb2076b10303b69","standard-lot10k-k996":"4c02890e058cc828ed253f73bf7533a495ab7d0a553539227f70c922a0abc189"}}},"tokenReference":{"path":"codec/fixtures/argent-kcc20-reference-c8a0871.json","templateHash":"9703112ee6e3555107cd168858992b77d3b74f655205b2b463b1f9ec2ec73cf7","source":"argent-lang/kcc20-reference@c8a0871 fixtures/public-mint/artifact.json"},"files":{"codec/fixtures/argent-kcc20-reference-c8a0871.json":"462a937240ff3dc6f297a06c2eeb48c5150e4a2a4995eedc71c724f3a34eedee","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k103.json":"149a1894b318fb2785d96afc8fd5bd480facdd1c62759097143e8eb2ce0f24f3","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k113.json":"703d54bb1b1339c02beaa2ad2fc953abb11dac8b79235ce70395fb3559024a67","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k124.json":"71f5af7a991b4e34c1051ca55b0b81536f66cb5d1db30b39d92a16b596f4a57a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k136.json":"3fc842258d8157b8d49c040c1b0ddb9824b112be2d5c6106b2578a6b2fb45d1a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k164.json":"847a1a5cf74114ed58613338e2edab1d0f17141cb064071d7091626001ec454d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k180.json":"1c07a60ddbf6bd07577d6641382a042f61960deb78975fe0b0f5efb60f3bcdfb","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k198.json":"e2db8760fa1363fbfbe15a7c1f28a7bcc9927eebd67f4b6e9b5b4802f53dfbcc","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k218.json":"f6de071a3deec2cbb6c2b198ae16861e638045cd1c0c52546250afeb06fb8c65","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k240.json":"960b2df1b506aca2188cab8dca3379781b0b7646dbdab29b5fff8c8c5c8a9755","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k264.json":"d7cb2e370de6438968be933070a2466e4407b1485ed7dfacbfc72afc138cac27","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k291.json":"953ef4f6578e3b93a77d64bc318d82aaf8969e2bbad193a99b27fc552f18b2e5","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k320.json":"1c5e31e6d07de64f705a64a762f27acf5bd6eddeb09e66496950ea491dbe42b8","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k352.json":"a4ae40ad108824de2a99111ce0b186faa77a8e4e0f677ef7b9f78122c3c65a70","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k388.json":"6dcd796975eb1e7714fb9a1edbeb2522e12ae4f7fead17bb5a0324b6cd4412ec","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k427.json":"22494b94e25bed9239c666ba1dbe692b3a9b90ad9bf07548ddce49281b70d89a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k470.json":"0595909142bc78b40f3354923e9483c07ff2a60c1de4e7531059787bdcd3967f","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k518.json":"cdd09e97c709f7b8b2a5187b8d551f28a243b177608ff10e578d697f13a232fd","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k571.json":"f31d68ebc34be7583702ee8b42618ecfa7578cc837e8b6a876f0bfd1bd7d4fd8","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-k629.json":"91b855ec43b7e22a567bc7661ad8d99c72a71fb266ecb89502cc1384a4d35942","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k1097.json":"47158fae30b2c4d4aeebce25e25a8aec192e5a06d6437f332fd52bff4cf27be0","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k1209.json":"009c0ba5ee508640262fb05d4e38d204487c3fa2235ea45ef0a5f071b327e79e","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k122.json":"5be1a0fd39f22470ce97e355fc18459b5b06902fc2279c6cdc22ceb6f8203abc","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k1332.json":"bb72f724d89321afb2fbcb63bffa8d867eeb1894d053e8ee43ce4a57f0d59c9b","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k134.json":"878f79122a3c471c5cdea0c428251a7e3bac4a77b8e5b1233dfa11973e1802e3","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k1468.json":"0bf2d6eebe06d4aaa99577e04245f5507e6f18e51f7c61fdeb55c93a2911e95a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k147.json":"417840ca08c3de333b1a1bebec76833bb39d8da1eacfbe70adcd2c6c98d88e97","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k161.json":"e4aff10b4156bcea76689502434b29a28f46a5385116f62d823b617431709482","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k1618.json":"5f78ffc3ec7d2b93c82913fb2f235e2cc9e4c031eff1329720ad45a7beaea2c4","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k177.json":"c184072d1433b1271842769abfd8ad5975283b0e80e9222a4a98d88ce6685825","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k1783.json":"6504b24c23782c4cd4a1838cb04b968c639e4189a9c8865c677a9cebd497bc6a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k195.json":"879e9c65f6c7e59a62848f8d9ea95311f5d0dd82f8f1d7ae628e00bba16cf42e","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k1965.json":"5d13273339a0adbeb1cb7686caf102a1296682a4f7ddafd62f0c9c5adc7c87d9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k214.json":"5d510b64b3987ef7eed77d7aa0556692db001d2fe8157611e6dec5fae48bfa8c","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k2166.json":"c1ab0ae199f1d256c725b57d621ad0558eb64b32bfa547f99d413ad9a5f347d9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k235.json":"53c575571c990b70b84c3aa8dc29c6bda8a2205ebd0c5ea8074a66de7bae321f","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k2387.json":"6bd32115321a945942e46d1b6929047e0b2ccdc035813f4fcd6d0ed9f024d3e6","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k258.json":"de1fe87e42c03f9f4c93e7ecd41eb7d450fe0834c8ee904807c9d08735bc26ba","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k2631.json":"54939dc757fad92f0fda141268491886afcd39c3d8f8e662c15caae64ec20ff6","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k284.json":"c1770971d6d6099f9e2518a5b36b0d98a5be3b09792cd88e5df485501ac65fbb","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k2900.json":"8a17d832780f93c6050e780ea8582a35e984d8ce30148d354794a5470699bc6d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k313.json":"cb66c6255bede3978eacb1356d6f318c852d1bc44828bf23e0b8cb02ec4e7242","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k3197.json":"8d067f718fd2dbfaefb9c4286506865b07414c59fbde0e537ea255fc4ac5f11b","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k344.json":"68cfcbe7c9ec404ff31c6b2d0bfcafbfcabf425343140ff8151ab0a6ab16ab75","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k3524.json":"b5f5a94748b702a88f50d1c35937f875424e4bec99ecf6b82140cfd6c55ff27b","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k379.json":"59cc0a9d9f5ac6667f6ff3efa3f88efc5ad2f4678b2965033a92ba566407f1d9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k3885.json":"170f5c7d36521f000df9bd462305efaf95ca94a8b3874f0b85630f206d2ae31f","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k417.json":"37b8c954c82f5541e5a2cdd7b5789447e8e09a73d5f61c9b9d1b461d83888408","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k4283.json":"ba5560f6109ae37fef484e6c81a65c83640608016525af816d448bd88dcd395a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k459.json":"0180caa133a00b32c9d9e606891cdb2cf922719efa4173881ba21540818b27b5","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k4722.json":"e4998ab4de31bc6a7e132788b4d60a3b8e0731935a4fcbcb5211d9aceddbf6dd","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k506.json":"94acd24dcc2cd41e671b0a49861531fb8122522782c1d7f21985e58e21fd7028","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k5205.json":"806ea1906628d12ea78e88f5c2747ffc587ade61d0eab6d816b77e6baf7c5770","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k557.json":"da32c7ea0a908b2728eff5f9c4ffd7ba7fde6a3b7402cd7af9ee9411f41449fa","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k5738.json":"58b947869a6629173fdfb31498d8682d6d239a6d68d7afc767d72ff942232b8f","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k613.json":"a5fa0e673b5e472a41fae60af6c36657fe70ffb0b3192b70e84bacfb41b21197","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k6326.json":"b993cded5c5b48e8c2540d627baef9190e5bbd707255bbcefcb127642bda15ca","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k675.json":"b5a5e5da0d4230fcbbc2c901255b507b416965decf2018fe91b0ab7b4d79ce9b","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k6974.json":"0afc7418e7b9fa0be8f9e741e6db00dc810ecba830d6f28c5e8f55e8e502868c","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k744.json":"53a9b9c18c0b70e4e4b6852c4ce6b963539765889821718209ad0c144e46c755","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k7688.json":"7d43c38333c29f55d8dcc5e08249c6892a299a97e6e951c6caf63bc61dcd36cf","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k820.json":"2af066430bd54f906bb522b2d8af0c60afb73aebbc468c2e1094fbcf76e7d55a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k8475.json":"86d1cbdcd44d9e8249e829d83b4f85031b843f32f46bd18880866102c7269845","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k904.json":"b2db8320379c2b4a840fdaa3b6f973bd75530216c1ad45095aad8468605b02fd","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k9343.json":"891cc2ebfdc09918101586424d9c8bb70823b5ea8bde11bf84f1b46164e822f1","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard-lot10k-k996.json":"64b2dd74ea9f06eabf59c555862b6ebe3506a95679d47f22055331cae83caadf","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.ctor.standard.json":"ca2cec3d3c201907439b79d69b5f2a27f1e493254dda39085e2d10f510a66b22","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k103.artifact.json":"0f5b1bc4b7af170eec8f7a7f28738b06255ed9d04a37cd26ecefdcccc8506575","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k113.artifact.json":"b58776f03e4738a817bbdfaea7065822bec6755779bc10e745a3426a7161d864","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k124.artifact.json":"b881a55d50343d941b7e6d5e0c22c122f2d969904c1311797fd946175d4a6eb6","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k136.artifact.json":"7ed46208814df9cca9fca5e82ae18e3e848386abf0985c844bc1a806c9b92421","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k164.artifact.json":"e7f2b294faa3bed7fb16d5410da4f574d2d9238cc03a1d7e39645b7626aa799e","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k180.artifact.json":"8d5b384cf93bee3c5b4589705424928593cc8cc8eab873e5ea3fa3423b39b4f4","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k198.artifact.json":"9dca12762b5a0c8fd402197696aa640ab87dde87d24dd943fa167c11d2f4d9bb","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k218.artifact.json":"0012d242a9d911ad3ee9b8979578363efd176979374ec7acf1d0ffc4db2a21c9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k240.artifact.json":"ab667e90189cfaf46032b4f3fe433525bfbc3847a9eb54e5b338f0f77c95dfb5","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k264.artifact.json":"46f6c272a99f56384ef6127a6ac951937ad27065ed0266619774c851a62991fe","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k291.artifact.json":"a838909a0a4fcc595759868c1479836cf9d101eaf62e411feeed8e93ae246a5b","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k320.artifact.json":"1496816386db74802365a39b7518bb162e7ddcca1e0abd0ae1af6bb4ba863349","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k352.artifact.json":"944fce3967a63c591d96c88abbab5337da080e7f0eedb1ec64f5b112306bc8f9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k388.artifact.json":"b3be6a0ad9a47b77d80b49b27f73110996042214af252c97b9b3448229f0e4c9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k427.artifact.json":"7992effc6fe92c84c1db84c65e9e9ed2804daa1fe3e558a0525079fa89ffd335","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k470.artifact.json":"cc6074465738efc9e9ccc7290e6d4b7a57b7f67f00f946d7adbad562944266c1","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k518.artifact.json":"5b517c00b64fa800059a80b79512b3ea922884b82c40b70ba5fa140d2e6296e9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k571.artifact.json":"3c82b2a51c5cdae470a641aa294a49ba9ab04a94cc439a32b9c7528a6ed69a41","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-k629.artifact.json":"912faec7de3f2e28a6307ec8faebe47c9b1cbeb6e4d9967afc33deafafa9f52a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k1097.artifact.json":"defac73b3ff07792eadd86b921d6cd159537dd2e5618f02dd5f455bd01f5861e","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k1209.artifact.json":"4df20e1eb4a41fa924c61a42f05e3a61c4795bae8cd75bfb27e42c7245a580c7","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k122.artifact.json":"4a3a0a8a98a3d903d2184f83efb9875d22cdbd95c641fe81ca7e5bc184c00fa0","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k1332.artifact.json":"c5594e268af856399d8c7b072d1b1bdfa692536df387e2a1c811b1472855f357","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k134.artifact.json":"39568d19f44c2b2501049419d192e632c21082f9f0bd8a1f9f31de6867de2840","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k1468.artifact.json":"bdbc1e6a6efb8ccd8f7aff0009b10e3cfe805d257d733bd8a63383d42dafdb7b","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k147.artifact.json":"9d0a3d82d73bdc541b9cf5b5361d76defd12c810c177a84d5ca03fb8bcfc8d72","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k161.artifact.json":"71edd70b9519564ab37edb4ae28b94945d5ffc471092cdfd2c7690947c3fb758","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k1618.artifact.json":"46fe893570fb78ad10b240700c36f7739ec53eb845cbabdf1c48a050ab8bb9f3","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k177.artifact.json":"268868218f9506c55b9eb878b6be1ef2a8bfef563b22f0897ac636a73dfe344d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k1783.artifact.json":"b8949d646e5b6dd80f21547d1f8a9887f79a265fa338b1035631c7ca0d9f7404","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k195.artifact.json":"eda993819acc5204b5ee16a3baa1b97d62acfae33c00001cf9001ec35678dd1d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k1965.artifact.json":"21fdc542932ab478c573b58198eb2bc3ef5134ccdbff9d3726744e42c5ab9f83","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k214.artifact.json":"2c459cc39f3cd9feebca6ce334fef019b85703b00bb1c299a5534ad5c26de0c8","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k2166.artifact.json":"05b08572d298082d8bc00e010a2fe5fc5f818e036d17c2b99f34147873f74dfb","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k235.artifact.json":"e1cf7a94517a226d9529fa30ae74ca0f86e1b45d7e9e62f90bba6dd793f7aad3","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k2387.artifact.json":"aa9c498eebf79de38fe476db2610cd689f4a7fce0da0d81e3472dbf1e2356e78","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k258.artifact.json":"856e07ed614d205e13ca32d58c963b096c1987adc41e871b97fe97bdfcba1a62","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k2631.artifact.json":"4c59b9a0bc2c9af4a8ddc85cd343935950e65fbd47eaa83c79a6bace7280ad71","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k284.artifact.json":"63feab3e3986a98901af601bbfe1a0334e8954f15b956f55438518ead616d4d6","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k2900.artifact.json":"8748aeb7d0b9eea3ceee6281fa3eb50ba13aebb2781bfcac8e283c5d9ade176d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k313.artifact.json":"7189537b54e1e4cb4005c934a53606103a9e780d00aa64403f33641a4d26e483","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k3197.artifact.json":"f8ee889aa44d65f5b84e4d1c76733c24e9409a7bc353e528ed1ed5ad7a2deb30","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k344.artifact.json":"65fe69bbf8586c5401d177d33cd7fb909a7065dca28a2de86bf1c35ce63a5937","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k3524.artifact.json":"83324c2a717e1826bc64e4f439a83863169df220aded9c73d967f227d282b3aa","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k379.artifact.json":"de2b2c6f1bdb1804f713310c10b7e13a5b1743aa34dd1068266c47b591dcfd5a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k3885.artifact.json":"3f4ef8157621baaa18c04da84e6903cf50f708ae8d48a84324f6542be789a199","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k417.artifact.json":"de1972a0b31051cd99baa7697ab95c2669460237aca0274aad95b40bf2244624","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k4283.artifact.json":"d0744bf36f04cf454af93385451408668d16158904b1649f021c8dc00fe27a90","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k459.artifact.json":"e075ab36ada38db424cecc9762b4a60c83257006e4cfdab7a03f34bda1449851","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k4722.artifact.json":"98afa518fb4cf95494c989687288417cf1241346c36cd4216d03dce476bd3a3a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k506.artifact.json":"6b4b94b9a2a4e81ec9a1f0ada2617b889ba904529748579cb31c597334adb858","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k5205.artifact.json":"de030723fda20cdaea730080b71479f8f1d1068ad0cb664005ee6530ead80fc2","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k557.artifact.json":"4fdda0b84c903a0383e82bd1f8b445a5859eb035ec72fa5ff738c657659b3a9f","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k5738.artifact.json":"509a65d42527eb5c2fe8def9b3b74fa5d648e344f038c3580689e0d941fe2c16","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k613.artifact.json":"a5428d5ffde48d05caece0384f62c50b96af148978e9ddf9244ac5bbe5e18e44","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k6326.artifact.json":"9ae493be696ee703c5cfc696a585d96d946dae9cfbbc918b52d82225c84e0c99","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k675.artifact.json":"e0584313e280fb3afb9b36980e5ba4bbb8aa3a8b63992bc3d990da4f025bb031","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k6974.artifact.json":"9b6dbf783855543cccf236f42dd97d5ca8442261a0bfd2d3d709d42fcdc2fb6d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k744.artifact.json":"821d05997eb63cc391f0a887f629fef873968490fe13dec390e5e80630ee119c","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k7688.artifact.json":"d51a8b2e7b378761f9604e3e23c2129a53922f3af53890eceb0baefd926a5463","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k820.artifact.json":"cfc0c8cb9534c1ff6b80bfa2449b2821c667fff7d7590597bbbfa26f8e3d37d7","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k8475.artifact.json":"486c5d4e9bfdaeb6f8602b249a915b4c4155b44c0a7070b1a0b00050d4385e02","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k904.artifact.json":"8509e9431d0dd87daf076b7bc6e901aa2eb66ab458c55a7aa71da0484ca0c514","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k9343.artifact.json":"188c08e6819e8d9365160822872520f2b47a7deb84e4681ce47b27421635254f","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard-lot10k-k996.artifact.json":"a338299cd21cb76b9755d7b9841d8156353918adc479c6e17cf818ec70228311","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2-tn10/curve.standard.artifact.json":"2b8a27d80e3bdd9968df6b50c0e5f2d462185d701f861837a1fcb4ee190946ba","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k103.json":"c1306a512ff9bb87be9721c33c0619f1b50efceacb2191e6dbb611fd120e3461","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k113.json":"af39fe159fa96a90fbabe1654bdb3c18b3ae5ac0203d585dd36bcde27e672445","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k124.json":"1a8143d0b0cd3696b0a72a9cc8f894ee3db5a5cabfd1e9bbc19d3306561babda","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k136.json":"08f6137d7dc7205ca147f875c34d13d4fcc275c1b3b150d1d34121d307d56211","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k164.json":"1cd10a124168acf6355bb8f74c03e7363c1ea9c02cbde420a1bd4b8e8d420d86","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k180.json":"d8fae65b49d2cce4ce604fc77372d125e1290e5f3dbad74b6a1db0e52a6824a9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k198.json":"244e27adf4032cf36a1fd7e9b2ba4acba4d26722c531c81c56a9cdeedd0431a9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k218.json":"d47047942b8d1ba305f558e44a117be24aeec1e70c34336d4d4f884577b22126","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k240.json":"a64ccadc42cc991c095c4e4dae39e2a0eacbf0cbc5f7bdbb71a855d89c2a970a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k264.json":"ea9ce4b91755148a3b8b27b19a4780b15da3d936e36f8035f7b864a381811ba1","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k291.json":"aeb0dbc47cf31bc215fe185503d46b5a673e9f9015060dcc61640768d8796c33","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k320.json":"b26a6c676f85c2731d9b39b0f37b0ed056014f401098d116191444f3ee3b4e8f","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k352.json":"5594417c78dc1da8a104ef1f7ef9892736bc3d63dbe0ebc1630ad2f08d09580d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k388.json":"10dfae31b394024ff38601fb0995d72270f021ba0f8c1f9a9a667d4b35b5209e","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k427.json":"258f6c528e1218dbc157afe4e8a7bfbd663bf21bde416b2f59a94d4466a9193e","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k470.json":"05224fc259313290c8503ede1d334abc685537c84750ca40fbe0074978fb1ba1","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k518.json":"672c43c5bd50886e7e342215c4de6401615a4bcf2162e5f05ecea66e2bdb1d8c","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k571.json":"b672221e2020e120b26285faf17f61c682c53a710c2d0109dfe4072eb58ae1e5","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-k629.json":"a99185b2dbb29ba276c531bfbd7cf18fb56d72b02788570b7a700c4a1de51540","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k1097.json":"c25cd1ac9370314d3d0e587c61c96fa3e4b6a008f6f093e4134723f0b54c9116","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k1209.json":"aed9d0fe4894d3769cf7d19acc48a9321ad3a7143c224ff0a2d1944cd10c7533","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k122.json":"d4c010129dc15c3fd0209b9ff040b91c152139691ab2a1e2c4e231b1badd7ae3","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k1332.json":"4c983ff6856d84ef58c9cd4eb95f5bbc38df6c9df65ee9be2d8ebc73bd810e7f","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k134.json":"e9ade7157c9c87daafeb3d92d8b1ad350a75a44f497944e9ab02e71b1f1845e6","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k1468.json":"62459138f994543ec583b01aff314533c59e4d5459527d904f4e96d7d264454d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k147.json":"5d9ab0459e3b3466f003998ff606e011548ef56685948950d6fb0e3ce5ad1b8f","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k161.json":"80aaf71a4f36aa0ea35533ec45882060a381c879fdc6ceb9b4b6584825b931c2","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k1618.json":"98e974e72969f76f6eaa022c89defa4b09628ae6bcd0d2819d69e9f33e832f81","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k177.json":"b9b437de546704d8661ecfebfc17f005a9e8ba1cc8f66669d52322440cfaba76","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k1783.json":"63ddceedb7eb456587c04f3b0427442d46f69001615b7d2a374c797a45327964","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k195.json":"95550adff6139bdc174eaa93a6a520b2614224060ea3a16bdadf1f3e2a04c1f4","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k1965.json":"3b0d50df0164f3ebd307d531df703eccb8ec086406a3bce896303b6d8d548591","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k214.json":"2b88700e3cdb4f96c07b86a46b927ef16aeafd5017b01931d8bc9e48ef7b8985","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k2166.json":"49cdd3a0bb11daf0d3694b34872f01f3e1c8dd3e10a282708da027b0d5f22a3a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k235.json":"c86fbd53115c00f1a199eae700a91d7b465a3c86d038e291b1fbfb5ff1e74149","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k2387.json":"a73e0d1aa8e8518490ace076f76a2dfbe7c98d426e7083612f63915e7300856b","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k258.json":"286650871a187f6fb15c6f27bfe77110f1937ff26ecd514b53ad3e478fa2776a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k2631.json":"ef3174792ae95f79dc2c41d2a2ff8909a362e505ffef4aa043ec0efd3953bfb9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k284.json":"d9961d86d07fd27657ce660c43f14e63b3a2a9a9a3613f6a26ee198e25b06b64","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k2900.json":"9d9bbcdad29b33dc463846f4a259832a3053a6bd1d9846b47e52f2a5ac881b61","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k313.json":"e80e71473634383e44c64988983a4a2da98fc82229ebaeb70f251203cba0673c","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k3197.json":"4479e440157d63deb6c240db456baf8d04361817e95907a6a17ef2dfc73760ff","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k344.json":"40311f9fe095d4cad31879166ed5eac9c65a86a53442637f0fba8bb56ce3ae7f","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k3524.json":"7a6bbf7eefa38b418a31bd5eeab46b5e1593d6fe0d6931c4912957f55c162fb7","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k379.json":"edc014e27af1c483e4bbfc6128063b4d101b7005ecbdc76744a7e172c9d7e4f7","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k3885.json":"f9be7e675beefe9235464ad52e1b48534f23589fed56fb0cb9573861fcc7b2b1","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k417.json":"b5fee3bde08f4c878fb677cdaae7299d364d761defe75f629e5e64ff6cdd8ef3","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k4283.json":"0af69184ec56826cd4d65f7e9498a8bd976fa6e001252833dcc951c7236683a9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k459.json":"6dcef71b733b9d295cf8aac6ba5044854763df892573353be4e5231b2a2986d1","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k4722.json":"bd76af4ccf6fc1d8fee4a0bb1f10a8001a741ee79a12291d35ab046b8343873d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k506.json":"b9c5b640d984484b0cefc15b8d8d2b7955b0bec91230a0f6e79b782d6bbe24ba","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k5205.json":"88f67b19497ab1d9879e7aec5e9f8904881df0f374677229aa999a79e7886906","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k557.json":"2deeb18df19e1fe829e9bf27ddd250e22467d51c4e96b07171cd23fe2df4fe63","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k5738.json":"3314072db71add192863f51f03b9f6780d32b62bf8c67fa58ce58161b7d659d0","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k613.json":"1ea9a698d1cea92d3fbdbc6b5867a9354bddfa9b2a418e275b356ac1ba9d5bf6","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k6326.json":"8dde5361f2decd052dcd2a068532627a0ededf0f4f8d00e48cc64872e0e66715","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k675.json":"323ca86abca5192c45160b71639e20e52fdec0eb3af0c8f0131847a86741bc90","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k6974.json":"bab043a8929830083b9471410c44d743fe1f125f1756231e55f752ae609a38ca","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k744.json":"bf4dfe818d57d8f12218c48e797a275cb7e3167d09fded28cd936e6e3ece2159","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k7688.json":"e1b8a60d205821b4669ecea9571b7ba26486e56ca130bbb6b95cad56ad1455bc","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k820.json":"8bebe0cfb7e8c57bd9a38c0d63adf083591fac56c4e85a37e084e89e629bc51a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k8475.json":"e35108e7963be7d9f1a81667bbedadd8697e1490a29e8f36fe7e445812906719","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k904.json":"3c2071b2b0de679c2bf1ec84af2ed0e3ec97290180867a57c5fdbae9c2273c4b","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k9343.json":"2b9a76cb4cf60bad2ed000cc7f1fc0c18eaef75cd4bffa16ca338aec5b8a279a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard-lot10k-k996.json":"eef5d229e94cda8c4b152b2df57dfd82aa313c7c8e1c4f2c0c5fcd4527fae416","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.ctor.standard.json":"2fa9fd5cb1643358925947df6a9562db29a861f3469c6ba4060e96e7fe6bb2ca","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k103.artifact.json":"6e762224e388b076e3296b94f9942e27cc1d69347f4fa73b12721dbb9905405a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k113.artifact.json":"80f4c981e3e2499a7a3d2f824df9891bc8cd20c984883cd368a2d964886b3107","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k124.artifact.json":"34e7e489899dea622cd01e21322f2dffd94649fe061753034387fccf67c7fca2","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k136.artifact.json":"87f9fe8166999039fc21d096a570600bb2f461ef1c5cb7d83d9988aa700b37b9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k164.artifact.json":"694ce0a92c22b5f6dc277d6d2cca70b91c5b493cc48218775880d44f58f02c94","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k180.artifact.json":"26dabf7849841caec623c6d58cd5d715233717e53fd2c164ace3ca7825ffb61d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k198.artifact.json":"17280e7b1e098589be1f58de3ee72616bd46a4514bd5893a0dfbe0f5083fba9d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k218.artifact.json":"b7f34ff9d1adf4bcf92e5aa80139be195e0e9d00807e688e00ef6f098ac98c3c","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k240.artifact.json":"79061e32cb53a620f75fb7a0ba9f7bbe7ee9af46d8e097dfb551b01e01eede73","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k264.artifact.json":"d3cd8ce8ac3acebe20fe4fe13658f0264234361e40b0b629f684499f2af4b3cb","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k291.artifact.json":"9bcc4c8d00f0bace2550fb818d1236f90d7c6ab24f90fddc8ca8b5965a436aff","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k320.artifact.json":"683c14d8880c5ef6f177f891ef3d647ab3e551919d06c7737cd909afad7b754e","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k352.artifact.json":"36d3a82dbed5b9dbc0edc80d3ccb479950cf4155dd3151d438e8157fc9628a18","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k388.artifact.json":"afb1589fe4bc742176e480d088db42156d6e13f36b6cad13278ddcc5c6d202c8","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k427.artifact.json":"b7fadd8d3864f51d09b20f7599a559914f11c6996d52195c1fae08493bfa7fe2","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k470.artifact.json":"79ad6eea6573fb526ca9cd386f00d217315b31a915deb4417ea8ffb6ba7fd151","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k518.artifact.json":"8cd2de8c54f0bc409640bde408cd7420c3fc37804ce6009348ee0aa3f70b4e81","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k571.artifact.json":"dd398e18c84a365343c67c491bd05ae17e446e05c362219333b79b8f462e0a0e","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-k629.artifact.json":"73b7c146c5840d99d4425672378f2a6d75d7dfb0290da2a146454358a5179d78","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k1097.artifact.json":"f23dd00d737864bbeda04b6266db8cab3572493803513f49f19d655445de5d3d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k1209.artifact.json":"e211077125b1fe1bcc0a5c8215cf4452c15fa1accd9f744eef719a55d822b6b9","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k122.artifact.json":"f06c1f299152e24349d6edbf3570d7e264fa47c1923b15927210b1ffb7a11910","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k1332.artifact.json":"b89b3106b4cf3b59b0a0723c153fcb9614b7d835a5e781f25d6c752ea8fd8264","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k134.artifact.json":"8178652bf1cca87c00da5d8e619f68251bf958286181e0ab6bd547b16c437e88","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k1468.artifact.json":"e36a32574afb55b530c6bf2819de996caf94743ad4376fc5aec3b3906454c169","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k147.artifact.json":"582c3f7bdd3ff1fdde7b3d71f1273aa0c3a756c088b48b7765350a2f7a4061c6","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k161.artifact.json":"af3950ec0c936b08b91ca085428637c2d8c0f8bdccc2d23fa29ad279a674921d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k1618.artifact.json":"29dc88dceadd563707c69ab45cf53fd8a7ea1a12193fd895576f5d73b1579529","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k177.artifact.json":"979eeffa63d56da95dedfa5e93c8e30f7b39c5463ed7c0de59cf82c10e262171","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k1783.artifact.json":"0168e6817c00908fb66cfc545bd0050810575e925f046171c3f54c46cee473f4","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k195.artifact.json":"c6c816a031ce12b2787dba07c40ebbdca2d394f11656c4ed40715bdaf2dc4324","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k1965.artifact.json":"aea52472de9b488bd40350022276239278171a726e01677157260b13a1c67dca","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k214.artifact.json":"43d2e33ec5cb5d8373c74dc1d801844ccf4215f30660af751ce8a45d14b06a5e","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k2166.artifact.json":"474022d6adf5ca87828200dfc48664a835a69155542f96a0c3ae55e476467832","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k235.artifact.json":"2791b69a44c49f72b7bb3a92cee3e0ce9238d5caa3ae9f06a0764987ab936552","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k2387.artifact.json":"1f28268ee4c11fae1895cfdfd25d1aa4c0bdb5b583292bea647db6e795176599","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k258.artifact.json":"3b6b2be2ccef32b60815c09cb03a00a2ad5417174823d4f8f6963269638441ad","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k2631.artifact.json":"6d8dfa730cd22ae6a116db9c5388f33e54a3d3009c28fdfb2d8148552ca059d4","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k284.artifact.json":"e9309de8e8d6b664fb78ae393aa9fb81fab474b420d2fb3bd5ef09ea38a33b1d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k2900.artifact.json":"95deb72fef1d9c2a1957c45127a647012764057f013006820d99ca4bde72443f","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k313.artifact.json":"ca8b0a51ad1cb261066de42b76c7080930ca00d00936c3c0681dea4a58f48dff","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k3197.artifact.json":"ffbfbb89c77f4cac9ad008207d7392be5a749946095cd04c154518c6ad52a946","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k344.artifact.json":"42d7b03c69dd5171cb1785f65b2bc6f51abc92c9f549212ee0843c368e96f468","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k3524.artifact.json":"739784f5ae7b1e38fd05e7f78e4b196a82fd905ea2646ae22a3a9c37a3510a81","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k379.artifact.json":"9440624836103d58cf9b18117a747aa401b163bd9638228ada72cdd845bd2a38","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k3885.artifact.json":"885ef84be3be25b4ccf4d2a75afaca5d085e09a850726591939ff026e2805521","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k417.artifact.json":"c425b742a58805383041e740d9371377bd5c6136f2d6ea9b902614f445021a11","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k4283.artifact.json":"7e648766d310d2661b5a12c18ad4c3985eee89fe42c705b9d27743d4947ac44d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k459.artifact.json":"25363f20048bc6d1118b3d33cf1a5018e97cdd3ad6e233ccdbf4a878f05a3b98","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k4722.artifact.json":"e1c9e8e6e003046cb7f7fa30ff2f91efc489bbaaddf1eed6932975f0f9d7070b","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k506.artifact.json":"965d77bf20e073fa32057abc2d4c1a3016943b056947fc18098b91f02db6cb76","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k5205.artifact.json":"6af60b73f8552ab179d9ad68efd171c981cf97f55743007a85dd05dcab0137ab","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k557.artifact.json":"8da6174c1d0bc38438fdf3cee16cbb4ae6794376067255c4ca111d3b44b0528a","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k5738.artifact.json":"238816199146901beb7c23d97de555f89fd0fbcf5b5fb4f49ce639f6bcc0dac0","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k613.artifact.json":"ac7d1e345a9b9e524e9e3fee1ba6b48eb66c10c45c2f5ecbaf8cdd2c85c3c8ee","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k6326.artifact.json":"f9a4e45d1c6b522b916f098708d104e838dbafa6116396b12603ba7e1cc4603d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k675.artifact.json":"cb0c712e8bfcb0269de0a0995fa7f3a6ccd940b9c2f1b40588676f45bf844ef1","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k6974.artifact.json":"f077963959d355ae64eb55d52ea9c53581e31da5c713edaf3a0c61c67b2b68ea","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k744.artifact.json":"f8da4a863013ac5535cb4eabbe5bc2482758467da536d05d1d6201dbf2bea4c3","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k7688.artifact.json":"0d9591afa4b59d16cf28676e02ec26893389811a6dbf3ce15abc67b3cf3825b7","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k820.artifact.json":"3ff812ea58a3f49c6d87b52e8643b36b7a03b1f542e7912de09f9d9cd1f31db5","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k8475.artifact.json":"b2843a22228f3546e3e2b7ee53d052e0cd4bdd6d14a1a723a0b228f7edc2b937","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k904.artifact.json":"c62a76325bd49da9afd92ae8452a6413800b05df7737bb00be26745a2cbe4bc0","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k9343.artifact.json":"ccdab5fb87978e60a4f68268b34b142edbeef0cd408ac5e73587becd0b535e3d","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard-lot10k-k996.artifact.json":"213f5e20de75f11f4cd4ef0a78608103ffc96ddced0eb2a99f3dab7d60ed8e4b","contracts/curve/v1/artifacts/v1-kasseal-mainnet-2/curve.standard.artifact.json":"9fb8b9aed0d30ffed8296ca01112f13b1cf6bca227138a7f92e3270ab53b4c3b","contracts/pool/v1/artifacts/v1-kasseal-mainnet-2-tn10/pool.artifact.json":"11bf7c41d2fb90beb07d92a0d8ce7de32accf676e182fa6882b84c123f3aad3c","contracts/pool/v1/artifacts/v1-kasseal-mainnet-2-tn10/pool.ctor.json":"0e88b336995fcd2c4a84b882239c0a4071dd921e33bd59baf0b0d2a3bf1c3f0b","contracts/pool/v1/artifacts/v1-kasseal-mainnet-2/pool.artifact.json":"7ae79b8a9a36e6b7469dc7fe1d8bd3cc227abe94632e3fe1e36cfcebcb1cccb2","contracts/pool/v1/artifacts/v1-kasseal-mainnet-2/pool.ctor.json":"d2e5abb2350d1f5e7657aca91e5af4ab05b4e42004fe26a2acee956e359afbae"}};var Jm={"nodejs/LICENSE":"fb06b99a835c4cdade7f2f180fd87c0198d552cf1e0cd14c34716411b009a92f","nodejs/kaspa.d.ts":"0034215eb938b5649baddeda2670889ca461ab3644d01943331151bc4dc0d3dc","nodejs/kaspa.js":"6d92cb305d0cc2eb26de9e305b7f7a8c17daa130ad478f0b340b50490557dbcf","nodejs/kaspa_bg.wasm":"c9657568610ae1d305bc2e1cf85208ceba0d1a7893c4057b38caa8add2ffb0f5","nodejs/kaspa_bg.wasm.d.ts":"e7c1c9f8275c45225a315c1083c6b580b1dd509bf8b5bb3ef931a8e8361e20ef","nodejs/package.json":"8b61fefaba842c41b805291d95b2f9e81778ec590813a6c34eddcd316659b8d0","web/LICENSE":"fb06b99a835c4cdade7f2f180fd87c0198d552cf1e0cd14c34716411b009a92f","web/kaspa.d.ts":"2e95d6b2c6892df445ecbea1ead244d76707370c0828a03d7ca8c2f06d1bd6f0","web/kaspa.js":"19b888ecaae0d308f693fc6802b3af6cc772e37db63b546a04a1462f48763b3d","web/kaspa_bg.wasm":"4f86dd96862f8d1169ac9b50704f4808faebfba8fbfd1f19327202ecfcfaf578","web/kaspa_bg.wasm.d.ts":"e7c1c9f8275c45225a315c1083c6b580b1dd509bf8b5bb3ef931a8e8361e20ef","web/package.json":"8d1f0f475a590bb0b4a052564f12713ecbf5d19b1520bf3d231ae9768b90d269"};var Ia=zm;var Bh=Jm;var yr=class extends Error{static{a(this,"ArtifactIntegrityError")}path;expected;actual;constructor(t,n,r,o){super(`contract artifact ${t}: ${n}`);this.name="ArtifactIntegrityError";this.path=t;this.expected=r;this.actual=o}};var Fi=class extends Error{static{a(this,"SdkIntegrityError")}file;constructor(t,n){super(`Kaspa SDK ${t}: ${n}`);this.name="SdkIntegrityError";this.file=t}};var Di=class extends Error{static{a(this,"SdkCompatibilityError")}stage;failures;constructor(t,n){const r=n.slice(0,5).join("; ");const o=n.length>5?` (+${n.length-5} more)`:"";super(`Kaspa SDK passed to initWeb is not compatible (${t}): ${r}${o}`);this.name="SdkCompatibilityError";this.stage=t;this.failures=Object.freeze([...n])}};function Kh(e){const t=Ia.files[e];if(t===void 0)throw new yr(e,"not listed in the package manifest");return t}a(Kh,"expectedArtifactDigest");function mT(e,t){const n=Kh(e);if(t!==n)throw new yr(e,`sha256 ${t} does not match the pinned ${n}`,n,t)}a(mT,"assertArtifactDigest");function Mh(e){if(Ia.builds[e]===void 0)throw new yr(e,"is not a bundled build");const t=a(n=>n.includes(`/artifacts/${e}/`),"inBuild");return Object.keys(Ia.files).filter(n=>t(n)||n===Ia.tokenReference.path).sort()}a(Mh,"artifactPathsOfBuild");function gT(e){const t=`${e.replace(/\/+$/,"")}/`;const n=new Set;for(const r of Object.keys(Ia.files)){if(!r.startsWith(t))continue;const o=r.slice(t.length);if(!o.includes("/"))n.add(o)}return[...n].sort()}a(gT,"listFromManifest");var Xm=[[go,"UNSUPPORTED_NETWORK"],[yo,"UNSUPPORTED_BUILD"],[yr,"ARTIFACT_INTEGRITY"],[Fi,"SDK_INTEGRITY"],[Di,"SDK_INCOMPATIBLE"],[Bt,"ARTIFACT_MISSING"],[Vo,"ARTIFACT_NOT_LOADED"],[jo,"ARTIFACT_SOURCE_NOT_INSTALLED"],[Za,"CONTRACT_SET_NOT_SUPPORTED"],[zo,"SDK_NOT_INSTALLED"],[yt,"LAYOUT"],[wn,"UNKNOWN_TEMPLATE"],[bo,"TEMPLATE_MISMATCH"],[ho,"TEMPLATE_NOT_DECODABLE"],[N,"DECODE"],[D,"VALIDATION"],[at,"SUPPLY"],[br,"OWNERSHIP"],[Q,"TRANSFER"],[de,"STATE_CODEC"],[Ro,"DECLARATION"],[F,"SIGSCRIPT"],[In,"CURVE_MATH"],[X,"ARGUMENT"],[Uo,"SELL_PAYOUT_TOO_SMALL"],[V,"PARAMETER"],[No,"OVERFLOW"],[ue,"POOL"],[$r,"POOL_PAYOUT_TOO_SMALL"],[st,"LP"],[At,"LP_STATE"],[Bo,"LP_SHARE_COUNT"],[Ko,"LP_SHARES_CAP"],[Lr,"LP_RESERVE_CAP"],[Rr,"LP_FLOOR"],[Ur,"LP_PAYOUT_TOO_SMALL"],[Mo,"LP_TOKEN_LEG_TOO_SMALL"],[$n,"LP_INVARIANT"],[Fo,"LP_INVENTORY"],[Qa,"STANDARD_BAND_OUT_OF_RANGE"],[Zr,"PROOF_NOT_BOUND"],[Fn,"SHAPE_NOT_SUPPORTED"],[eo,"LINEAGE_MISMATCH"],[Dn,"TOKEN_AMOUNT_MISMATCH"],[to,"UNKNOWN_CURVE_TEMPLATE"],[no,"COVENANT_CELL_VALUE"],[sr,"LP_UNSAFE"],[ro,"CURVE_NOT_OF_PROOF"],[oo,"POOL_NOT_OF_PROOF"],[cr,"NET_BOUND_EXCEEDED"],[ao,"NEEDS_CONSOLIDATION"],[io,"NEEDS_SPLIT"],[Dt,"RESIDUAL_BELOW_MINIMUM"],[or,"FLOOR_VIOLATION"],[Yr,"INSUFFICIENT_FUNDS"],[Ti,"PINNED_FUNDING_GONE"],[pr,"INSUFFICIENT_TOKENS"],[Xr,"COVENANT_CELL_NOT_FOUND"],[so,"FOREIGN_COVENANT_INPUT"],[Ii,"RATIO_DRIFT"],[yn,"UNSAFE_SCRIPT"],[_t,"SLIPPAGE_OUT_OF_RANGE"],[Nr,"FEE_ABOVE_CEILING"],[Wo,"FEERATE_OUT_OF_RANGE"],[lo,"TREASURY_NOT_ALLOWED_ON_NETWORK"],[sn,"STATE_JSON"],[De,"TOKEN_RECIPIENT_REFUSED"],[Oe,"CLAIM_MISMATCH"],[te,"FINALIZE"],[wa,"REJECTED"],[ye,"REPLACEMENT_REFUSED"],[et,"RETRY_POLICY"],[hn,"INVALID_TRANSITION"],[ze,"OPTIMISTIC_CONFLICT"],[Ae,"ADDRESS"],[jt,"SIGHASH"],[Y,"SIGN_REQUEST"],[Vn,"MESSAGE_SIGNATURE"],[Ta,"MESSAGE_SIGNING_UNSUPPORTED"],[Gn,"WALLET_UNAVAILABLE"],[Me,"WALLET_NOT_CONNECTED"],[qn,"WALLET_NETWORK_MISMATCH"],[we,"WALLET_ACCOUNT_MISMATCH"],[fo,"KASPIRE"],[gt,"KASTLE"],[kn,"KASWARE"],[La,"NOT_SUPPORTED"],[_a,"API_ERROR"],[gr,"HEAD_MOVING"]];var Fh=[fo,gt,kn];var Dh=Object.freeze(Xm.map(([,e])=>e));function Hh(){const e=new Set;for(const[t,n]of Xm){if(typeof t!=="function"||!(t.prototype instanceof Error))throw new Error(`error table: ${String(n)} is not an Error class`);if(e.has(n))throw new Error(`error table: duplicate code ${n}`);e.add(n);const r=t.prototype;Object.defineProperty(r,"errorCode",{value:n,enumerable:false,configurable:false,writable:false});if(!Fh.includes(t))Object.defineProperty(r,"code",{value:n,enumerable:false,configurable:false,writable:false})}}a(Hh,"install");Hh();function Ym(e){if(!(e instanceof Error))return void 0;const t=e.errorCode;return typeof t==="string"?t:void 0}a(Ym,"errorCode");function jh(e,t){const n=Ym(e);return n!==void 0&&(t===void 0||n===t)}a(jh,"isKassealError");function Qm(e){const t={p0:e.p0.toString(),k:e.k.toString(),lot:e.lot.toString(),curveLots:e.curveLots.toString(),gradReserve:e.gradReserve.toString(),feeBps:e.feeBps.toString(),creatorSpk:h(e.creatorSpk),tokenH:e.tokenH,tokenPrefixLen:e.tokenPrefixLen,tokenSuffixLen:e.tokenSuffixLen,poolH:e.poolH,tokenCellKas:e.tokenCellKas.toString(),openWindowLots:e.openWindowLots.toString(),openWindowMaxLots:e.openWindowMaxLots.toString()};if(e.treasurySpk!==void 0)t["treasurySpk"]=h(e.treasurySpk);return t}a(Qm,"curveParamsForProof");function Zm(e,t,n){for(const r of n){const o=r.curve;if(!M(e,o.prefix)||t.length!==o.suffix.length)continue;const i=wc(o.suffix,o.params.creatorSpk)[0];if(i===void 0)continue;const s=t.subarray(i,i+nt);if(!Jt(s))continue;const c=Uu(r,s);if(M(c.curve.suffix,t))return c}return null}a(Zm,"contextForCurveTemplate");function eg(e){const t=[];for(const n of Go){for(const r of Ea(n))t.push(ir(r,e,n))}for(const n of ti(e??an)){for(const r of Ea("v1",n))t.push(ir(r,e,"v1",n))}return t.filter(n=>Mi(n))}a(eg,"committedCurveBases");function Vu(e,t){return(n,r)=>{const o=Zm(n,r,e);if(o===null){t?.("the curve template is not a committed preset of this build: its parameters cannot be checked here");return{ok:true}}return{ok:true,params:Qm(o.curve.params)}}}a(Vu,"curveTemplateTrust");var Vh=146;function tg(){const e=qo(Rs);const t=_(e.contracts.KCC20.bytecode_hex).subarray(Vh);if(Lt(Uint8Array.of(107),t)!==qe)throw new Error("the bundled reference program does not hash to the KCC-20 reference template");return t}a(tg,"referenceTokenSuffix");function ng(e){zt(e);return eg(e).filter(t=>t.networkId===e)}a(ng,"curveBasesOf");function Gh(e,t,n=ng(t)){zt(t);let r;try{r=ks(e)}catch(s){return{status:"malformed",reason:s instanceof Error?s.message:String(s)}}let o;const i=zl(r,{referenceSuffix:tg(),curveTemplate:Vu(n,s=>{o=s})});return i.status==="bound"&&o!==void 0?{...i,status:"unverified",reason:o}:i}a(Gh,"verifyLaunchProofJson");var rg=Object.freeze({mainnet:"https://api.kaspa.org","testnet-10":"https://api-tn10.kaspa.org"});function og(e,t,n){const r=a(s=>typeof s==="string","str");const o=a(s=>(typeof s==="number"||typeof s==="string"&&/^\d+$/.test(s))&&Number.isSafeInteger(Number(s)),"int");if(!r(n.transaction_id)||typeof n.is_accepted!=="boolean")return"unavailable";if(n.transaction_id.toLowerCase()!==t.toLowerCase())return"mismatch";if(!n.is_accepted)return"not-found";if(!Array.isArray(n.inputs))return"unavailable";if(n.inputs.some(s=>!o(s.index)||!r(s.previous_outpoint_hash)||!o(s.previous_outpoint_index)||!r(s.signature_script)))return"unavailable";const i=[...n.inputs].sort((s,c)=>Number(s.index)-Number(c.index));if(i.length!==e.inputs.length)return"mismatch";for(const[s,c]of e.inputs.entries()){const d=i[s];if(Number(d.index)!==s)return"mismatch";if(String(d.previous_outpoint_hash).toLowerCase()!==c.transactionId.toLowerCase()||Number(d.previous_outpoint_index)!==c.index)return"mismatch";if(String(d.signature_script).toLowerCase()!==c.signatureScript.toLowerCase())return"mismatch"}return"confirmed"}a(og,"compareGraduationWithChain");async function qh(e,t,n={}){zt(t);let r;let o;try{const l=ks(e).graduation;if(l===null||l===void 0)return"none";r=l.tx;o=ot(r).txid}catch{return"mismatch"}const i=(n.baseUrl??rg[t]).replace(/\/+$/,"");const s=n.fetch??((...l)=>fetch(...l));const c=new AbortController;const d=setTimeout(()=>c.abort(),n.timeoutMs??8e3);try{const l=await s(`${i}/transactions/${o}?inputs=true&outputs=false&resolve_previous_outpoints=no`,{signal:c.signal});if(l.status===404)return"not-found";if(!l.ok)return"unavailable";return og(r,o,await l.json())}catch{return"unavailable"}finally{clearTimeout(d)}}a(qh,"graduationOnChain");function Wh(e,t){const n=e.params;if(t<0n||t>n.curveLots)throw new Error(`lotsSold ${t} is outside [0, ${n.curveLots}]`);const r=n.curveLots-t;return t<n.openWindowLots&&n.openWindowMaxLots<r?n.openWindowMaxLots:r}a(Wh,"maxBuyLots");function zh(e,t,n){if(n<=0n)return 0n;const r=Wh(e,t);if(r<=0n)return 0n;const o=Xe(e).curve;const i=a(d=>Ho(o,t,d).total<=n,"fits");if(!i(1n))return 0n;let s=1n;let c=r;while(s<c){const d=(s+c+1n)/2n;if(i(d))s=d;else c=d-1n}return s}a(zh,"lotsForKas");function $6(e,t,n){const r=zh(e,t,n);const o=r===0n?0n:Ho(Xe(e).curve,t,r).total;return{lots:r,tokens:r*e.params.lot,total:o,leftover:n-o}}a($6,"buyForKas");function L6(e,t){if(t<0n)throw new Error("tokens must be non-negative");return t/e.params.lot}a(L6,"lotsForTokens");function R6(e,t){if(t<=0n)return void 0;const n=Xe(e).curve;const r=a(s=>{try{return za(n,t,s).total}catch{return-1n}},"net");if(r(t)<Do)return void 0;let o=1n;let i=t;while(o<i){const s=(o+i)/2n;if(r(s)>=Do)i=s;else o=s+1n}return o}a(R6,"minSellLots");function U6(e){return e<=0n?0n:e/lt}a(U6,"poolLegForKas");export{La as a,yt as b,wn as c,bo as d,ho as e,N as f,D as g,at as h,br as i,Q as j,E as k,h as l,_ as m,M as n,wo as o,se as p,dg as q,tt as r,de as s,Xu as t,vo as u,s1 as v,vn as w,c1 as x,wr as y,nt as z,Ve as A,Xi as B,kt as C,xr as D,wt as E,Yu as F,Cc as G,d1 as H,So as I,Ua as J,vr as K,Jt as L,Ao as M,To as N,Ec as O,Oc as P,Ic as Q,Eo as R,Oo as S,Sn as T,Ar as U,Xt as V,kg as W,il as X,rs as Y,sl as Z,cl as _,Uc as $,wg as aa,xg as ba,Tn as ca,Cr as da,Zi as ea,es as fa,Lc as ga,rl as ha,_o as ia,dl as ja,Qn as ka,Tr as la,Pr as ma,xt as na,rt as oa,ts as pa,ns as qa,Rc as ra,ul as sa,vg as ta,ll as ua,Ba as va,vt as wa,Sg as xa,Ag as ya,Tg as za,ml as Aa,os as Ba,Bg as Ca,Kg as Da,cs as Ea,kl as Fa,ds as Ga,wl as Ha,xl as Ia,ot as Ja,Ka,us as La,F as Ma,er as Na,Fg as Oa,Fa as Pa,Dg as Qa,$o as Ra,Lo as Sa,Be as Ta,Le as Ua,ps as Va,Pn as Wa,tr as Xa,Or as Ya,Yt as Za,Dc as _a,Da as $a,Ha as ab,ja as bb,Qt as cb,Pl as db,Cn as eb,En as fb,On as gb,Hc as hb,Hg as ib,Vg as jb,St as kb,ms as lb,Tl as mb,Wg as nb,gs as ob,jc as pb,_l as qb,e0 as rb,r0 as sb,o0 as tb,Vc as ub,Gc as vb,qc as wb,a0 as xb,Lt as yb,Rt as zb,_n as Ab,Ir as Bb,Va as Cb,Rl as Db,X1 as Eb,Ul as Fb,qe as Gb,tk as Hb,c0 as Ib,d0 as Jb,hs as Kb,Nl as Lb,Bl as Mb,Ro as Nb,u0 as Ob,f0 as Pb,Vl as Qb,Gl as Rb,mk as Sb,gk as Tb,p0 as Ub,zc as Vb,m0 as Wb,zl as Xb,b0 as Yb,yk as Zb,ks as _b,In as $b,X as ac,Uo as bc,V as cc,No as dc,ue as ec,$r as fc,st as gc,At as hc,Bo as ic,Ko as jc,Lr as kc,Rr as lc,Ur as mc,Mo as nc,$n as oc,Fo as pc,Tt as qc,qa as rc,Qc as sc,td as tc,w0 as uc,Jl as vc,Xl as wc,x0 as xc,Zc as yc,Do as zc,ed as Ac,Yl as Bc,Ql as Cc,en as Dc,v0 as Ec,Zl as Fc,nd as Gc,Wa as Hc,Ho as Ic,za as Jc,Ja as Kc,vs as Lc,rd as Mc,od as Nc,ad as Oc,id as Pc,tn as Qc,A0 as Rc,As as Sc,dt as Tc,C0 as Uc,tf as Vc,nn as Wc,E0 as Xc,sd as Yc,O0 as Zc,_0 as _c,I0 as $c,Kk as ad,Mk as bd,Xa as cd,$0 as dd,L0 as ed,cd as fd,R0 as gd,Fk as hd,U0 as id,dd as jd,Ut as kd,Dk as ld,ld as md,Hk as nd,rf as od,jk as pd,Vk as qd,Gk as rd,Ts as sd,Qa as td,qk as ud,cf as vd,Cs as wd,Es as xd,pd as yd,df as zd,md as Ad,nw as Bd,Is as Cd,Bt as Dd,jo as Ed,Go as Fd,Fe as Gd,Za as Hd,We as Id,bd as Jd,pf as Kd,hd as Ld,Vo as Md,Bw as Nd,xf as Od,ny as Pd,Kw as Qd,Mw as Rd,Rn as Sd,vf as Td,ke as Ud,Pt as Vd,ut as Wd,nr as Xd,Af as Yd,xd as Zd,Ns as _d,oi as $d,vd as ae,Sd as be,Td as ce,ai as de,Bs as ee,Tf as fe,Pf as ge,Ad as he,Cf as ie,Un as je,Wo as ke,ii as le,iy as me,Br as ne,Nr as oe,Pd as pe,ve as qe,si as re,Ks as se,Cd as te,cy as ue,Ef as ve,dy as we,uy as xe,Ct as ye,ci as ze,Kr as Ae,Ed as Be,zo as Ce,ly as De,Qw as Ee,fy as Fe,Zw as Ge,Nn as He,rr as Ie,le as Je,Yo as Ke,Ms as Le,Fs as Me,py as Ne,ui as Oe,Id as Pe,Ds as Qe,Qo as Re,Zo as Se,li as Te,Ue,$d as Ve,ea as We,Bn as Xe,$f as Ye,fi as Ze,Mt as _e,Lf as $e,Od as af,di as bf,sn as cf,ta as df,na as ef,Hs as ff,Rd as gf,js as hf,Ud as if,Rf as jf,Kn as kf,yy as lf,Ce as mf,ra as nf,by as of,cn as pf,Uf as qf,hy as rf,Nf as sf,mi as tf,Bd as uf,Kd as vf,Md as wf,Fd as xf,Dd as yf,Hd as zf,jd as Af,Vd as Bf,Gd as Cf,qd as Df,gi as Ef,Mf as Ff,Wd as Gf,zd as Hf,Jd as If,Xd as Jf,ky as Kf,yi as Lf,oa as Mf,bi as Nf,B as Of,Df as Pf,Dt as Qf,Vf as Rf,Gf as Sf,wy as Tf,Yd as Uf,qf as Vf,jf as Wf,xy as Xf,vy as Yf,Sy as Zf,Ex as _f,Ox as $f,Wf as ag,_x as bg,Ix as cg,Z as dg,$x as eg,zf as fg,hi as gg,Vs as hg,Jf as ig,lt as jg,Xf as kg,Ay as lg,Yf as mg,Zd as ng,eu as og,qs as pg,dn as qg,Vr as rg,Qd as sg,Et as tg,aa as ug,Ty as vg,tu as wg,Ht as xg,Gr as yg,Gs as zg,ki as Ag,wi as Bg,nu as Cg,xi as Dg,qr as Eg,Py as Fg,ep as Gg,tp as Hg,ru as Ig,Ws as Jg,qx as Kg,np as Lg,Cy as Mg,rp as Ng,op as Og,Wx as Pg,ap as Qg,ip as Rg,Qe as Sg,ia as Tg,ou as Ug,un as Vg,Ey as Wg,Oy as Xg,sp as Yg,cp as Zg,Ee as _g,ev as $g,_y as ah,vi as bh,tv as ch,fp as dh,pp as eh,nv as fh,rv as gh,ov as hh,zs as ih,av as jh,iv as kh,sv as lh,Iy as mh,iu as nh,$y as oh,mp as ph,cv as qh,dv as rh,uv as sh,lv as th,Js as uh,Xs as vh,su as wh,gp as xh,vp as yh,ua as zh,Ky as Ah,My as Bh,Fy as Ch,Dy as Dh,jt as Eh,ec as Fh,lu as Gh,Pp as Hh,te as Ih,Op as Jh,_p as Kh,nc as Lh,Ip as Mh,rc as Nh,$p as Oh,Vv as Ph,Gv as Qh,Lp as Rh,Rp as Sh,Wy as Th,zy as Uh,Jy as Vh,Xy as Wh,rS as Xh,Oe as Yh,Yy as Zh,oS as _h,ze as $h,Np as ai,De as bi,pS as ci,mS as di,Xr as ei,oc as fi,Mp as gi,Fp as hi,Je as ii,Dp as ji,la as ki,or as li,tb as mi,Hp as ni,Yr as oi,nb as pi,rb as qi,ob as ri,ab as si,ib as ti,sb as ui,Ti as vi,ar as wi,OS as xi,jp as yi,Ne as zi,Ze as Ai,_e as Bi,fa as Ci,Vp as Di,pa as Ei,ln as Fi,Ot as Gi,fn as Hi,Pi as Ii,Vt as Ji,Gt as Ki,ce as Li,ne as Mi,pn as Ni,ft as Oi,Mn as Pi,Ie as Qi,Qr as Ri,fu as Si,Zr as Ti,Fn as Ui,eo as Vi,Dn as Wi,to as Xi,no as Yi,sr as Zi,ro as _i,oo as $i,cr as aj,ao as bj,io as cj,mn as dj,r2 as ej,dr as fj,pt as gj,co as hj,ga as ij,ya as jj,Se as kj,pe as lj,me as mj,lb as nj,ur as oj,ac as pj,ba as qj,gn as rj,ha as sj,lr as tj,Ke as uj,Ci as vj,Hn as wj,qt as xj,so as yj,He as zj,pb as Aj,mu as Bj,ic as Cj,Ei as Dj,sc as Ej,gu as Fj,pr as Gj,cc as Hj,dc as Ij,fr as Jj,Wp as Kj,bu as Lj,hu as Mj,mb as Nj,_2 as Oj,yu as Pj,Xp as Qj,_i as Rj,Yp as Sj,bn as Tj,yn as Uj,j2 as Vj,Qp as Wj,Zp as Xj,em as Yj,ku as Zj,yb as _j,bb as $j,r8 as ak,tm as bk,o8 as ck,a8 as dk,i8 as ek,s8 as fk,c8 as gk,hb as hk,d8 as ik,nm as jk,kb as kk,u8 as lk,l8 as mk,f8 as nk,p8 as ok,wb as pk,wu as qk,$i as rk,rm as sk,xu as tk,Li as uk,Ri as vk,Ui as wk,Ni as xk,om as yk,jn as zk,uc as Ak,xb as Bk,Bi as Ck,vb as Dk,lc as Ek,ka as Fk,Sb as Gk,Ab as Hk,m8 as Ik,Tb as Jk,Pb as Kk,Ii as Lk,am as Mk,fc as Nk,_t as Ok,Su as Pk,sm as Qk,Cb as Rk,Eb as Sk,b8 as Tk,h8 as Uk,Ob as Vk,wa as Wk,Ib as Xk,A8 as Yk,$b as Zk,T8 as _k,P8 as $k,C8 as al,dm as bl,Au as cl,ye as dl,Nb as el,Bb as fl,Kb as gl,I8 as hl,fm as il,et as jl,Tu as kl,N8 as ll,B8 as ml,Wb as nl,pm as ol,zb as pl,hn as ql,Qb as rl,Zb as sl,eh as tl,mm as ul,va as vl,yc as wl,rh as xl,oh as yl,Ae as zl,Eu as Al,Wt as Bl,mt as Cl,Sa as Dl,xm as El,Ou as Fl,lo as Gl,Sm as Hl,Am as Il,Tm as Jl,bc as Kl,_u as Ll,Mi as Ml,Aa as Nl,Vn as Ol,Ta as Pl,hc as Ql,Y as Rl,sh as Sl,ch as Tl,Pa as Ul,Pm as Vl,Ca as Wl,fo as Xl,Gn as Yl,Me as Zl,qn as _l,we as $l,Iu as am,x3 as bm,v3 as cm,kn as dm,kc as em,lh as fm,Cm as gm,Lu as hm,fh as im,$u as jm,_3 as km,yh as lm,Em as mm,gt as nm,bh as om,hh as pm,Ru as qm,K3 as rm,wc as sm,Uu as tm,Om as um,Im as vm,W3 as wm,Sh as xm,$m as ym,Rm as zm,Um as Am,Xe as Bm,Mu as Cm,Bm as Dm,xc as Em,Km as Fm,Mm as Gm,po as Hm,Fu as Im,Du as Jm,Hu as Km,Sc as Lm,ju as Mm,Hm as Nm,Ea as Om,Oh as Pm,mo as Qm,_h as Rm,Ih as Sm,go as Tm,yo as Um,Gm as Vm,zt as Wm,qm as Xm,$h as Ym,Rh as Zm,_a as _m,gr as $m,Nh as an,Ia as bn,Bh as cn,yr as dn,Fi as en,Di as fn,mT as gn,Mh as hn,gT as in,Dh as jn,Ym as kn,jh as ln,Qm as mn,Zm as nn,Vu as on,tg as pn,ng as qn,Gh as rn,rg as sn,og as tn,qh as un,Wh as vn,zh as wn,$6 as xn,L6 as yn,R6 as zn,U6 as An};
|