OPENSPHERE-Inc / metal-on-symbol

Metal on Symbol
MIT License
13 stars 1 forks source link

browserでうまくforgeができません。 #20

Closed xembook closed 1 year ago

xembook commented 1 year ago

以下のような手順でexecuteしましたが、うまくforgeできませんでした。

metal = require("/node_modules/metal-on-symbol");
metal.SymbolService.init({ node_url: "https://mikun-testnet.tk:3001" ,repo_factory_config:{websocketUrl:"wss://mikun-testnet.tk:3001/ws",websocketInjected:WebSocket}});

alice = sym.Account.createFromPrivateKey("896E43895B908AF5847ECCB2645543751D94BD87E71058B003417FED5123****",networkType);
payload = Buffer.from("Test Data Here");

ms = await metal.MetalService.createForgeTxs(
    sym.MetadataType.Account, 
    alice.address,
    alice,
    undefined,
    payload
); 

batches = await metal.SymbolService.buildSignedAggregateCompleteTxBatches(
    ms.txs,
    alice,
    undefined,
);

errors = await metal.SymbolService.executeBatches(batches, alice);
> https://mikun-testnet.tk:3001/transactionStatus/50DC52DBC05A07252E3BA9156700735AAE3D1FE658D693F82FAA2D0CC6EEA722 404

batchesの中のpayloadがすでにマッピング不可能なpayloadになってしまっているようです。

sym.TransactionMapping.createFromPayload(batches[0].signedTx.payload)

> symbol-sdk-pack-2.0.3.js:44707 Uncaught RangeError
    at GeneratorUtils.getBytes (symbol-sdk-pack-2.0.3.js:44707:19)
    at PublicKeyDto.loadFromBinary (symbol-sdk-pack-2.0.3.js:128932:59)
    at EmbeddedTransactionBuilder.loadFromBinary (symbol-sdk-pack-2.0.3.js:127905:61)
    at loadFromBinary (symbol-sdk-pack-2.0.3.js:127998:80)
    at GeneratorUtils.loadFromBinaryRemaining (symbol-sdk-pack-2.0.3.js:44765:26)
    at AggregateTransactionBodyBuilder.loadFromBinary (symbol-sdk-pack-2.0.3.js:127405:62)
    at AggregateCompleteTransactionBuilder.loadFromBinary (symbol-sdk-pack-2.0.3.js:42428:108)
    at AggregateTransaction.createFromPayload (symbol-sdk-pack-2.0.3.js:120342:84)
    at CreateTransactionFromPayload (symbol-sdk-pack-2.0.3.js:110931:51)
    at TransactionMapping.createFromPayload (symbol-sdk-pack-2.0.3.js:106431:80)
200100000000000087BEFE9652B3AA926D7B97F040DEE95A8EB1CC18CFF7542ADA48A1E25AF54F20CD95B87498079F6DA3146D92C93180E81C7901704FC33666C72915A97A21B7070E5C72B0D5946C1EFEE7E5317C5985F106B739BB0BC07E4F9A288417B3CD6D2600000000029841418070000000000000925870B300000000D9FFB0AFBA8AAF0D90228A0440F0CD69DE75044A15AA0F242C3D3B3BD3146184780000000000000078000000000000009850BF0FD1A45FCEE211B57D0FE2B6421EB81979814F629200000000019844419850BF0FD1A45FCEE211B57D0FE2B6421EB81979814F6292374A380815E6DB012C002C004530313030303030464544433043393935414146373035375647567A64434245595852684945686C636D553D

なにかお気づきの点がありましたらご指摘ください。

hanatyan128 commented 1 year ago

createForgeTxs の第2引数と、第3引数は PublicAccount にしないといけないですね。

ms = await metal.MetalService.createForgeTxs( sym.MetadataType.Account, alice.address, → alice.publicAccount alice, → alice.publicAccount undefined, payload );

xembook commented 1 year ago

ありがとうございます! browser で forgeできました!