Skip to content

Commit

Permalink
Merge pull request #2624 from demergent-labs/msg_reject
Browse files Browse the repository at this point in the history
Rename `reject` to `msgReject` (breaking changes)
  • Loading branch information
lastmjs authored Jan 31, 2025
2 parents a3c989a + f89a457 commit 3f94771
Show file tree
Hide file tree
Showing 34 changed files with 50 additions and 48 deletions.
Binary file modified canister_templates/experimental.wasm
Binary file not shown.
Binary file modified canister_templates/stable.wasm
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import {
isController,
msgArgData,
msgCaller,
msgReject,
performanceCounter,
reject,
setCertifiedData,
time,
trap
Expand Down Expand Up @@ -75,11 +75,11 @@ export default Canister({
performanceCounter: query([], nat64, () => {
return performanceCounter(0);
}),
reject: query(
msgReject: query(
[text],
Manual(empty),
(message) => {
reject(message);
msgReject(message);
},
{ manual: true }
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,11 @@ export function getTests(icApiCanister: ActorSubclass<_SERVICE>): Test {
expect(result).toBeGreaterThan(0n);
});

it('calls reject on the ic object', async () => {
it('calls msgReject on the ic object', async () => {
const rejectionMessage = 'Rejected!';

await expect(
icApiCanister.reject(rejectionMessage)
icApiCanister.msgReject(rejectionMessage)
).rejects.toThrow(rejectionMessage);
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ export function getTests(
inspectMessageCanister: ActorSubclass<_SERVICE>
): Test {
return () => {
it('calls `ic.acceptMessage` in inspectMessage', async () => {
it('calls `acceptMessage` in inspectMessage', async () => {
const result = await inspectMessageCanister.accessible();
expect(result).toBe(true);
});

it('rejects because `ic.acceptMessage` was not called in inspectMessage', async () => {
it('rejects because `acceptMessage` was not called in inspectMessage', async () => {
await expect(inspectMessageCanister.inaccessible()).rejects.toThrow(
/IC0406/
);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { candidEncode, IDL, msgReply, reject } from 'azle';
import { candidEncode, IDL, msgReject, msgReply } from 'azle';
import {
blob,
bool,
Expand Down Expand Up @@ -75,7 +75,7 @@ export default Canister({
Manual(text),
(message) => {
if (message === 'reject') {
reject(message);
msgReject(message);
return;
}

Expand Down Expand Up @@ -247,7 +247,7 @@ export default Canister({
Manual(text),
(message) => {
if (message === 'reject') {
reject(message);
msgReject(message);
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { _SERVICE } from './dfx_generated/manual_reply/manual_reply.did';

export function getTests(manualReplyCanister: ActorSubclass<_SERVICE>): Test {
return () => {
it('manualUpdate when calling ic.reject', async () => {
it('manualUpdate when calling msgReject', async () => {
const rejectionMessage = 'reject';
const canisterId = getCanisterId('manual_reply');
const expectedErrorMessage = new RegExp(
Expand All @@ -18,7 +18,7 @@ export function getTests(manualReplyCanister: ActorSubclass<_SERVICE>): Test {
).rejects.toThrow(expectedErrorMessage);
});

it('manualUpdate when calling ic.reply', async () => {
it('manualUpdate when calling msgReply', async () => {
const result = await manualReplyCanister.manualUpdate('accept');

expect(result).toBe('accept');
Expand Down Expand Up @@ -103,7 +103,7 @@ export function getTests(manualReplyCanister: ActorSubclass<_SERVICE>): Test {
expect(result).toStrictEqual({ Toxic: null });
});

it('manualQuery when calling ic.reject', async () => {
it('manualQuery when calling msgReject', async () => {
const rejectionMessage = 'reject';
await expect(
manualReplyCanister.manualQuery(rejectionMessage)
Expand All @@ -115,7 +115,7 @@ export function getTests(manualReplyCanister: ActorSubclass<_SERVICE>): Test {
});
});

it('manualQuery when calling ic.reply', async () => {
it('manualQuery when calling msgReply', async () => {
const result = await manualReplyCanister.manualQuery('accept');

expect(result).toBe('accept');
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { reject } from 'azle';
import { msgReject } from 'azle';
import { bool, Canister, empty, Manual, query, text } from 'azle/experimental';

export default Canister({
reject: query(
[text],
Manual(empty),
(message) => {
reject(message);
msgReject(message);
},
{ manual: true }
),
Expand All @@ -17,7 +17,7 @@ export default Canister({
[],
Manual(empty),
() => {
// This errors because neither ic.reject nor ic.reply were called
// This errors because neither msgReject nor msgReply were called
},
{ manual: true }
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import {
isController,
msgArgData,
msgCaller,
msgReject,
performanceCounter,
Principal,
query,
reject,
setCertifiedData,
time,
trap,
Expand Down Expand Up @@ -93,8 +93,8 @@ export default class {
}

@query([IDL.Text], IDL.Empty, { manual: true })
reject(message: string): void {
reject(message);
msgReject(message: string): void {
msgReject(message);
}

// sets up to 32 bytes of certified data
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { candidEncode, IDL, msgReply, query, reject, update } from 'azle';
import { candidEncode, IDL, msgReject, msgReply, query, update } from 'azle';

const Options = IDL.Variant({
Small: IDL.Null,
Expand Down Expand Up @@ -91,7 +91,7 @@ export default class {
@update([IDL.Text], IDL.Text, { manual: true })
manualUpdate(message: string): void {
if (message === 'reject') {
reject(message);
msgReject(message);
return;
}

Expand Down Expand Up @@ -184,7 +184,7 @@ export default class {
@query([IDL.Text], IDL.Text, { manual: true })
manualQuery(message: string): void {
if (message === 'reject') {
reject(message);
msgReject(message);
return;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { IDL, query, reject } from 'azle';
import { IDL, msgReject, query } from 'azle';

export default class {
@query([IDL.Text], IDL.Empty, { manual: true })
reject(message: string): void {
reject(message);
msgReject(message);
}

@query([], IDL.Bool)
Expand All @@ -13,6 +13,6 @@ export default class {

@query([], IDL.Empty, { manual: true })
error(): void {
// This errors because neither ic.reject nor ic.reply were called
// This errors because neither msgReject nor msgReply were called
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { IDL, msgReply, query, reject, update } from 'azle';
import { IDL, msgReject, msgReply, query, update } from 'azle';

export default class {
@query([IDL.Text], undefined, { manual: true })
alwaysRejectQuery(message: string): void {
reject(`reject proptest message: ${message}`);
msgReject(`reject proptest message: ${message}`);
}

@update([IDL.Text], undefined, { manual: true })
alwaysRejectUpdate(message: string): void {
reject(`reject proptest message: ${message}`);
msgReject(`reject proptest message: ${message}`);
}

@query([IDL.Int], IDL.Int, { manual: true })
Expand All @@ -18,7 +18,7 @@ export default class {

msgReply(encoded);
} else {
reject('Odd numbers are rejected');
msgReject('Odd numbers are rejected');
}
}

Expand All @@ -29,7 +29,7 @@ export default class {

msgReply(encoded);
} else {
reject('Odd numbers are rejected');
msgReject('Odd numbers are rejected');
}
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { IDL, query, reject } from 'azle';
import { IDL, msgReject, query } from 'azle';

export default class {
@query([IDL.Text], IDL.Text, { manual: true })
echoReject(message: string): void {
reject(`reject_message proptest message: ${message}`);
msgReject(`reject_message proptest message: ${message}`);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IDL, query, reject } from 'azle';
import { IDL, msgReject, query } from 'azle';

export default class {
@query([], IDL.Text)
Expand All @@ -8,7 +8,7 @@ export default class {

@query([], IDL.Text, { manual: true })
rejectWithMessage(): void {
reject('Rejection with message');
msgReject('Rejection with message');
}

@query
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ mod msg_cycles_accept;
mod msg_cycles_available;
mod msg_cycles_refunded;
mod msg_method_name;
mod msg_reject;
mod msg_reject_msg;
mod msg_reply;
mod notify_raw;
mod performance_counter;
mod reject;
mod reject_code;
mod set_certified_data;
mod set_timer;
Expand Down Expand Up @@ -199,8 +199,10 @@ pub fn register(context: &mut wasmedge_quickjs::Context) {
);

ic.set(
"reject",
context.new_function::<reject::NativeFunction>("").into(),
"msgReject",
context
.new_function::<msg_reject::NativeFunction>("")
.into(),
);

ic.set(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ mod msg_cycles_accept;
mod msg_cycles_available;
mod msg_cycles_refunded;
mod msg_method_name;
mod msg_reject;
mod msg_reject_msg;
mod msg_reply;
mod notify_raw;
mod performance_counter;
mod reject;
mod reject_code;
mod set_certified_data;
mod set_timer;
Expand Down Expand Up @@ -113,7 +113,7 @@ pub fn register(ctx: Ctx) -> Result<()> {
performance_counter::get_function(ctx.clone()),
)?;

ic.set("reject", reject::get_function(ctx.clone()))?;
ic.set("msgReject", msg_reject::get_function(ctx.clone()))?;

ic.set("rejectCode", reject_code::get_function(ctx.clone()))?;

Expand Down
2 changes: 1 addition & 1 deletion src/lib/experimental/ic/azle_ic_experimental.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ export type AzleIcExperimental = {
acceptMessage: () => void;
msgMethodName: () => string;
debugPrint: (...args: any) => void;
reject: (message: string) => void;
msgReject: (message: string) => void;
msgRejectMsg: () => string;
trap: (message: string) => never;
// These calls are intercepted by our IC object and redirected to their
Expand Down
2 changes: 1 addition & 1 deletion src/lib/stable/canister_methods/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export function update<This, Args extends unknown[], Return>(
* @param paramIdlTypes - Optional array of Candid IDL types for the method parameters. The runtime arguments will be decoded using these types.
* @param returnIdlType - Optional Candid IDL type for the method return value. The runtime return value will be encoded using this type.
* @param options - Optional configuration object
* @param options.manual - Optional flag to indicate manual handling of the method's runtime return value. This is meant to be used with `reply` or `reject`, skipping automatic Candid encoding of the runtime return value.
* @param options.manual - Optional flag to indicate manual handling of the method's runtime return value. This is meant to be used with `msgReply` or `msgReject`, skipping automatic Candid encoding of the runtime return value.
* @param options.hidden - Optional flag to indicate that the method should be hidden from the canister's candid interface.
* @remarks
*
Expand Down
2 changes: 1 addition & 1 deletion src/lib/stable/ic_apis/azle_ic_stable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export type AzleIcStable = {
acceptMessage: () => void;
msgMethodName: () => string;
debugPrint: (...args: any) => void;
reject: (message: string) => void;
msgReject: (message: string) => void;
msgRejectMsg: () => string;
trap: (message: string) => never;
// These calls are intercepted by our IC object and redirected to their
Expand Down
2 changes: 1 addition & 1 deletion src/lib/stable/ic_apis/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ export { msgCyclesAccept } from './msg_cycles_accept';
export { msgCyclesAvailable } from './msg_cycles_available';
export { msgCyclesRefunded } from './msg_cycles_refunded';
export { msgMethodName } from './msg_method_name';
export { msgReject } from './msg_reject';
export { msgRejectMsg } from './msg_reject_msg';
export { msgReply } from './msg_reply';
export { notify } from './notify';
export { performanceCounter } from './performance_counter';
export { reject } from './reject';
export { rejectCode, RejectionCode } from './reject_code';
export { setCertifiedData } from './set_certified_data';
export { setTimer } from './set_timer';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* - after a successful inter-canister await from a composite query
* - after an unsuccessful inter-canister await from a composite query
*/
export function reject(message: string): void {
export function msgReject(message: string): void {
if (
globalThis._azleIcStable === undefined &&
globalThis._azleIcExperimental === undefined
Expand All @@ -26,9 +26,9 @@ export function reject(message: string): void {
}

if (globalThis._azleIcExperimental !== undefined) {
globalThis._azleIcExperimental.reject(message);
globalThis._azleIcExperimental.msgReject(message);
return;
}

globalThis._azleIcStable.reject(message);
globalThis._azleIcStable.msgReject(message);
}
2 changes: 1 addition & 1 deletion src/lib/stable/ic_apis/notify.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { idlEncode } from '../execute_with_candid_serde';
*
* @remarks
* - The call is "fire and forget" - errors are not returned
* - More efficient than await ic.call() when no response is needed
* - More efficient than await `call` when no response is needed
*
* - **Call Context**:
* - \@update
Expand Down

0 comments on commit 3f94771

Please sign in to comment.