Skip to content

Commit 185f12a

Browse files
committed
Support transfers with 24h validity period
Signed-off-by: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
1 parent b93c2cf commit 185f12a

34 files changed

+612
-453
lines changed

daml/dars.lock

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ splice-amulet 0.1.11 9824927cdb455f833867b74c01cffcd8cb8cc5edd4d2273cea1329b708e
55
splice-amulet 0.1.12 95a88ff9ffd509e097802ecf3bbd58c83a5dff408e439cca4e2105ebd2cd0760
66
splice-amulet 0.1.13 6e9fc50fb94e56751b49f09ba2dc84da53a9d7cff08115ebb4f6b7a12d0c990c
77
splice-amulet 0.1.14 3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1
8-
splice-amulet 0.1.15 becac25fb1aae27eb95c51a9e280b96bd5d4dad3d0355165218b146fe206b79c
8+
splice-amulet 0.1.15 a2d29d04133b98c53c80e7e40cf7a130fcf1d94b4cd15117fe6131aadaac64df
99
splice-amulet 0.1.2 1446ffdf23326cef2de97923df96618eb615792bea36cf1431f03639448f1645
1010
splice-amulet 0.1.3 0d89016d5a90eb8bced48bbac99e81c57781b3a36094b8d48b8e4389851e19af
1111
splice-amulet 0.1.4 a36ef8888fb44caae13d96341ce1fabd84fc9e2e7b209bbc3caabb48b6be1668
@@ -22,7 +22,7 @@ splice-amulet-name-service 0.1.12 557a74491324790b5cf5a379f2481ab1cd2c8b75530858
2222
splice-amulet-name-service 0.1.13 0e8c7e1cb828336bb4d537f6c4ecd94128b94733eb2ae1f55b5962757d357b4b
2323
splice-amulet-name-service 0.1.14 6cb1318176e758c256c2e385f87b86c5060e80fb68a72e8ceb08ac5f9045fff2
2424
splice-amulet-name-service 0.1.15 d4724b90dce9fb08badbb367962d237710b3a603e4f57806a1b0af308cc70fdb
25-
splice-amulet-name-service 0.1.16 afe997d1ab610b30543608f37f00ea3eaf197896ce258dcd7057354c0bda8dd1
25+
splice-amulet-name-service 0.1.16 13e43c028d895f25fce529f792df03a2e40eb624129eeb045beaca65a12eac84
2626
splice-amulet-name-service 0.1.2 711a2974d65e6ebd149704da75f3f71234798687ab895b92f066c865dbdeeabb
2727
splice-amulet-name-service 0.1.3 beb4b85f3f0cf36dfb93fc917d3ac218ee5d41b6e70604720cb228d85e168ee0
2828
splice-amulet-name-service 0.1.4 053c7f4c2a77312e7d465a4fa7dc8cb298754ad12c0c987a7c401bd724e65efc
@@ -31,8 +31,8 @@ splice-amulet-name-service 0.1.6 a208aab2c4a248ab2eff352bd382f8b3bbadc92464123db
3131
splice-amulet-name-service 0.1.7 ba7806d9b2d593eac74a050161c54ae1325d170bf175cb66a9c1e5e5ffb88c3d
3232
splice-amulet-name-service 0.1.8 efeb3f9b2b92e55fac4ec2d6164f95407a01477240c7465e576df4e310f54bd3
3333
splice-amulet-name-service 0.1.9 f1b5915ad45ded616f43f83c735b7ee158b5eb58abe758a721e50eee19b3e531
34-
splice-amulet-name-service-test 0.1.19 29b528c083fff7a59ef40d1134a4d6794b635b05eaf7dd9d22b01d331e166fa8
35-
splice-amulet-test 0.1.18 42d4d541be52509d3fb067abf75862abf58f0ba23666588e3c14b60a1b2915dd
34+
splice-amulet-name-service-test 0.1.19 43f19a18abadcf1464af204175fdbfcbdb67e263f4c6eaf35fdb90b9ca42450b
35+
splice-amulet-test 0.1.18 9a3dcb8634c7c7fc6dc8fef9017b7d6b816b42d0754d172b0dc5778c9e4eb839
3636
splice-api-featured-app-v1 1.0.0 7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda
3737
splice-api-token-allocation-instruction-v1 1.0.0 275064aacfe99cea72ee0c80563936129563776f67415ef9f13e4297eecbc520
3838
splice-api-token-allocation-request-v1 1.0.0 6fe848530b2404017c4a12874c956ad7d5c8a419ee9b040f96b5c13172d2e193
@@ -57,16 +57,16 @@ splice-dso-governance 0.1.18 136484875714fcf24c24858e1d573ac756524eeb607c26999fc
5757
splice-dso-governance 0.1.19 759d1cf002fc1225ac43a55d73f0058becce3e62cfb5485c197f2b69ed8d9d98
5858
splice-dso-governance 0.1.2 4206e127be8b111ac84bd7f98bd9dbf03ed489f1642b46ab31a46ee6d688e7e8
5959
splice-dso-governance 0.1.20 996a3b619d6b65ca7812881978c44c650cac119de78f5317d1f317658943001c
60-
splice-dso-governance 0.1.21 220d9a354e41ca22e0d9d3404e06e4a47a41e175b91be7089c7924c072bc9faa
60+
splice-dso-governance 0.1.21 bc20296474b1c365be87e3940c2cf071d9c4b202c2bd829406b0a8010d65cedd
6161
splice-dso-governance 0.1.3 b0ae3cc03e418790305a3c15f761fe495572de5827f8d322fb8b96996b783c13
6262
splice-dso-governance 0.1.4 dc24fd18b4d151cd1e0ff6bfb7438bafb2f50fe076d0f16f50565e60b153a0be
6363
splice-dso-governance 0.1.5 9e3ca1d22ad495dfabf3d61acae3dc1a7718f527f02092280b58cf69edfdc84c
6464
splice-dso-governance 0.1.6 4e7653cfbf7ca249de4507aca9cd3b91060e5489042a522c589d3c4199580cd8
6565
splice-dso-governance 0.1.7 d406eba1132d464605f4dae3edf8cf5ecbbb34bd8edef0e047e7e526d328718c
6666
splice-dso-governance 0.1.8 1790a114f83d5f290261fae1e7e46fba75a861a3dd603c6b4ef6b67b49053948
6767
splice-dso-governance 0.1.9 9ee83bfd872f91e659b8a8439c5b4eaf240bcf6f19698f884d7d7993ab48c401
68-
splice-dso-governance-test 0.1.25 5d771f99e30c92aecb440e5b9661dedd874f7187bd615c709040eb8a2e3cd448
69-
splice-token-standard-test 1.0.9 38967558fe135ee334de81b8babf5fc69e437955e95ff828379d9c145c1a1bec
68+
splice-dso-governance-test 0.1.25 ab842d999b70d0e921e5c282bbc51f1a2307294f56c9623f8ee5f8dbcd5cbce3
69+
splice-token-standard-test 1.0.9 c174e2bcb617f1a0501c6d79d44882c4d2825d4e9ecd30fc4dedcc557b5c558d
7070
splice-token-test-dummy-holding 0.0.1 1cd171c6c42ab46dc9cf12d80c6111369e00cea5cdf054924b4f26ce94b1ef5b
7171
splice-token-test-dummy-holding 0.0.2 4f40fb033ef3db89623642c1b494e846097fa32af138b3864a63aa15937a323d
7272
splice-token-test-trading-app 1.0.0 e5c9847d5a88d3b8d65436f01765fc5ba142cc58529692e2dacdd865d9939f71
@@ -79,9 +79,9 @@ splice-util-featured-app-proxies 1.0.0 48e0c4fe4ea05e3b740404ebe37004ddd741efbdc
7979
splice-util-featured-app-proxies 1.1.0 81dd5a9e5c02d0de03208522a895fb85eeb12fbea4aca7c4ad0ad106f3b0bfce
8080
splice-util-featured-app-proxies 1.2.0 653c48879064332d34af5008bdfd8e349493460e67e62b85e8e7e3392831c842
8181
splice-util-featured-app-proxies 1.2.1 06bab917848ef275317c2539b75c23b94e03ceb55b4a1346936f7832084cd7a6
82-
splice-util-featured-app-proxies-test 1.0.7 44f0eeb89d90fa4e55a8846967fd8a36ee54995def38e799fafcd4f07c0f5566
82+
splice-util-featured-app-proxies-test 1.0.7 0cd5833e7f4a3f10c4b60005722344d9a7447fa0772f101265b208705336f5df
8383
splice-util-token-standard-wallet 1.0.0 1da198cb7968fa478cfa12aba9fdf128a63a8af6ab284ea6be238cf92a3733ac
84-
splice-util-token-standard-wallet-test 1.0.2 499eefe7615aac5788fee3bb2bc2181fcfeb2ec2c9cea9daee22273f434a48fe
84+
splice-util-token-standard-wallet-test 1.0.2 64c3e13162682acaa8b01d5c612eaaf0b76e6af704796e467a58afd9869b9259
8585
splice-validator-lifecycle 0.1.0 cef96fac957362f1fc097120bd13686cac7f84fbc8053afa994a1f9214d9570c
8686
splice-validator-lifecycle 0.1.1 1ddf05c96002914593c929848b786f34c753fb0be07717d1786be177a564aada
8787
splice-validator-lifecycle 0.1.2 57e2f15f9755db1f00e51c52c319294264a21ad71c6bc1e7cd70db4b164c0aaa
@@ -96,7 +96,7 @@ splice-wallet 0.1.11 991842eee48ec3caa3a649e8f47e3544dd7b688ce4b363aa934a83db7da
9696
splice-wallet 0.1.12 b30bb727552cf6b624dbc9a5ff95f6c158e0a654e2e9c5c27bcfe3f5d0f9ada2
9797
splice-wallet 0.1.13 eb6e01efacc3397e23c6be8b9be7db4bf37672211974d69e24b48980e2f98b7e
9898
splice-wallet 0.1.14 690c1d47bac06db419db344d59a7a30c53fa3f5d961943fe1782cfc6c78794d8
99-
splice-wallet 0.1.15 d164bed10c3b9291dc64abed570103903510fb2b49d552340bb4c95b506bcb67
99+
splice-wallet 0.1.15 3bf81a1388dbcfa63d0e60dd4d6aa8e85d1df534b049247d78dd112ce7da9b63
100100
splice-wallet 0.1.2 c162e08a4ec0428bfa870b6d9040989e575c74199c3a80558c62e03196dd5146
101101
splice-wallet 0.1.3 2c35bb4f5084ea66db59717d21750bfd64c43147ef5fd5166615092d592a6917
102102
splice-wallet 0.1.4 141dad2d33b6410b8e1c35a0c4f8f76cb691e4d9a4410ce89f33f373855317e1
@@ -112,7 +112,7 @@ splice-wallet-payments 0.1.11 7266d861727757f3482857a77f25f4d647d8925b469e46938a
112112
splice-wallet-payments 0.1.12 88516902a9f045d3fd3835c8f5c8c6bfe4b44d83fae11369241f1883bb5b3ab4
113113
splice-wallet-payments 0.1.13 0b9250642d3864e6bbea553264dcac0d286104f24efad2fbaf4645520bcb4053
114114
splice-wallet-payments 0.1.14 45b29d6e05b5352c39edde850c66b4535c682b9991b06eec312176b1a48ecab5
115-
splice-wallet-payments 0.1.15 0b2eb2d075714ecbe8bf30fc8f6cd4d2bb5404a1fa61e840ff0a7b79e9356029
115+
splice-wallet-payments 0.1.15 910df7061818c41842fc61e77ddd350accf402acd32b3334e811fd9b4a23c470
116116
splice-wallet-payments 0.1.2 775f5eb9c0249509adda5eb3ea4ee31bb953601168c18880df6f2ff09ec4298a
117117
splice-wallet-payments 0.1.3 b953b3729c81a55e598a364be7d0c0574750df3de12a7a1b53a300f217cb5c5c
118118
splice-wallet-payments 0.1.4 12177f54873c1094ea169874ad0d7838383fd137f302d16356e93f28dfbc0fcc
@@ -121,15 +121,15 @@ splice-wallet-payments 0.1.6 6124379528eeb6fa17ecdab15577c29abb33d0c0d34dc5f2680
121121
splice-wallet-payments 0.1.7 4e3e0d9cdadf80f4bf8f3cd3660d5287c084c9a29f23c901aabce597d72fd467
122122
splice-wallet-payments 0.1.8 e48ea337ee3335c8bb3206a2501ce947ac1a7bdb1825cee8f28bad64f5a7bc4b
123123
splice-wallet-payments 0.1.9 7f4e081ad96f2ccded0c053b0cf5ddddae1139dfc3bb89cefcf77ea70f2cecb7
124-
splice-wallet-test 0.1.18 6feee76504d27b3a85ef3d507575218bd9a09844905eb0cfcbb4bd31162def7c
124+
splice-wallet-test 0.1.18 a81e1731fb392455328de1a283cbd5ea8329a7aadb9dd66465f2f0dcb05c2fca
125125
splitwell 0.1.0 075c76de553ab88383a7c69de134afa82aacfdf8ea8fcfe8852c4b199c3b2669
126126
splitwell 0.1.1 ccb1a0215053062202052e1a052f9214da3fdae5253a6d43e2e155ff4f57fe75
127127
splitwell 0.1.10 d42676a366f7ca7a2409974dd3054aa4d83ab29baa3b2086ad021407b0a1a295
128128
splitwell 0.1.11 03b487fa26a8ef67df0876fb337904624c3fac27f11b7ad2d131a4eab26ee1b4
129129
splitwell 0.1.12 cc047977ee8da70e858f203a14c3fd302c6aaed27be42383e61a026854d76112
130130
splitwell 0.1.13 c2cf7b5fb3c615cdd2c8e14af42f1ca5fe4df8647cb656c7d02a72420152c3dd
131131
splitwell 0.1.14 bf2ec3fec9bcb58ed5e2ff63072a1e4994d0415ea7a0275942be282906a42021
132-
splitwell 0.1.15 973f8a37fed116f26d9d3f2e92be4a9018d0882a3753194b7cd7f15cef24ac50
132+
splitwell 0.1.15 acee1828f38ea39fd59ee135c42a69a7196de971163ae1e4b023ca415a6a1155
133133
splitwell 0.1.2 778edd2c228c6b68198d4d033885b2d0dae7daaee55d7df3edd9dfdf1f10fbd0
134134
splitwell 0.1.3 7cde068cde689584f86a2499689d5cb165264d96496721e24ac6fb909f770a58
135135
splitwell 0.1.4 85557b86cd4f330f093915db1ea26eac5092de6b5ddae0690146f6059c89419b
@@ -138,4 +138,4 @@ splitwell 0.1.6 872da0dd7986fd768930f85d6a7310a94a0ef924e7fbb7bb7a4e149f2b5feb74
138138
splitwell 0.1.7 841d1c9c86b5c8f3a39059459ecd8febedf7703e18f117300bb0ebf4423db096
139139
splitwell 0.1.8 63b8153a08ceb4bf40d807acc5712372c3eac548c266be4d5e92470b4f655515
140140
splitwell 0.1.9 b6267905698d2798b9ef171e27d49fb88e052ec0ec0e0675a3a1b275c7d037d4
141-
splitwell-test 0.1.18 920ac467736768cfca04eea5a27e3191b9e392bd42a9ecfda75821fe4b066ae5
141+
splitwell-test 0.1.18 f89351b2fda5887994834a59a2e8448114ac3d3eef4247cd510c14080498a380

daml/dars/splice-amulet-0.1.15.dar

51.5 KB
Binary file not shown.
19.9 KB
Binary file not shown.
20 KB
Binary file not shown.

daml/dars/splice-wallet-0.1.15.dar

19.9 KB
Binary file not shown.
20.3 KB
Binary file not shown.

daml/dars/splitwell-0.1.15.dar

19.9 KB
Binary file not shown.

daml/splice-amulet-test/daml/Splice/Scripts/TestAmuletBurn.daml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ import Splice.ValidatorLicense
1111

1212
import Splice.Scripts.Util
1313

14+
import Splice.Testing.Registries.AmuletRegistry (advanceToNextRoundChange)
15+
1416
-- | Note to readers: try commenting suffixes of this script out to
1517
-- see the various steps in action.
1618
testAmuletBurn : Script ()
1719
testAmuletBurn = do
1820
-- bootstrap app
1921
app <- setupApp
2022

21-
advanceToNextRoundChange app
23+
advanceToNextRoundChange app.dso
2224

2325
-- -- start issuing
2426
runNextIssuance app

daml/splice-amulet-test/daml/Splice/Scripts/TestDesignExample.daml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ template Escrow
3636
controller p
3737
do LockedAmulet{lock,amulet=locked} <- fetchButArchiveLater (ForOwner with dso; owner = p) lockedAmulet -- archived as part of unlocking
3838
require "lock holder matches locked amulet " ([arbiter] == lock.holders)
39-
result <- exercise lockedAmulet (LockedAmulet_Unlock transferContext.openMiningRound)
40-
let cid = result.amuletSum.amulet
39+
result <- exercise lockedAmulet LockedAmulet_UnlockV2
40+
let cid = result.amuletCid
4141
let transfer = Transfer with
4242
sender = p
4343
provider = arbiter

daml/splice-amulet-test/daml/Splice/Scripts/TestLockAndAmuletExpiry.daml

Lines changed: 4 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@ import Splice.Fees
1616
import Splice.Expiry
1717
import Splice.Round
1818
import Splice.Types
19-
import Splice.RelRound
20-
import Splice.Schedule
2119
import Splice.Testing.Registries.AmuletRegistry.Parameters
20+
import Splice.Testing.Registries.AmuletRegistry (advanceToNextRoundChange)
2221
import Splice.Scripts.Util
2322

2423
import DA.Foldable (forA_)
@@ -33,39 +32,14 @@ scaleAmuletConfig amuletPrice config = AmuletConfig with
3332
packageConfig = config.packageConfig
3433
transferPreapprovalFee = fmap (/ amuletPrice) config.transferPreapprovalFee
3534
featuredAppActivityMarkerAmount = fmap (/ amuletPrice) config.featuredAppActivityMarkerAmount
35+
externalPartyConfigStateTickDuration = config.externalPartyConfigStateTickDuration
3636

3737
test : Script ()
3838
test = script do
3939
DefaultAppWithUsers{..} <- setupDefaultAppWithUsers
40-
advanceToNextRoundChange app -- advance time so we're out of the initial mining round
41-
currentTime <- getTime
40+
advanceToNextRoundChange app.dso -- advance time so we're out of the initial mining round
4241
let amuletPrice = 2.5
4342
config = scaleAmuletConfig amuletPrice defaultAmuletConfig
44-
tickDuration = config.tickDuration
45-
46-
t00_00 = currentTime
47-
t05_00 = addRelRoundN 2 currentTime tickDuration
48-
t07_30 = addRelRoundN 3 currentTime tickDuration
49-
t12_30 = addRelRoundN 5 currentTime tickDuration
50-
t15_00 = addRelRoundN 6 currentTime tickDuration
51-
t17_30 = addRelRoundN 7 currentTime tickDuration
52-
53-
issuingFor0 = days 0
54-
issuingFor3 = issuingFor0 + tickDuration + tickDuration + tickDuration
55-
56-
amuletConfigUsd = defaultAmuletConfig
57-
transferConfigUsd = amuletConfigUsd.transferConfig
58-
issuanceConfig0 = getValueAsOf issuingFor0 amuletConfigUsd.issuanceCurve
59-
issuanceConfig3 = getValueAsOf issuingFor3 amuletConfigUsd.issuanceCurve
60-
openRound0 = OpenMiningRound with dso = app.dso; round = Round 0; amuletPrice; opensAt = t00_00; targetClosesAt = t05_00; issuingFor = issuingFor0; transferConfigUsd; issuanceConfig = issuanceConfig0; tickDuration
61-
openRound3 = openRound0 with round = Round 3; opensAt = t07_30 ; targetClosesAt = t12_30; issuanceConfig = issuanceConfig3
62-
63-
-- Lock expires at T00:12:30
64-
let lockExpiresAt12_30 = TimeLock with holders = [alice.primaryParty]; expiresAt = t12_30; optContext = None
65-
-- Lock expires at T00:15:00
66-
let lockExpiresAt15_00 = TimeLock with holders = [alice.primaryParty]; expiresAt = t15_00; optContext = None
67-
-- Lock expires at T00:17:30
68-
let lockExpiresAt17_30 = TimeLock with holders = [alice.primaryParty]; expiresAt = t17_30; optContext = None
6943

7044
-- This amulet is estimated to expire at round 5.
7145
-- we exploit that there are exactly three open rounds active at any point in time.
@@ -75,60 +49,12 @@ test = script do
7549
let amountExpiresAtRound5 = ExpiringAmount with initialAmount = config.transferConfig.holdingFee.rate * 3.5; createdAt = Round 1; ratePerRound = config.transferConfig.holdingFee
7650
let bounded = amountExpiresAt amountExpiresAtRound5
7751
bounded === Singleton (Round 5)
78-
let (Singleton r) = bounded
79-
estimateOpenRoundCreatedAt config.tickDuration openRound3 (Singleton(addRelRound r (RelRound 2))) === Some (Singleton t15_00)
80-
81-
-- lock expires at T00:12:30 before amulet expires at T00:15:00
82-
let lockExpireBeforeAmulet = doesLockExpireBeforeAmulet openRound3 lockExpiresAt12_30 amountExpiresAtRound5 config.tickDuration
83-
assert lockExpireBeforeAmulet
84-
85-
-- lock expires at T00:15:00 while amulet expires at T00:15:00
86-
let lockExpiresAsAmulet = doesLockExpireBeforeAmulet openRound3 lockExpiresAt15_00 amountExpiresAtRound5 config.tickDuration
87-
assert $ not lockExpiresAsAmulet
88-
89-
-- lock expires at T00:17:30 after amulet expires at T00:15:00
90-
let lockExpiresAfterAmulet = doesLockExpireBeforeAmulet openRound3 lockExpiresAt17_30 amountExpiresAtRound5 config.tickDuration
91-
assert $ not lockExpiresAfterAmulet
92-
93-
let largeAmount = ExpiringAmount with initialAmount = 10000.0; createdAt = Round 1; ratePerRound = config.transferConfig.holdingFee
94-
-- lock expires at T00:12:30 before amulet with large amount, which is regarded as never expires (EstimatedTime.AfterMaxTime)
95-
let lockExpiresBeforeLargeAmulet = doesLockExpireBeforeAmulet openRound3 lockExpiresAt12_30 largeAmount config.tickDuration
96-
assert lockExpiresBeforeLargeAmulet
97-
98-
pure ()
99-
100-
-- From #2336, This test case is to make sure we handle DA.Time overflow
101-
-- in estimateOpenRoundCreatedAt when the amulet amount is too large
102-
testLargeAmuletExpiry : Script ()
103-
testLargeAmuletExpiry = script do
104-
DefaultAppWithUsers{..} <- setupDefaultAppWithUsers
105-
now <- getTime
106-
107-
let amuletPrice = 2.5
108-
configUsd = defaultAmuletConfig
109-
transferConfigAmulet = scaleFees (1.0 / amuletPrice) configUsd.transferConfig
110-
e = ExpiringAmount with initialAmount = 10000.0; createdAt = Round 1; ratePerRound = transferConfigAmulet.holdingFee
111-
Singleton r = amountExpiresAt e
112-
expiringRound = Singleton $ addRelRound r (RelRound 2)
113-
issuingFor = minutes 5
114-
currentMiningRound = OpenMiningRound with
115-
dso = app.dso
116-
round = Round 1
117-
amuletPrice = 1.0
118-
opensAt = now
119-
targetClosesAt = addRelTime now (minutes 5)
120-
issuingFor
121-
transferConfigUsd = configUsd.transferConfig
122-
issuanceConfig = getValueAsOf issuingFor configUsd.issuanceCurve
123-
tickDuration = configUsd.tickDuration
124-
125-
estimateOpenRoundCreatedAt configUsd.tickDuration currentMiningRound expiringRound === Some AfterMaxBound
12652
pure ()
12753

12854
testExpireLockedAmulet : Script ()
12955
testExpireLockedAmulet = do
13056
DefaultAppWithUsers{..} <- setupDefaultAppWithUsers
131-
advanceToNextRoundChange app -- advance time so we're out of the initial mining round
57+
advanceToNextRoundChange app.dso -- advance time so we're out of the initial mining round
13258
passTime (minutes 10) -- pass enough time so that round 2 expires in 10 minutes
13359

13460
-- Locking the amulet with with initialAmount 0.000005 and created at round 2 but with a

0 commit comments

Comments
 (0)