Skip to content

Commit 2ec0b10

Browse files
authored
Merge pull request #7 from Algorand-Developer-Retreat/feat/deleted-asset-support
feat: support deleted assets
2 parents ea8ebe7 + fdb9013 commit 2ec0b10

File tree

13 files changed

+5379
-3861
lines changed

13 files changed

+5379
-3861
lines changed

projects/abel-cli/.env.local

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
MNEMONIC=pattern orphan fantasy thunder card scan skull tragic bread agree build warfare chicken bottom leave quiz fringe armed dizzy twice endorse champion drill abstract replace
2-
ABEL_APP_ID=1002
1+
MNEMONIC=tumble armed pony permit tree choose portion matter hold equal stamp rural kangaroo infant nothing scale paddle twist gravity lonely retreat annual gallery able gravity
2+
ABEL_APP_ID=18154
33
ALGOD_PORT=4001
44
ALGOD_HOST=http://127.0.0.1
55
ALGOD_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

projects/abel-cli/package-lock.json

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

projects/abel-cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"author": "",
1212
"license": "ISC",
1313
"dependencies": {
14-
"abel-sdk": "=0.1.0",
14+
"abel-sdk": "../abel-sdk-v2",
1515
"dotenv": "^16.4.7",
1616
"p-map": "^7.0.3",
1717
"zod": "^3.24.2"

projects/abel-sdk-v2/src/index.ts

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,31 @@ import { BoxName } from "@algorandfoundation/algokit-utils/types/app";
44
import { decodeAddress, decodeUint64, encodeAddress, encodeUint64, makeEmptyTransactionSigner } from "algosdk";
55
import pMap from "p-map";
66
import {
7-
AssetFull,
87
AssetFullFromTuple,
98
AssetLabelingClient,
109
AssetLabelingFactory,
11-
AssetMicro,
1210
AssetMicroFromTuple,
13-
AssetMicroLabels,
1411
AssetMicroLabelsFromTuple,
15-
AssetSmall,
1612
AssetSmallFromTuple,
17-
AssetText,
1813
AssetTextFromTuple,
19-
AssetTextLabels,
2014
AssetTextLabelsFromTuple,
21-
AssetTiny,
2215
AssetTinyFromTuple,
23-
AssetTinyLabels,
2416
AssetTinyLabelsFromTuple,
2517
LabelDescriptorFromTuple as LabelDescriptorBoxValueFromTuple,
2618
} from "./generated/abel-contract-client.js";
27-
import { AnyFn, FirstArgument, LabelDescriptor, QueryReturn } from "./types.js";
19+
import {
20+
AnyFn,
21+
AssetFull,
22+
AssetMicro,
23+
AssetMicroLabels,
24+
AssetSmall,
25+
AssetText,
26+
AssetTextLabels,
27+
AssetTiny,
28+
AssetTinyLabels,
29+
LabelDescriptor,
30+
QueryReturn,
31+
} from "./types.js";
2832
import { chunk, encodeUint64Arr, isNullish, mergeMapsArr, wrapErrors } from "./util.js";
2933

3034
export * from "./types.js";
@@ -492,10 +496,12 @@ export class AbelSDK {
492496
parseLogsAs<T extends AnyFn>(logs: Uint8Array[], tupleParser: T, abiDecodingMethodName: string): ReturnType<T>[] {
493497
const decodingMethod = this.readClient.appClient.getABIMethod(abiDecodingMethodName);
494498
const parsed = logs.map((logValue) =>
495-
tupleParser(
496-
// @ts-ignore TODO fixable?
497-
decodingMethod.returns.type.decode(logValue)
498-
)
499+
logValue.length
500+
? tupleParser(
501+
// @ts-ignore TODO fixable?
502+
decodingMethod.returns.type.decode(logValue)
503+
)
504+
: { deleted: true }
499505
);
500506
return parsed;
501507
}

projects/abel-sdk-v2/src/types.ts

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
import { ABIReturn } from "@algorandfoundation/algokit-utils/types/app";
22
import { Transaction } from "algosdk";
33
import { PendingTransactionResponse } from "algosdk/dist/types/client/v2/algod/models/types.js";
4-
import { LabelDescriptor as LabelDescriptorBoxValue, AssetMicro as AssetMicroValue } from "./generated/abel-contract-client.js";
4+
import {
5+
LabelDescriptor as LabelDescriptorBoxValue,
6+
AssetMicro as AssetMicroValue,
7+
AssetMicroLabels as AssetMicroLabelsValue,
8+
AssetTiny as AssetTinyValue,
9+
AssetTinyLabels as AssetTinyLabelsValue,
10+
AssetText as AssetTextValue,
11+
AssetTextLabels as AssetTextLabelsValue,
12+
AssetSmall as AssetSmallValue,
13+
AssetFull as AssetFullValue,
14+
} from "./generated/abel-contract-client.js";
515

616
export interface LabelDescriptor extends LabelDescriptorBoxValue {
717
id: string;
@@ -17,8 +27,15 @@ export interface QueryReturn {
1727
transactions: Transaction[];
1828
}
1929

20-
export interface AssetMicro extends AssetMicroValue {
21-
id: bigint;
22-
}
30+
export type DeletedAsset = { id: bigint; deleted: true };
31+
32+
export type AssetMicro = (AssetMicroValue & { id: bigint }) | DeletedAsset;
33+
export type AssetMicroLabels = (AssetMicroLabelsValue & { id: bigint }) | DeletedAsset;
34+
export type AssetTiny = (AssetTinyValue & { id: bigint }) | DeletedAsset;
35+
export type AssetTinyLabels = (AssetTinyLabelsValue & { id: bigint }) | DeletedAsset;
36+
export type AssetText = (AssetTextValue & { id: bigint }) | DeletedAsset;
37+
export type AssetTextLabels = (AssetTextLabelsValue & { id: bigint }) | DeletedAsset;
38+
export type AssetSmall = (AssetSmallValue & { id: bigint }) | DeletedAsset;
39+
export type AssetFull = (AssetFullValue & { id: bigint }) | DeletedAsset;
2340

2441
export type FirstArgument<T extends (...args: any[]) => any> = T extends (arg1: infer U, ...args: any[]) => any ? U : never;

projects/asset_labeling-contracts/smart_contracts/artifacts/asset_labeling/AssetLabeling.approval.puya.map

Lines changed: 4384 additions & 3131 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)