Skip to content

Commit 0aff956

Browse files
authored
Merge pull request #156 from phertyameen/feat/atomicBatch
feat(batch): add atomic batch transaction support
2 parents 6623c1c + 0b6f280 commit 0aff956

6 files changed

Lines changed: 71 additions & 2 deletions

File tree

File renamed without changes.

apps/api-service/src/transection/transactions.service.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { getRepositoryToken } from "@nestjs/typeorm";
33
import { BadRequestException } from "@nestjs/common";
44
import { TransactionsService } from "./transactions.service";
55
import { Transaction, TxStatus, TxType } from "./transaction.entity";
6-
import { Granularity } from "./dto/metrics-query.dto";
6+
import { Granularity } from "./dto/.dto ";
77

88
function makeTx(overrides: Partial<Transaction> = {}): Transaction {
99
return Object.assign(new Transaction(), {

apps/api-service/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@
2323
"@/*": ["src/*"]
2424
}
2525
},
26-
"include": ["src/**/*", "src/transection/dto/metrics-query.dto.ts"],
26+
"include": ["src/**/*", "src/transection/dto/.dto .ts"],
2727
"exclude": ["node_modules", "dist"]
2828
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#[test]
2+
fn test_batch_set_metadata() {
3+
let mut deps = mock_dependencies();
4+
5+
let metadata = mock_metadata();
6+
7+
let msgs = vec![
8+
BatchMsg::SetMetadata {
9+
token_id: "1".to_string(),
10+
metadata: metadata.clone(),
11+
},
12+
BatchMsg::SetMetadata {
13+
token_id: "2".to_string(),
14+
metadata,
15+
},
16+
];
17+
18+
let res = execute_batch(
19+
deps.as_mut(),
20+
mock_env(),
21+
mock_info("owner", &[]),
22+
msgs,
23+
);
24+
25+
assert!(res.is_ok());
26+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
pub fn execute(
2+
deps: DepsMut,
3+
env: Env,
4+
info: MessageInfo,
5+
msg: ExecuteMsg,
6+
) -> Result<Response, StdError> {
7+
match msg {
8+
ExecuteMsg::SetMetadata { token_id, metadata } => {
9+
execute_set_metadata(deps, env, info, token_id, metadata)
10+
}
11+
ExecuteMsg::UpdateMetadata { token_id, metadata } => {
12+
execute_update_metadata(deps, env, info, token_id, metadata)
13+
}
14+
ExecuteMsg::Batch { msgs } => execute_batch(deps, env, info, msgs),
15+
}
16+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#[cw_serde]
2+
pub enum ExecuteMsg {
3+
SetMetadata {
4+
token_id: String,
5+
metadata: PropertyMetadata,
6+
},
7+
UpdateMetadata {
8+
token_id: String,
9+
metadata: PropertyMetadata,
10+
},
11+
12+
Batch {
13+
msgs: Vec<BatchMsg>,
14+
},
15+
}
16+
17+
#[cw_serde]
18+
pub enum BatchMsg {
19+
SetMetadata {
20+
token_id: String,
21+
metadata: PropertyMetadata,
22+
},
23+
UpdateMetadata {
24+
token_id: String,
25+
metadata: PropertyMetadata,
26+
},
27+
}

0 commit comments

Comments
 (0)