1
1
import { KeyringPair } from '@polkadot/keyring/types' ;
2
- import { AddKeyData , EventMap , Extrinsic , ExtrinsicHelper } from '../scaffolding/extrinsicHelpers' ;
2
+ import { AddKeyData , Extrinsic , ExtrinsicHelper } from '../scaffolding/extrinsicHelpers' ;
3
3
import {
4
4
assertEvent ,
5
5
CENTS ,
@@ -9,23 +9,22 @@ import {
9
9
DOLLARS ,
10
10
generateAddKeyPayload ,
11
11
getEthereumKeyPairFromUnifiedAddress ,
12
- signEip712AddKeyData ,
13
12
signPayloadSr25519 ,
14
13
stakeToProvider ,
15
14
} from '../scaffolding/helpers' ;
16
15
import { getUnifiedAddress , getUnifiedPublicKey } from '../scaffolding/ethereum' ;
17
16
import assert from 'assert' ;
18
17
import { getFundingSource } from '../scaffolding/funding' ;
19
- import { U64 , u64 } from '@polkadot/types' ;
20
- import { BigInt } from '@polkadot/x-bigint' ;
18
+ import { u64 } from '@polkadot/types' ;
21
19
import { MessageSourceId } from '@frequency-chain/api-augment/interfaces' ;
20
+ import { createAddKeyData , signEip712 } from '@frequency-chain/ethereum-utils' ;
21
+ import { u8aToHex } from '@polkadot/util' ;
22
22
23
23
const fundingSource = getFundingSource ( import . meta. url ) ;
24
24
25
25
describe ( 'adding an Ethereum key for low cost' , function ( ) {
26
26
let providerKeys ;
27
27
let providerMsaId ;
28
- const defaultPayload : AddKeyData = { } ;
29
28
30
29
before ( async function ( ) {
31
30
providerKeys = await createKeys ( 'KeyAdder' ) ;
@@ -56,15 +55,24 @@ describe('adding an Ethereum key for low cost', function () {
56
55
delegatorMsaId : u64 ,
57
56
ethereumKeyringPair : KeyringPair
58
57
) {
59
- const ethereumKeyPair = getEthereumKeyPairFromUnifiedAddress ( getUnifiedAddress ( ethereumKeyringPair ) ) ;
60
58
const addKeyPayload = await generateAddKeyPayload ( { } ) ;
61
59
addKeyPayload . msaId = delegatorMsaId ;
62
60
addKeyPayload . newPublicKey = getUnifiedPublicKey ( ethereumKeyringPair ) ;
63
- const addKeyData = ExtrinsicHelper . api . registry . createType ( 'PalletMsaAddKeyData' , addKeyPayload ) ;
64
61
65
- const delegatorSig = signPayloadSr25519 ( delegatorKeys , addKeyData ) ;
66
- const newSig = await signEip712AddKeyData ( ethereumKeyPair , addKeyPayload ) ;
67
- return { addKeyPayload, delegatorSig, newSig } ;
62
+ const srSignatureaddKeyData = ExtrinsicHelper . api . registry . createType ( 'PalletMsaAddKeyData' , addKeyPayload ) ;
63
+ const delegatorSrSignature = signPayloadSr25519 ( delegatorKeys , srSignatureaddKeyData ) ;
64
+
65
+ const ethereumSecretKey = u8aToHex (
66
+ getEthereumKeyPairFromUnifiedAddress ( getUnifiedAddress ( ethereumKeyringPair ) ) . secretKey
67
+ ) ;
68
+ const eip712AddKeyData = createAddKeyData (
69
+ addKeyPayload . msaId . toBigInt ( ) ,
70
+ u8aToHex ( addKeyPayload . newPublicKey ) ,
71
+ addKeyPayload . expiration
72
+ ) ;
73
+ const ecdsaSignature = await signEip712 ( ethereumSecretKey , eip712AddKeyData ) ;
74
+
75
+ return { addKeyPayload, delegatorSig : delegatorSrSignature , newSig : ecdsaSignature } ;
68
76
}
69
77
70
78
it ( 'addPublicKeyToMsa costs less for capacity call with eligibility conditions' , async function ( ) {
0 commit comments