Skip to content

Commit 233608a

Browse files
committed
fix withdraw vara
1 parent b336169 commit 233608a

File tree

10 files changed

+180
-1560
lines changed

10 files changed

+180
-1560
lines changed

scripts/package-lock.json

Lines changed: 148 additions & 1548 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"description": "",
2020
"dependencies": {
2121
"@polkadot/api": "^10.11.2",
22-
"@invariant-labs/vara-sdk": "0.1.14",
22+
"@invariant-labs/vara-sdk": "file:../sdk",
2323
"dotenv": "^16.4.5"
2424
},
2525
"devDependencies": {
2 Bytes
Binary file not shown.
208 Bytes
Binary file not shown.

sdk/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@invariant-labs/vara-sdk",
3-
"version": "0.1.17",
3+
"version": "0.1.18",
44
"collaborators": [
55
"Invariant Labs"
66
],

sdk/src/consts.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,15 @@ export const CONCENTRATION_FACTOR = 1.00001526069123
6666
export const VARA_ADDRESS: HexString =
6767
'0x0000000000000000000000000000000000000000000000000000000000000000'
6868
export const TESTNET_INVARIANT_ADDRESS: HexString =
69-
'0xbe6b7d437dafbbdd983a153ca594ae32abebcd42450b4914a01fcbd6d7a59264'
69+
'0x876dce24e2d48e6a8aacd3617e7394641faed241651e8fd75a0f555735a38a44'
7070
export const TESTNET_BTC_ADDRESS: HexString =
71-
'0x3d35d6eee42ee2b89490295e591d205ac94f01446b4a27a8ba21522f474caffc'
71+
'0x1257026dee9ebb485256a592f37ed69f2a809dae6a6eb817bc899a9394e396b8'
7272
export const TESTNET_ETH_ADDRESS: HexString =
73-
'0xbbef6ca66fd7ec80bd7800b0c1b5b67dbef041931c5e76a0f318ef3025868711'
73+
'0x5e29b92984099dba39d80d50b86a8e18c262b9b5a8eb7ce0b1a6894178484d63'
7474
export const TESTNET_USDC_ADDRESS: HexString =
75-
'0x79973b6c7cec41ea24101d604d2d33d9aa3d9482581dd57701a50773c8822cfc'
75+
'0x866234d722106e9ca759c8d5af57e6ce0b5eea8861ad766f2d162be93dd8d4e1'
7676
export const TESTNET_SOL_ADDRESS: HexString =
77-
'0x41c273ed8b4eb1d559bd709fba24608730f83b0225d58b55ee6bd067fc3b40aa'
77+
'0x8e56e6c1e11d40232792a594c106418a6378c6dde69f17914d37e668906a9a66'
7878
export const TESTNET_AZERO_ADDRESS: HexString =
79-
'0x7e0bf68153c2444c762b9cd9fec0e8ff4f8f48c733db64dbdf9336354af6ffa4'
79+
'0x3679045a0d3af2967fd0241cca045ada83eabb8c85965253d513eaad4cd5bce8'
8080

sdk/tests/vara-deposits.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ describe('vara-deposits', async function () {
7777
await assertVaraBalanceChange(amount, async () => {
7878
await invariant.withdrawVara(admin, amount)
7979
})
80+
await assertVaraBalanceChange(0n, async () => {
81+
await invariant.withdrawVara(admin, null)
82+
})
8083
})
8184

8285
it('deposit and withdraw failures', async function () {

src/e2e/gtest/balances_vara.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ fn test_vara_withdraw() {
6767
sys.claim_value_from_mailbox(REGULAR_USER_1);
6868
assert_eq!(sys.balance_of(INVARIANT_ID), 0);
6969
assert_eq!(sys.balance_of(REGULAR_USER_1), vara_mint);
70+
71+
let value = withdraw_vara(&invariant, REGULAR_USER_1, vara_mint.into(), None::<&str>);
72+
sys.claim_value_from_mailbox(REGULAR_USER_1);
73+
assert_eq!(sys.balance_of(INVARIANT_ID), 0);
74+
assert_eq!(sys.balance_of(REGULAR_USER_1), vara_mint);
7075
}
7176

7277
#[test]

src/invariant_service.rs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -728,12 +728,24 @@ where
728728
pub fn withdraw_vara(&mut self, value: Option<TokenAmount>) -> TokenAmount {
729729
panicking!(|| {
730730
let invariant = InvariantStorage::as_mut();
731+
let token = &VARA_ADDRESS;
732+
let caller = &msg::source();
731733

732-
let value = invariant.decrease_token_balance(&VARA_ADDRESS, &msg::source(), value)?;
734+
let value = match value {
735+
Some(value) => {
736+
if value.get() == 0.into() {
737+
return Err(InvariantError::AmountIsZero);
738+
}
739+
740+
invariant.decrease_token_balance(&token, &caller, Some(value))?
741+
}
742+
None => invariant
743+
.decrease_token_balance(&token, &caller, None)
744+
.unwrap_or(TokenAmount::new(0.into())),
745+
};
733746

734747
// Reply has to be hardcoded since sails
735748
// doesn't allow for specifying value in the reply yet
736-
gstd::dbg!(value.0.as_u128());
737749
reply(("Service", "WithdrawVara", value), value.0.as_u128())
738750
.expect("Failed to send message");
739751
exec::leave();

0 commit comments

Comments
 (0)