@msafe/sui-app-store 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.global.js +4 -4
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +32 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -34,6 +34,9 @@ __export(src_exports, {
|
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(src_exports);
|
|
36
36
|
|
|
37
|
+
// src/apps/msafe-core/helper.ts
|
|
38
|
+
var import_sui3_utils4 = require("@msafe/sui3-utils");
|
|
39
|
+
|
|
37
40
|
// src/apps/msafe-core/coin-transfer.ts
|
|
38
41
|
var import_sui3_utils = require("@msafe/sui3-utils");
|
|
39
42
|
|
|
@@ -86,11 +89,34 @@ var ObjectTransferIntention = class _ObjectTransferIntention extends CoreBaseInt
|
|
|
86
89
|
}
|
|
87
90
|
};
|
|
88
91
|
|
|
92
|
+
// src/apps/msafe-core/plain-payload.ts
|
|
93
|
+
var import_sui3_utils3 = require("@msafe/sui3-utils");
|
|
94
|
+
var import_transactions = require("@mysten/sui.js/transactions");
|
|
95
|
+
var PlainPayloadIntention = class _PlainPayloadIntention extends CoreBaseIntention {
|
|
96
|
+
constructor(data) {
|
|
97
|
+
super(data);
|
|
98
|
+
this.data = data;
|
|
99
|
+
}
|
|
100
|
+
txType;
|
|
101
|
+
txSubType;
|
|
102
|
+
async build(input) {
|
|
103
|
+
const { account } = input;
|
|
104
|
+
const tb = import_transactions.TransactionBlock.from(this.data.content);
|
|
105
|
+
if (!(0, import_sui3_utils3.isSameAddress)(tb.blockData.sender, account.address)) {
|
|
106
|
+
throw new Error("Invalid sender address");
|
|
107
|
+
}
|
|
108
|
+
return tb;
|
|
109
|
+
}
|
|
110
|
+
static fromData(data) {
|
|
111
|
+
return new _PlainPayloadIntention(data);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
89
115
|
// src/apps/msafe-core/helper.ts
|
|
90
116
|
var CoreHelper = class {
|
|
91
117
|
application;
|
|
92
118
|
constructor() {
|
|
93
|
-
this.application =
|
|
119
|
+
this.application = import_sui3_utils4.TransactionDefaultApplication;
|
|
94
120
|
}
|
|
95
121
|
deserialize() {
|
|
96
122
|
throw new Error("MSafe core transaction intention should be build from API");
|
|
@@ -99,12 +125,15 @@ var CoreHelper = class {
|
|
|
99
125
|
const { suiClient, account } = input;
|
|
100
126
|
let intention;
|
|
101
127
|
switch (input.txSubType) {
|
|
102
|
-
case
|
|
128
|
+
case import_sui3_utils4.TransactionSubTypes.assets.coin.send:
|
|
103
129
|
intention = CoinTransferIntention.fromData(input.intentionData);
|
|
104
130
|
break;
|
|
105
|
-
case
|
|
131
|
+
case import_sui3_utils4.TransactionSubTypes.assets.object.send:
|
|
106
132
|
intention = ObjectTransferIntention.fromData(input.intentionData);
|
|
107
133
|
break;
|
|
134
|
+
case import_sui3_utils4.TransactionSubTypes.others.plain:
|
|
135
|
+
intention = PlainPayloadIntention.fromData(input.intentionData);
|
|
136
|
+
break;
|
|
108
137
|
default:
|
|
109
138
|
throw new Error("not implemented");
|
|
110
139
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/apps/msafe-core/coin-transfer.ts","../src/apps/msafe-core/intention.ts","../src/apps/msafe-core/object-transfer.ts","../src/apps/msafe-core/helper.ts","../src/apps/registry.ts"],"sourcesContent":["import { CoreHelper } from '@/apps/msafe-core/helper';\nimport { MSafeApps } from '@/apps/registry';\n\nexport const appHelpers = new MSafeApps([new CoreHelper()]);\n","import { TransactionType, buildCoinTransferTxb } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\n\nimport { CoreBaseIntention } from '@/apps/msafe-core/intention';\n\nexport interface CoinTransferIntentionData {\n recipient: string;\n coinType: string;\n amount: string;\n}\n\nexport class CoinTransferIntention extends CoreBaseIntention<CoinTransferIntentionData> {\n txType: TransactionType.Assets;\n\n txSubType: 'coin-transfer';\n\n constructor(public readonly data: CoinTransferIntentionData) {\n super(data);\n }\n\n async build(input: { suiClient: SuiClient; account: WalletAccount }): Promise<TransactionBlock> {\n const { suiClient, account } = input;\n return buildCoinTransferTxb(suiClient, this.data, account.address);\n }\n\n static fromData(data: CoinTransferIntentionData) {\n return new CoinTransferIntention(data);\n }\n}\n","import { TransactionType } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\nimport sortKeys from 'sort-keys-recursive';\n\nimport { TransactionIntention } from '@/apps/interface';\n\nexport abstract class CoreBaseIntention<D> implements TransactionIntention<D> {\n abstract txType: TransactionType;\n\n abstract txSubType: string;\n\n protected constructor(public readonly data: D) {}\n\n get application() {\n return 'msafe-core';\n }\n\n serialize() {\n return JSON.stringify(sortKeys(this.data));\n }\n\n abstract build(input: { suiClient: SuiClient; account: WalletAccount }): Promise<TransactionBlock>;\n}\n","import { TransactionType, buildObjectTransferTxb } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\n\nimport { CoreBaseIntention } from '@/apps/msafe-core/intention';\n\nexport interface ObjectTransferIntentionData {\n receiver: string;\n objectType: string;\n objectId: string;\n}\n\nexport class ObjectTransferIntention extends CoreBaseIntention<ObjectTransferIntentionData> {\n txType: TransactionType.Assets;\n\n txSubType: 'object-transfer';\n\n constructor(public readonly data: ObjectTransferIntentionData) {\n super(data);\n }\n\n async build(input: { suiClient: SuiClient; account: WalletAccount }): Promise<TransactionBlock> {\n const { suiClient, account } = input;\n return buildObjectTransferTxb(suiClient, this.data, account.address);\n }\n\n static fromData(data: ObjectTransferIntentionData) {\n return new ObjectTransferIntention(data);\n }\n}\n","import { TransactionType } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\n\nimport { MSafeAppHelper } from '@/apps/interface';\nimport { CoinTransferIntention, CoinTransferIntentionData } from '@/apps/msafe-core/coin-transfer';\n\nimport { ObjectTransferIntention, ObjectTransferIntentionData } from './object-transfer';\n\nexport type CoreIntention = CoinTransferIntention | ObjectTransferIntention;\n\nexport type CoreIntentionData = CoinTransferIntentionData | ObjectTransferIntentionData;\n\nexport class CoreHelper implements MSafeAppHelper<CoreIntention, CoreIntentionData> {\n application: string;\n\n constructor() {\n this.application = 'msafe-core';\n }\n\n deserialize(): CoreIntention {\n throw new Error('MSafe core transaction intention should be build from API');\n }\n\n async build(input: {\n intentionData: CoreIntentionData;\n txType: TransactionType;\n txSubType: string;\n suiClient: SuiClient;\n account: WalletAccount;\n }): Promise<TransactionBlock> {\n const { suiClient, account } = input;\n let intention: CoreIntention;\n switch (input.txSubType) {\n case 'coin-transfer':\n intention = CoinTransferIntention.fromData(input.intentionData as CoinTransferIntentionData);\n break;\n case 'object-transfer':\n intention = ObjectTransferIntention.fromData(input.intentionData as ObjectTransferIntentionData);\n break;\n default:\n throw new Error('not implemented');\n }\n return intention.build({ suiClient, account });\n }\n}\n","import { TransactionType } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { SuiSignTransactionBlockInput, WalletAccount } from '@mysten/wallet-standard';\n\nimport { MSafeAppHelper } from '@/apps/interface';\n\nexport class MSafeApps {\n apps: Map<string, MSafeAppHelper<any, any>>;\n\n constructor(apps: MSafeAppHelper<any, any>[]) {\n this.apps = new Map(apps.map((app) => [app.application, app]));\n }\n\n getAppHelper(appName: string): MSafeAppHelper<any, any> {\n const app = this.apps.get(appName);\n if (!app) {\n throw new Error(`${appName} not registered`);\n }\n return app;\n }\n\n deserialize(appName: string, input: SuiSignTransactionBlockInput) {\n return this.getAppHelper(appName).deserialize(input);\n }\n\n build(\n appName: string,\n input: {\n intentionData: any;\n txType: TransactionType;\n txSubType: string;\n suiClient: SuiClient;\n account: WalletAccount;\n },\n ) {\n return this.getAppHelper(appName).build(input);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,wBAAsD;;;ACItD,iCAAqB;AAId,IAAe,oBAAf,MAAuE;AAAA,EAKlE,YAA4B,MAAS;AAAT;AAAA,EAAU;AAAA,EAEhD,IAAI,cAAc;AAChB,WAAO;AAAA,EACT;AAAA,EAEA,YAAY;AACV,WAAO,KAAK,cAAU,2BAAAA,SAAS,KAAK,IAAI,CAAC;AAAA,EAC3C;AAGF;;;ADXO,IAAM,wBAAN,MAAM,+BAA8B,kBAA6C;AAAA,EAKtF,YAA4B,MAAiC;AAC3D,UAAM,IAAI;AADgB;AAAA,EAE5B;AAAA,EANA;AAAA,EAEA;AAAA,EAMA,MAAM,MAAM,OAAoF;AAC9F,UAAM,EAAE,WAAW,QAAQ,IAAI;AAC/B,eAAO,wCAAqB,WAAW,KAAK,MAAM,QAAQ,OAAO;AAAA,EACnE;AAAA,EAEA,OAAO,SAAS,MAAiC;AAC/C,WAAO,IAAI,uBAAsB,IAAI;AAAA,EACvC;AACF;;;AE9BA,IAAAC,qBAAwD;AAajD,IAAM,0BAAN,MAAM,iCAAgC,kBAA+C;AAAA,EAK1F,YAA4B,MAAmC;AAC7D,UAAM,IAAI;AADgB;AAAA,EAE5B;AAAA,EANA;AAAA,EAEA;AAAA,EAMA,MAAM,MAAM,OAAoF;AAC9F,UAAM,EAAE,WAAW,QAAQ,IAAI;AAC/B,eAAO,2CAAuB,WAAW,KAAK,MAAM,QAAQ,OAAO;AAAA,EACrE;AAAA,EAEA,OAAO,SAAS,MAAmC;AACjD,WAAO,IAAI,yBAAwB,IAAI;AAAA,EACzC;AACF;;;AChBO,IAAM,aAAN,MAA6E;AAAA,EAClF;AAAA,EAEA,cAAc;AACZ,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,cAA6B;AAC3B,UAAM,IAAI,MAAM,2DAA2D;AAAA,EAC7E;AAAA,EAEA,MAAM,MAAM,OAMkB;AAC5B,UAAM,EAAE,WAAW,QAAQ,IAAI;AAC/B,QAAI;AACJ,YAAQ,MAAM,WAAW;AAAA,MACvB,KAAK;AACH,oBAAY,sBAAsB,SAAS,MAAM,aAA0C;AAC3F;AAAA,MACF,KAAK;AACH,oBAAY,wBAAwB,SAAS,MAAM,aAA4C;AAC/F;AAAA,MACF;AACE,cAAM,IAAI,MAAM,iBAAiB;AAAA,IACrC;AACA,WAAO,UAAU,MAAM,EAAE,WAAW,QAAQ,CAAC;AAAA,EAC/C;AACF;;;ACxCO,IAAM,YAAN,MAAgB;AAAA,EACrB;AAAA,EAEA,YAAY,MAAkC;AAC5C,SAAK,OAAO,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC;AAAA,EAC/D;AAAA,EAEA,aAAa,SAA2C;AACtD,UAAM,MAAM,KAAK,KAAK,IAAI,OAAO;AACjC,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAM,GAAG,OAAO,iBAAiB;AAAA,IAC7C;AACA,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,SAAiB,OAAqC;AAChE,WAAO,KAAK,aAAa,OAAO,EAAE,YAAY,KAAK;AAAA,EACrD;AAAA,EAEA,MACE,SACA,OAOA;AACA,WAAO,KAAK,aAAa,OAAO,EAAE,MAAM,KAAK;AAAA,EAC/C;AACF;;;ALlCO,IAAM,aAAa,IAAI,UAAU,CAAC,IAAI,WAAW,CAAC,CAAC;","names":["sortKeys","import_sui3_utils"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/apps/msafe-core/helper.ts","../src/apps/msafe-core/coin-transfer.ts","../src/apps/msafe-core/intention.ts","../src/apps/msafe-core/object-transfer.ts","../src/apps/msafe-core/plain-payload.ts","../src/apps/registry.ts"],"sourcesContent":["import { CoreHelper } from '@/apps/msafe-core/helper';\nimport { MSafeApps } from '@/apps/registry';\n\nexport const appHelpers = new MSafeApps([new CoreHelper()]);\n","import { TransactionDefaultApplication, TransactionSubTypes, TransactionType } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\n\nimport { MSafeAppHelper } from '@/apps/interface';\nimport { CoinTransferIntention, CoinTransferIntentionData } from '@/apps/msafe-core/coin-transfer';\n\nimport { ObjectTransferIntention, ObjectTransferIntentionData } from './object-transfer';\nimport { PlainPayloadIntention, PlainPayloadIntentionData } from './plain-payload';\n\nexport type CoreIntention = CoinTransferIntention | ObjectTransferIntention | PlainPayloadIntention;\n\nexport type CoreIntentionData = CoinTransferIntentionData | ObjectTransferIntentionData | PlainPayloadIntentionData;\n\nexport class CoreHelper implements MSafeAppHelper<CoreIntention, CoreIntentionData> {\n application: string;\n\n constructor() {\n this.application = TransactionDefaultApplication;\n }\n\n deserialize(): CoreIntention {\n throw new Error('MSafe core transaction intention should be build from API');\n }\n\n async build(input: {\n intentionData: CoreIntentionData;\n txType: TransactionType;\n txSubType: string;\n suiClient: SuiClient;\n account: WalletAccount;\n }): Promise<TransactionBlock> {\n const { suiClient, account } = input;\n let intention: CoreIntention;\n switch (input.txSubType) {\n case TransactionSubTypes.assets.coin.send:\n intention = CoinTransferIntention.fromData(input.intentionData as CoinTransferIntentionData);\n break;\n case TransactionSubTypes.assets.object.send:\n intention = ObjectTransferIntention.fromData(input.intentionData as ObjectTransferIntentionData);\n break;\n case TransactionSubTypes.others.plain:\n intention = PlainPayloadIntention.fromData(input.intentionData as PlainPayloadIntentionData);\n break;\n default:\n throw new Error('not implemented');\n }\n return intention.build({ suiClient, account });\n }\n}\n","import { TransactionType, buildCoinTransferTxb } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\n\nimport { CoreBaseIntention } from '@/apps/msafe-core/intention';\n\nexport interface CoinTransferIntentionData {\n recipient: string;\n coinType: string;\n amount: string;\n}\n\nexport class CoinTransferIntention extends CoreBaseIntention<CoinTransferIntentionData> {\n txType: TransactionType.Assets;\n\n txSubType: 'SendCoin';\n\n constructor(public readonly data: CoinTransferIntentionData) {\n super(data);\n }\n\n async build(input: { suiClient: SuiClient; account: WalletAccount }): Promise<TransactionBlock> {\n const { suiClient, account } = input;\n return buildCoinTransferTxb(suiClient, this.data, account.address);\n }\n\n static fromData(data: CoinTransferIntentionData) {\n return new CoinTransferIntention(data);\n }\n}\n","import { TransactionType } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\nimport sortKeys from 'sort-keys-recursive';\n\nimport { TransactionIntention } from '@/apps/interface';\n\nexport abstract class CoreBaseIntention<D> implements TransactionIntention<D> {\n abstract txType: TransactionType;\n\n abstract txSubType: string;\n\n protected constructor(public readonly data: D) {}\n\n get application() {\n return 'msafe-core';\n }\n\n serialize() {\n return JSON.stringify(sortKeys(this.data));\n }\n\n abstract build(input: { suiClient: SuiClient; account: WalletAccount }): Promise<TransactionBlock>;\n}\n","import { TransactionType, buildObjectTransferTxb } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\n\nimport { CoreBaseIntention } from '@/apps/msafe-core/intention';\n\nexport interface ObjectTransferIntentionData {\n receiver: string;\n objectType: string;\n objectId: string;\n}\n\nexport class ObjectTransferIntention extends CoreBaseIntention<ObjectTransferIntentionData> {\n txType: TransactionType.Assets;\n\n txSubType: 'SendObject';\n\n constructor(public readonly data: ObjectTransferIntentionData) {\n super(data);\n }\n\n async build(input: { suiClient: SuiClient; account: WalletAccount }): Promise<TransactionBlock> {\n const { suiClient, account } = input;\n return buildObjectTransferTxb(suiClient, this.data, account.address);\n }\n\n static fromData(data: ObjectTransferIntentionData) {\n return new ObjectTransferIntention(data);\n }\n}\n","import { TransactionType, isSameAddress } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\n\nimport { CoreBaseIntention } from '@/apps/msafe-core/intention';\n\nexport interface PlainPayloadIntentionData {\n content: string;\n}\n\nexport class PlainPayloadIntention extends CoreBaseIntention<PlainPayloadIntentionData> {\n txType: TransactionType.Other;\n\n txSubType: 'PlainPayload';\n\n constructor(public readonly data: PlainPayloadIntentionData) {\n super(data);\n }\n\n async build(input: { suiClient: SuiClient; account: WalletAccount }): Promise<TransactionBlock> {\n const { account } = input;\n const tb = TransactionBlock.from(this.data.content);\n\n if (!isSameAddress(tb.blockData.sender, account.address)) {\n throw new Error('Invalid sender address');\n }\n\n return tb;\n }\n\n static fromData(data: PlainPayloadIntentionData) {\n return new PlainPayloadIntention(data);\n }\n}\n","import { TransactionType } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { SuiSignTransactionBlockInput, WalletAccount } from '@mysten/wallet-standard';\n\nimport { MSafeAppHelper } from '@/apps/interface';\n\nexport class MSafeApps {\n apps: Map<string, MSafeAppHelper<any, any>>;\n\n constructor(apps: MSafeAppHelper<any, any>[]) {\n this.apps = new Map(apps.map((app) => [app.application, app]));\n }\n\n getAppHelper(appName: string): MSafeAppHelper<any, any> {\n const app = this.apps.get(appName);\n if (!app) {\n throw new Error(`${appName} not registered`);\n }\n return app;\n }\n\n deserialize(appName: string, input: SuiSignTransactionBlockInput) {\n return this.getAppHelper(appName).deserialize(input);\n }\n\n build(\n appName: string,\n input: {\n intentionData: any;\n txType: TransactionType;\n txSubType: string;\n suiClient: SuiClient;\n account: WalletAccount;\n },\n ) {\n return this.getAppHelper(appName).build(input);\n }\n}\n"],"mappings":"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","names":["import_sui3_utils","sortKeys","import_sui3_utils","import_sui3_utils"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// src/apps/msafe-core/helper.ts
|
|
2
|
+
import { TransactionDefaultApplication, TransactionSubTypes } from "@msafe/sui3-utils";
|
|
3
|
+
|
|
1
4
|
// src/apps/msafe-core/coin-transfer.ts
|
|
2
5
|
import { buildCoinTransferTxb } from "@msafe/sui3-utils";
|
|
3
6
|
|
|
@@ -50,11 +53,34 @@ var ObjectTransferIntention = class _ObjectTransferIntention extends CoreBaseInt
|
|
|
50
53
|
}
|
|
51
54
|
};
|
|
52
55
|
|
|
56
|
+
// src/apps/msafe-core/plain-payload.ts
|
|
57
|
+
import { isSameAddress } from "@msafe/sui3-utils";
|
|
58
|
+
import { TransactionBlock } from "@mysten/sui.js/transactions";
|
|
59
|
+
var PlainPayloadIntention = class _PlainPayloadIntention extends CoreBaseIntention {
|
|
60
|
+
constructor(data) {
|
|
61
|
+
super(data);
|
|
62
|
+
this.data = data;
|
|
63
|
+
}
|
|
64
|
+
txType;
|
|
65
|
+
txSubType;
|
|
66
|
+
async build(input) {
|
|
67
|
+
const { account } = input;
|
|
68
|
+
const tb = TransactionBlock.from(this.data.content);
|
|
69
|
+
if (!isSameAddress(tb.blockData.sender, account.address)) {
|
|
70
|
+
throw new Error("Invalid sender address");
|
|
71
|
+
}
|
|
72
|
+
return tb;
|
|
73
|
+
}
|
|
74
|
+
static fromData(data) {
|
|
75
|
+
return new _PlainPayloadIntention(data);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
53
79
|
// src/apps/msafe-core/helper.ts
|
|
54
80
|
var CoreHelper = class {
|
|
55
81
|
application;
|
|
56
82
|
constructor() {
|
|
57
|
-
this.application =
|
|
83
|
+
this.application = TransactionDefaultApplication;
|
|
58
84
|
}
|
|
59
85
|
deserialize() {
|
|
60
86
|
throw new Error("MSafe core transaction intention should be build from API");
|
|
@@ -63,12 +89,15 @@ var CoreHelper = class {
|
|
|
63
89
|
const { suiClient, account } = input;
|
|
64
90
|
let intention;
|
|
65
91
|
switch (input.txSubType) {
|
|
66
|
-
case
|
|
92
|
+
case TransactionSubTypes.assets.coin.send:
|
|
67
93
|
intention = CoinTransferIntention.fromData(input.intentionData);
|
|
68
94
|
break;
|
|
69
|
-
case
|
|
95
|
+
case TransactionSubTypes.assets.object.send:
|
|
70
96
|
intention = ObjectTransferIntention.fromData(input.intentionData);
|
|
71
97
|
break;
|
|
98
|
+
case TransactionSubTypes.others.plain:
|
|
99
|
+
intention = PlainPayloadIntention.fromData(input.intentionData);
|
|
100
|
+
break;
|
|
72
101
|
default:
|
|
73
102
|
throw new Error("not implemented");
|
|
74
103
|
}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/apps/msafe-core/coin-transfer.ts","../src/apps/msafe-core/intention.ts","../src/apps/msafe-core/object-transfer.ts","../src/apps/msafe-core/
|
|
1
|
+
{"version":3,"sources":["../src/apps/msafe-core/helper.ts","../src/apps/msafe-core/coin-transfer.ts","../src/apps/msafe-core/intention.ts","../src/apps/msafe-core/object-transfer.ts","../src/apps/msafe-core/plain-payload.ts","../src/apps/registry.ts","../src/index.ts"],"sourcesContent":["import { TransactionDefaultApplication, TransactionSubTypes, TransactionType } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\n\nimport { MSafeAppHelper } from '@/apps/interface';\nimport { CoinTransferIntention, CoinTransferIntentionData } from '@/apps/msafe-core/coin-transfer';\n\nimport { ObjectTransferIntention, ObjectTransferIntentionData } from './object-transfer';\nimport { PlainPayloadIntention, PlainPayloadIntentionData } from './plain-payload';\n\nexport type CoreIntention = CoinTransferIntention | ObjectTransferIntention | PlainPayloadIntention;\n\nexport type CoreIntentionData = CoinTransferIntentionData | ObjectTransferIntentionData | PlainPayloadIntentionData;\n\nexport class CoreHelper implements MSafeAppHelper<CoreIntention, CoreIntentionData> {\n application: string;\n\n constructor() {\n this.application = TransactionDefaultApplication;\n }\n\n deserialize(): CoreIntention {\n throw new Error('MSafe core transaction intention should be build from API');\n }\n\n async build(input: {\n intentionData: CoreIntentionData;\n txType: TransactionType;\n txSubType: string;\n suiClient: SuiClient;\n account: WalletAccount;\n }): Promise<TransactionBlock> {\n const { suiClient, account } = input;\n let intention: CoreIntention;\n switch (input.txSubType) {\n case TransactionSubTypes.assets.coin.send:\n intention = CoinTransferIntention.fromData(input.intentionData as CoinTransferIntentionData);\n break;\n case TransactionSubTypes.assets.object.send:\n intention = ObjectTransferIntention.fromData(input.intentionData as ObjectTransferIntentionData);\n break;\n case TransactionSubTypes.others.plain:\n intention = PlainPayloadIntention.fromData(input.intentionData as PlainPayloadIntentionData);\n break;\n default:\n throw new Error('not implemented');\n }\n return intention.build({ suiClient, account });\n }\n}\n","import { TransactionType, buildCoinTransferTxb } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\n\nimport { CoreBaseIntention } from '@/apps/msafe-core/intention';\n\nexport interface CoinTransferIntentionData {\n recipient: string;\n coinType: string;\n amount: string;\n}\n\nexport class CoinTransferIntention extends CoreBaseIntention<CoinTransferIntentionData> {\n txType: TransactionType.Assets;\n\n txSubType: 'SendCoin';\n\n constructor(public readonly data: CoinTransferIntentionData) {\n super(data);\n }\n\n async build(input: { suiClient: SuiClient; account: WalletAccount }): Promise<TransactionBlock> {\n const { suiClient, account } = input;\n return buildCoinTransferTxb(suiClient, this.data, account.address);\n }\n\n static fromData(data: CoinTransferIntentionData) {\n return new CoinTransferIntention(data);\n }\n}\n","import { TransactionType } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\nimport sortKeys from 'sort-keys-recursive';\n\nimport { TransactionIntention } from '@/apps/interface';\n\nexport abstract class CoreBaseIntention<D> implements TransactionIntention<D> {\n abstract txType: TransactionType;\n\n abstract txSubType: string;\n\n protected constructor(public readonly data: D) {}\n\n get application() {\n return 'msafe-core';\n }\n\n serialize() {\n return JSON.stringify(sortKeys(this.data));\n }\n\n abstract build(input: { suiClient: SuiClient; account: WalletAccount }): Promise<TransactionBlock>;\n}\n","import { TransactionType, buildObjectTransferTxb } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\n\nimport { CoreBaseIntention } from '@/apps/msafe-core/intention';\n\nexport interface ObjectTransferIntentionData {\n receiver: string;\n objectType: string;\n objectId: string;\n}\n\nexport class ObjectTransferIntention extends CoreBaseIntention<ObjectTransferIntentionData> {\n txType: TransactionType.Assets;\n\n txSubType: 'SendObject';\n\n constructor(public readonly data: ObjectTransferIntentionData) {\n super(data);\n }\n\n async build(input: { suiClient: SuiClient; account: WalletAccount }): Promise<TransactionBlock> {\n const { suiClient, account } = input;\n return buildObjectTransferTxb(suiClient, this.data, account.address);\n }\n\n static fromData(data: ObjectTransferIntentionData) {\n return new ObjectTransferIntention(data);\n }\n}\n","import { TransactionType, isSameAddress } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { WalletAccount } from '@mysten/wallet-standard';\n\nimport { CoreBaseIntention } from '@/apps/msafe-core/intention';\n\nexport interface PlainPayloadIntentionData {\n content: string;\n}\n\nexport class PlainPayloadIntention extends CoreBaseIntention<PlainPayloadIntentionData> {\n txType: TransactionType.Other;\n\n txSubType: 'PlainPayload';\n\n constructor(public readonly data: PlainPayloadIntentionData) {\n super(data);\n }\n\n async build(input: { suiClient: SuiClient; account: WalletAccount }): Promise<TransactionBlock> {\n const { account } = input;\n const tb = TransactionBlock.from(this.data.content);\n\n if (!isSameAddress(tb.blockData.sender, account.address)) {\n throw new Error('Invalid sender address');\n }\n\n return tb;\n }\n\n static fromData(data: PlainPayloadIntentionData) {\n return new PlainPayloadIntention(data);\n }\n}\n","import { TransactionType } from '@msafe/sui3-utils';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { SuiSignTransactionBlockInput, WalletAccount } from '@mysten/wallet-standard';\n\nimport { MSafeAppHelper } from '@/apps/interface';\n\nexport class MSafeApps {\n apps: Map<string, MSafeAppHelper<any, any>>;\n\n constructor(apps: MSafeAppHelper<any, any>[]) {\n this.apps = new Map(apps.map((app) => [app.application, app]));\n }\n\n getAppHelper(appName: string): MSafeAppHelper<any, any> {\n const app = this.apps.get(appName);\n if (!app) {\n throw new Error(`${appName} not registered`);\n }\n return app;\n }\n\n deserialize(appName: string, input: SuiSignTransactionBlockInput) {\n return this.getAppHelper(appName).deserialize(input);\n }\n\n build(\n appName: string,\n input: {\n intentionData: any;\n txType: TransactionType;\n txSubType: string;\n suiClient: SuiClient;\n account: WalletAccount;\n },\n ) {\n return this.getAppHelper(appName).build(input);\n }\n}\n","import { CoreHelper } from '@/apps/msafe-core/helper';\nimport { MSafeApps } from '@/apps/registry';\n\nexport const appHelpers = new MSafeApps([new CoreHelper()]);\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@msafe/sui-app-store",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "MSafe Sui app store repository",
|
|
5
5
|
"author": "Momentum Safe",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "commonjs",
|
|
8
8
|
"private": false,
|
|
9
9
|
"main": "./dist/index.js",
|
|
10
|
-
"module": "./dist/index.
|
|
10
|
+
"module": "./dist/index.mjs",
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
13
|
"types": "./dist/index.d.ts",
|
|
14
14
|
"source": "./src/index.ts",
|
|
15
|
-
"import": "./dist/index.
|
|
16
|
-
"require": "./dist/index.
|
|
15
|
+
"import": "./dist/index.mjs",
|
|
16
|
+
"require": "./dist/index.js"
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
"files": [
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"sort-keys-recursive": "^2.1.10"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@msafe/sui3-utils": "^3.1.
|
|
51
|
+
"@msafe/sui3-utils": "^3.1.35",
|
|
52
52
|
"@mysten/sui.js": "^0.49.1",
|
|
53
53
|
"@mysten/wallet-standard": "^0.10.1",
|
|
54
54
|
"@types/jest": "^29.2.1",
|