Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Push notifications #100

Closed
wants to merge 75 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
b54653b
update localsecret and secret-contract-optimizer versions
darwinzer0 May 13, 2024
5b80e60
remove decoy code
darwinzer0 May 14, 2024
822a306
update authors
darwinzer0 May 14, 2024
ad97a47
update cosmwasm-std, cosmwasm-storage, and secret toolkit versions
darwinzer0 May 14, 2024
32bd10c
fix tx history store as Addr bug
darwinzer0 May 15, 2024
22b2ff5
remove legacy transfer
darwinzer0 May 16, 2024
fba3895
dev: start dwb and remove denom from history storage
darwinzer0 May 18, 2024
c0a034e
adding rng
darwinzer0 May 18, 2024
3108d7a
balances key -> canonical addr
darwinzer0 May 18, 2024
a24d205
dev: settling owner in dwb
darwinzer0 May 19, 2024
3b538af
dwb array development
darwinzer0 May 22, 2024
e84160c
remove condition in constant_time_release
darwinzer0 May 23, 2024
d396dcd
fix constant time operations for saturated dwb
darwinzer0 May 25, 2024
7fd21bb
cleanup
darwinzer0 May 25, 2024
18a0540
fix random range
darwinzer0 May 25, 2024
448a626
fix random range for modulo bias
darwinzer0 May 25, 2024
9b56d0a
make list len u16 and handle full list
darwinzer0 May 25, 2024
338fc1a
dev: unsaturated buffer handling
darwinzer0 May 25, 2024
100dd72
query balance include dwb
darwinzer0 May 25, 2024
293f8af
start on txs query
darwinzer0 May 25, 2024
3e273f9
dev: handle undersaturated dwb
blake-regalia May 26, 2024
be5d6e9
query_transactions dev
darwinzer0 May 26, 2024
e556e98
Merge branch 'dwbs' into undersaturated
darwinzer0 May 26, 2024
f091807
Merge pull request #1 from SolarRepublic/undersaturated
darwinzer0 May 26, 2024
ecee6c5
query transactions w/ binary search
darwinzer0 Jun 4, 2024
069259e
cleanup
darwinzer0 Jun 4, 2024
32a42fd
tx history, plus transfer testing
darwinzer0 Jun 8, 2024
925f06c
add query balance to test
darwinzer0 Jun 8, 2024
554de79
move add recipient to dwb impl and perform mint
darwinzer0 Jun 11, 2024
d907276
dwb for additional tx types
darwinzer0 Jun 14, 2024
090463f
update transfer test for new mint settling
darwinzer0 Jun 14, 2024
fbdafa3
deposit and cleanup
darwinzer0 Jun 15, 2024
8cae7b3
fix wasm compilation, tests
darwinzer0 Jun 15, 2024
aa75d22
add TESTING dwb query
darwinzer0 Jun 15, 2024
b5093f1
update secretdev to localsecret
darwinzer0 Jun 15, 2024
8212dbf
add gas logging for testing
darwinzer0 Jun 16, 2024
e06150b
fix: R5a. and reuse released addr
blake-regalia Jun 27, 2024
c2d6ef9
fix: use existing entry address
blake-regalia Jun 27, 2024
5fddb99
Merge pull request #6 from SolarRepublic/dwbs-anti-random
darwinzer0 Jun 27, 2024
6a3a032
dev: bitwise-trie of stored balances
blake-regalia Jun 30, 2024
3d7de8b
dev: stored balances todos
darwinzer0 Jul 9, 2024
8d2d83e
update query_transactions
darwinzer0 Jul 10, 2024
5bccca2
refactor stored_balance to use stored_entry
darwinzer0 Jul 10, 2024
86cd753
dev: add child loop when inserting dwb entry
darwinzer0 Jul 10, 2024
c199827
comments
darwinzer0 Jul 10, 2024
06e82d7
dev: inc bit_pos
darwinzer0 Jul 10, 2024
bcd8938
dev: init btsb
darwinzer0 Jul 10, 2024
6ecd16b
dev: all unit tests pass with stored balances
darwinzer0 Jul 13, 2024
239bcc3
Merge pull request #8 from SolarRepublic/btsb-darwinzer0
blake-regalia Jul 14, 2024
a630732
dev: btsb -> btbe
blake-regalia Jul 14, 2024
e9986fc
dev: integration tests
blake-regalia Jul 31, 2024
f7e1d0c
fix: dwb_entry recipient and hkdf size
blake-regalia Aug 2, 2024
8e2fc97
style: x cfg macro
blake-regalia Aug 2, 2024
df34e04
all tracker code using cfg(gas_tracking)
darwinzer0 Aug 2, 2024
ceb74bf
Merge pull request #9 from SolarRepublic/btsb
darwinzer0 Aug 2, 2024
9a9c98c
chore: upgrade neutrino
blake-regalia Aug 2, 2024
b72211a
Merge pull request #10 from SolarRepublic/final-integration
blake-regalia Aug 2, 2024
3bbaa01
style: cleanup
blake-regalia Aug 2, 2024
d9abb00
fix: gas tracking response
blake-regalia Aug 2, 2024
bae3fd8
dev: snip50
darwinzer0 Aug 2, 2024
5d8d4b6
unit tests btbe
darwinzer0 Aug 3, 2024
2291658
cargo fmt
darwinzer0 Aug 3, 2024
4a91f5c
dev: transfer from
blake-regalia Aug 3, 2024
79e898e
Merge remote-tracking branch 'origin/dwb-s50' into final-integration
blake-regalia Aug 3, 2024
3ad29b9
dev: gas evaporation
blake-regalia Aug 3, 2024
45399d0
fix: tweak gas evaporation params
blake-regalia Aug 3, 2024
1f20825
fix: tweak gas evaporation params
blake-regalia Aug 3, 2024
44af4fc
style: code cleanup
blake-regalia Aug 3, 2024
cf0ef65
fix: inspectability
blake-regalia Aug 3, 2024
cb85125
fix: make evaporation optional
blake-regalia Aug 5, 2024
54fe07c
Merge pull request #12 from SolarRepublic/final-integration
blake-regalia Aug 5, 2024
4bdea0c
remove prng store, update create viewing key to make entropy optional
darwinzer0 Aug 8, 2024
4cd963c
Merge pull request #13 from SolarRepublic/no-prng-2
darwinzer0 Aug 8, 2024
9e62c8e
dev: snip52+53 implementation for mint, transfer, batch transfer, sen…
darwinzer0 Oct 15, 2024
055805c
dev: add remainder of notifications
darwinzer0 Oct 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add gas logging for testing
darwinzer0 committed Jun 16, 2024
commit 8212dbf79908933bc0639c5161376a0bd30c39e2
59 changes: 55 additions & 4 deletions src/contract.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/// This contract implements SNIP-20 standard:
/// https://github.com/SecretFoundation/SNIPs/blob/master/SNIP-20.md
use cosmwasm_std::{
entry_point, to_binary, Addr, BankMsg, Binary, BlockInfo, CanonicalAddr, Coin, CosmosMsg, Deps, DepsMut, Env, MessageInfo, Response, StdError, StdResult, Storage, Uint128
entry_point, to_binary, Addr, Api, BankMsg, Binary, BlockInfo, CanonicalAddr, Coin, CosmosMsg, Deps, DepsMut, Env, MessageInfo, Response, StdError, StdResult, Storage, Uint128
};
use secret_toolkit::permit::{Permit, RevokedPermits, TokenPermissions};
use secret_toolkit::utils::{pad_handle_result, pad_query_result};
@@ -1161,10 +1161,15 @@ fn try_transfer_impl(
denom: String,
memo: Option<String>,
block: &cosmwasm_std::BlockInfo,
logs: &mut Vec<(String, String)>,
) -> StdResult<()> {
let raw_sender = deps.api.addr_canonicalize(sender.as_str())?;
let raw_recipient = deps.api.addr_canonicalize(recipient.as_str())?;

// TESTING
let gas = deps.api.check_gas()?;
logs.push(("gas1".to_string(), format!("{gas}")));

perform_transfer(
deps.storage,
rng,
@@ -1175,6 +1180,9 @@ fn try_transfer_impl(
denom,
memo,
block,
// TESTING
deps.api,
logs,
)?;

Ok(())
@@ -1193,6 +1201,10 @@ fn try_transfer(
let recipient: Addr = deps.api.addr_validate(recipient.as_str())?;

let symbol = CONFIG.load(deps.storage)?.symbol;

// TESTING
let mut logs = vec![];

try_transfer_impl(
&mut deps,
rng,
@@ -1202,11 +1214,20 @@ fn try_transfer(
symbol,
memo,
&env.block,
&mut logs,
)?;

// TESTING
let mut resp = Response::new()
.set_data(to_binary(&ExecuteAnswer::Transfer { status: Success })?);
for log in logs {
resp = resp.add_attribute_plaintext(log.0, log.1);
}

Ok(
Response::new()
.set_data(to_binary(&ExecuteAnswer::Transfer { status: Success })?)
//Response::new()
// .set_data(to_binary(&ExecuteAnswer::Transfer { status: Success })?)
resp
)
}

@@ -1230,6 +1251,8 @@ fn try_batch_transfer(
symbol.clone(),
action.memo,
&env.block,
// TESTING
&mut vec![],
)?;
}

@@ -1293,6 +1316,8 @@ fn try_send_impl(
denom,
memo.clone(),
block,
// TESTING
&mut vec![],
)?;

try_add_receiver_api_callback(
@@ -1448,6 +1473,9 @@ fn try_transfer_from_impl(
denom,
memo,
&env.block,
// TESTING
deps.api,
&mut vec![],
)?;

Ok(())
@@ -1956,13 +1984,24 @@ fn perform_transfer(
denom: String,
memo: Option<String>,
block: &BlockInfo,
// TESTING
api: &dyn Api,
logs: &mut Vec<(String, String)>,
) -> StdResult<()> {
// first store the tx information in the global append list of txs and get the new tx id
let tx_id = store_transfer_action(store, from, sender, to, amount, denom, memo, block)?;

// TESTING
let gas = api.check_gas()?;
logs.push(("gas2".to_string(), format!("{gas}")));

// load delayed write buffer
let mut dwb = DWB.load(store)?;

// TESTING
let gas = api.check_gas()?;
logs.push(("gas3".to_string(), format!("{gas}")));

let transfer_str = "transfer";
// settle the owner's account
dwb.settle_sender_or_owner_account(store, rng, from, tx_id, amount, transfer_str)?;
@@ -1971,11 +2010,23 @@ fn perform_transfer(
dwb.settle_sender_or_owner_account(store, rng, sender, tx_id, 0, transfer_str)?;
}

// TESTING
let gas = api.check_gas()?;
logs.push(("gas4".to_string(), format!("{gas}")));

// add the tx info for the recipient to the buffer
dwb.add_recipient(store, rng, to, tx_id, amount)?;

// TESTING
let gas = api.check_gas()?;
logs.push(("gas5".to_string(), format!("{gas}")));

DWB.save(store, &dwb)?;

// TESTING
let gas = api.check_gas()?;
logs.push(("gas6".to_string(), format!("{gas}")));

Ok(())
}

@@ -2391,7 +2442,7 @@ mod tests {
assert_ne!(1000, BalancesStore::load(&deps.storage, &alice_addr));

let dwb = DWB.load(&deps.storage).unwrap();
//println!("DWB: {dwb:?}");
println!("DWB: {dwb:?}");
// assert we have decremented empty_space_counter
assert_eq!(62, dwb.empty_space_counter);
// assert first entry has correct information for alice