Skip to content

Commit

Permalink
transfer method
Browse files Browse the repository at this point in the history
  • Loading branch information
cosmasken committed Jan 19, 2024
1 parent b6a36a1 commit effd776
Show file tree
Hide file tree
Showing 112 changed files with 810 additions and 927 deletions.
7 changes: 2 additions & 5 deletions .dfx/local/canister_ids.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,15 @@
"local": "bnz7o-iuaaa-aaaaa-qaaaa-cai"
},
"assets": {
"local": "bw4dl-smaaa-aaaaa-qaacq-cai"
"local": "be2us-64aaa-aaaaa-qaabq-cai"
},
"backend": {
"local": "be2us-64aaa-aaaaa-qaabq-cai"
"local": "br5f7-7uaaa-aaaaa-qaaca-cai"
},
"icrc1_index": {
"local": "bd3sg-teaaa-aaaaa-qaaba-cai"
},
"icrc1_ledger": {
"local": "mxzaz-hqaaa-aaaar-qaada-cai"
},
"payments": {
"local": "br5f7-7uaaa-aaaaa-qaaca-cai"
}
}
9 changes: 8 additions & 1 deletion .dfx/local/canisters/backend/backend.did
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
type Result =
variant {
err: text;
ok: text;
};
service : {
getCanister: () -> (text);
whoami: () -> (principal);
getMyBalance: () -> (text);
transfer: () -> (Result);
whoami: () -> (text);
}
Binary file modified .dfx/local/canisters/backend/backend.wasm
Binary file not shown.
9 changes: 8 additions & 1 deletion .dfx/local/canisters/backend/constructor.did
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
type Result =
variant {
err: text;
ok: text;
};
service : {
getCanister: () -> (text);
whoami: () -> (principal);
getMyBalance: () -> (text);
transfer: () -> (Result);
whoami: () -> (text);
}
11 changes: 9 additions & 2 deletions .dfx/local/canisters/backend/constructor.old.did
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
type Result =
variant {
err: text;
ok: text;
};
service : {
getCanisterId: () -> (text);
whoami: () -> (principal);
getCanister: () -> (text);
getMyBalance: () -> (text);
transfer: () -> (Result);
whoami: () -> (text);
}
9 changes: 8 additions & 1 deletion .dfx/local/canisters/backend/service.did
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
type Result =
variant {
err: text;
ok: text;
};
service : {
getCanister: () -> (text);
whoami: () -> (principal);
getMyBalance: () -> (text);
transfer: () -> (Result);
whoami: () -> (text);
}
6 changes: 5 additions & 1 deletion .dfx/local/canisters/backend/service.did.d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import type { Principal } from '@dfinity/principal';
import type { ActorMethod } from '@dfinity/agent';

export type Result = { 'ok' : string } |
{ 'err' : string };
export interface _SERVICE {
'getCanister' : ActorMethod<[], string>,
'whoami' : ActorMethod<[], Principal>,
'getMyBalance' : ActorMethod<[], string>,
'transfer' : ActorMethod<[], Result>,
'whoami' : ActorMethod<[], string>,
}
5 changes: 4 additions & 1 deletion .dfx/local/canisters/backend/service.did.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
export const idlFactory = ({ IDL }) => {
const Result = IDL.Variant({ 'ok' : IDL.Text, 'err' : IDL.Text });
return IDL.Service({
'getCanister' : IDL.Func([], [IDL.Text], []),
'whoami' : IDL.Func([], [IDL.Principal], []),
'getMyBalance' : IDL.Func([], [IDL.Text], []),
'transfer' : IDL.Func([], [Result], []),
'whoami' : IDL.Func([], [IDL.Text], []),
});
};
export const init = ({ IDL }) => { return []; };
246 changes: 243 additions & 3 deletions .dfx/local/lsp/be2us-64aaa-aaaaa-qaabq-cai.did
Original file line number Diff line number Diff line change
@@ -1,4 +1,244 @@
service : {
getCanister: () -> (text);
whoami: () -> (principal);
type BatchId = nat;
type ChunkId = nat;
type Key = text;
type Time = int;

type CreateAssetArguments = record {
key: Key;
content_type: text;
max_age: opt nat64;
headers: opt vec HeaderField;
enable_aliasing: opt bool;
allow_raw_access: opt bool;
};

// Add or change content for an asset, by content encoding
type SetAssetContentArguments = record {
key: Key;
content_encoding: text;
chunk_ids: vec ChunkId;
sha256: opt blob;
};

// Remove content for an asset, by content encoding
type UnsetAssetContentArguments = record {
key: Key;
content_encoding: text;
};

// Delete an asset
type DeleteAssetArguments = record {
key: Key;
};

// Reset everything
type ClearArguments = record {};

type BatchOperationKind = variant {
CreateAsset: CreateAssetArguments;
SetAssetContent: SetAssetContentArguments;

SetAssetProperties: SetAssetPropertiesArguments;

UnsetAssetContent: UnsetAssetContentArguments;
DeleteAsset: DeleteAssetArguments;

Clear: ClearArguments;
};

type CommitBatchArguments = record {
batch_id: BatchId;
operations: vec BatchOperationKind
};

type CommitProposedBatchArguments = record {
batch_id: BatchId;
evidence: blob;
};

type ComputeEvidenceArguments = record {
batch_id: BatchId;
max_iterations: opt nat16
};

type DeleteBatchArguments = record {
batch_id: BatchId;
};

type HeaderField = record { text; text; };

type HttpRequest = record {
method: text;
url: text;
headers: vec HeaderField;
body: blob;
certificate_version: opt nat16;
};

type HttpResponse = record {
status_code: nat16;
headers: vec HeaderField;
body: blob;
streaming_strategy: opt StreamingStrategy;
};

type StreamingCallbackHttpResponse = record {
body: blob;
token: opt StreamingCallbackToken;
};

type StreamingCallbackToken = record {
key: Key;
content_encoding: text;
index: nat;
sha256: opt blob;
};

type StreamingStrategy = variant {
Callback: record {
callback: func (StreamingCallbackToken) -> (opt StreamingCallbackHttpResponse) query;
token: StreamingCallbackToken;
};
};

type SetAssetPropertiesArguments = record {
key: Key;
max_age: opt opt nat64;
headers: opt opt vec HeaderField;
allow_raw_access: opt opt bool;
is_aliased: opt opt bool;
};

type ConfigurationResponse = record {
max_batches: opt nat64;
max_chunks: opt nat64;
max_bytes: opt nat64;
};

type ConfigureArguments = record {
max_batches: opt opt nat64;
max_chunks: opt opt nat64;
max_bytes: opt opt nat64;
};

type Permission = variant {
Commit;
ManagePermissions;
Prepare;
};

type GrantPermission = record {
to_principal: principal;
permission: Permission;
};
type RevokePermission = record {
of_principal: principal;
permission: Permission;
};
type ListPermitted = record { permission: Permission };

type ValidationResult = variant { Ok : text; Err : text };

service: {
api_version: () -> (nat16) query;

get: (record {
key: Key;
accept_encodings: vec text;
}) -> (record {
content: blob; // may be the entirety of the content, or just chunk index 0
content_type: text;
content_encoding: text;
sha256: opt blob; // sha256 of entire asset encoding, calculated by dfx and passed in SetAssetContentArguments
total_length: nat; // all chunks except last have size == content.size()
}) query;

// if get() returned chunks > 1, call this to retrieve them.
// chunks may or may not be split up at the same boundaries as presented to create_chunk().
get_chunk: (record {
key: Key;
content_encoding: text;
index: nat;
sha256: opt blob; // sha256 of entire asset encoding, calculated by dfx and passed in SetAssetContentArguments
}) -> (record { content: blob }) query;

list : (record {}) -> (vec record {
key: Key;
content_type: text;
encodings: vec record {
content_encoding: text;
sha256: opt blob; // sha256 of entire asset encoding, calculated by dfx and passed in SetAssetContentArguments
length: nat; // Size of this encoding's blob. Calculated when uploading assets.
modified: Time;
};
}) query;

certified_tree : (record {}) -> (record {
certificate: blob;
tree: blob;
}) query;

create_batch : (record {}) -> (record { batch_id: BatchId });

create_chunk: (record { batch_id: BatchId; content: blob }) -> (record { chunk_id: ChunkId });

// Perform all operations successfully, or reject
commit_batch: (CommitBatchArguments) -> ();

// Save the batch operations for later commit
propose_commit_batch: (CommitBatchArguments) -> ();

// Given a batch already proposed, perform all operations successfully, or reject
commit_proposed_batch: (CommitProposedBatchArguments) -> ();

// Compute a hash over the CommitBatchArguments. Call until it returns Some(evidence).
compute_evidence: (ComputeEvidenceArguments) -> (opt blob);

// Delete a batch that has been created, or proposed for commit, but not yet committed
delete_batch: (DeleteBatchArguments) -> ();

create_asset: (CreateAssetArguments) -> ();
set_asset_content: (SetAssetContentArguments) -> ();
unset_asset_content: (UnsetAssetContentArguments) -> ();

delete_asset: (DeleteAssetArguments) -> ();

clear: (ClearArguments) -> ();

// Single call to create an asset with content for a single content encoding that
// fits within the message ingress limit.
store: (record {
key: Key;
content_type: text;
content_encoding: text;
content: blob;
sha256: opt blob
}) -> ();

http_request: (request: HttpRequest) -> (HttpResponse) query;
http_request_streaming_callback: (token: StreamingCallbackToken) -> (opt StreamingCallbackHttpResponse) query;

authorize: (principal) -> ();
deauthorize: (principal) -> ();
list_authorized: () -> (vec principal) query;
grant_permission: (GrantPermission) -> ();
revoke_permission: (RevokePermission) -> ();
list_permitted: (ListPermitted) -> (vec principal) query;
take_ownership: () -> ();

get_asset_properties : (key: Key) -> (record {
max_age: opt nat64;
headers: opt vec HeaderField;
allow_raw_access: opt bool;
is_aliased: opt bool; } ) query;
set_asset_properties: (SetAssetPropertiesArguments) -> ();

get_configuration: () -> (ConfigurationResponse);
configure: (ConfigureArguments) -> ();

validate_grant_permission: (GrantPermission) -> (ValidationResult);
validate_revoke_permission: (RevokePermission) -> (ValidationResult);
validate_take_ownership: () -> (ValidationResult);
validate_commit_proposed_batch: (CommitProposedBatchArguments) -> (ValidationResult);
validate_configure: (ConfigureArguments) -> (ValidationResult);
}
11 changes: 11 additions & 0 deletions .dfx/local/lsp/br5f7-7uaaa-aaaaa-qaaca-cai.did
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
type Result =
variant {
err: text;
ok: text;
};
service : {
getCanister: () -> (text);
getMyBalance: () -> (text);
transfer: () -> (Result);
whoami: () -> (text);
}
Loading

0 comments on commit effd776

Please sign in to comment.