Page MenuHomePhabricator

[ecash-lib] WIP BIP70 payments
DraftPublic

Authored by tobias_ruck on Fri, Mar 14, 21:20.
This is a draft revision that has not yet been submitted for review.

Details

Reviewers
None
Group Reviewers
Restricted Project
Summary

Bunch of changes that will have to be split out and tested, also probably will rename some stuff, but good to see already

Currently doesn't even compile

Test Plan

TBD

Diff Detail

Repository
rABC Bitcoin ABC
Branch
ecash-lib-bip70-payments
Lint
Lint Errors
SeverityLocationCodeMessage
Errormodules/ecash-lib/src/payment/context.ts:41ESLINT@typescript-eslint/no-unused-vars
Errormodules/ecash-lib/src/payment/context.ts:229ESLINT@typescript-eslint/no-unused-vars
Errormodules/ecash-lib/src/payment/context.ts:240ESLINT@typescript-eslint/no-unused-vars
Errormodules/ecash-lib/src/payment/context.ts:256ESLINT@typescript-eslint/no-unused-vars
Errormodules/ecash-lib/src/payment/context.ts:303ESLINT@typescript-eslint/no-unused-vars
Errormodules/ecash-lib/src/payment/context.ts:477ESLINTno-fallthrough
Errormodules/ecash-lib/src/payment/context.ts:477ESLINTno-empty
Errormodules/ecash-lib/src/payment/context.ts:479ESLINTno-fallthrough
Errormodules/ecash-lib/src/payment/context.ts:479ESLINTno-empty
Errormodules/ecash-lib/src/payment/context.ts:520ESLINT@typescript-eslint/no-unused-vars
Errormodules/ecash-lib/src/payment/pkiData.ts:1ESLINTheader/header
Errormodules/ecash-lib/src/payment/x509.ts:7ESLINT@typescript-eslint/no-unused-vars
Errormodules/ecash-lib/src/payment/x509.ts:42ESLINT@typescript-eslint/no-unused-vars
Errormodules/ecash-lib/src/token/slp.parse.ts:6ESLINT@typescript-eslint/no-unused-vars
Unit
No Test Coverage
Build Status
Buildable 32735
Build 64958: Build Diffecash-lib-integration-tests · ecash-wallet-tests · cashtab-tests · ecash-lib-tests · ecash-agora-integration-tests · ecash-agora-tests
Build 64957: arc lint + arc unit

Event Timeline

Tail of the build log:

  npm audit fix

Run `npm audit` for details.

> ecashaddrjs@2.0.0 build
> tsc

/work/modules/chronik-client /work/abc-ci-builds/ecash-lib-tests

> chronik-client@3.0.0 prepublish
> npm run build


> chronik-client@3.0.0 build
> tsc


added 170 packages, and audited 172 packages in 5s

25 packages are looking for funding
  run `npm fund` for details

4 vulnerabilities (3 moderate, 1 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

> chronik-client@3.0.0 build
> tsc

/work/modules/ecash-lib /work/abc-ci-builds/ecash-lib-tests

added 278 packages, and audited 282 packages in 2s

38 packages are looking for funding
  run `npm fund` for details

6 vulnerabilities (5 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.
CI configured to test build. Building...

> ecash-lib@3.0.0 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

src/payment/context.ts(76,28): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(98,13): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(370,9): error TS2322: Type 'Value<{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }, Uint8Array | PaymentDetails>' is not assignable to type 'DetailsValue'.
  Property 'requiredInputs' is missing in type '{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }' but required in type 'PaymentDetails'.
src/payment/context.ts(372,13): error TS18004: No value exists in scope for the shorthand property 'outputs'. Either declare one or provide an initializer.
src/payment/context.ts(404,59): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.
Build ecash-lib-tests failed with exit code 2

Tail of the build log:

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecashaddrjs@2.0.0 build
> tsc

/work/modules/chronik-client /work/abc-ci-builds/ecash-agora-integration-tests

> chronik-client@3.0.0 prepublish
> npm run build


> chronik-client@3.0.0 build
> tsc


added 170 packages, and audited 172 packages in 4s

25 packages are looking for funding
  run `npm fund` for details

4 vulnerabilities (3 moderate, 1 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

> chronik-client@3.0.0 build
> tsc

/work/modules/ecash-lib /work/abc-ci-builds/ecash-agora-integration-tests

added 278 packages, and audited 282 packages in 2s

38 packages are looking for funding
  run `npm fund` for details

6 vulnerabilities (5 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-lib@3.0.0 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

src/payment/context.ts(76,28): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(98,13): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(370,9): error TS2322: Type 'Value<{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }, Uint8Array | PaymentDetails>' is not assignable to type 'DetailsValue'.
  Property 'requiredInputs' is missing in type '{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }' but required in type 'PaymentDetails'.
src/payment/context.ts(372,13): error TS18004: No value exists in scope for the shorthand property 'outputs'. Either declare one or provide an initializer.
src/payment/context.ts(404,59): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.
Build ecash-agora-integration-tests failed with exit code 2

Tail of the build log:

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecashaddrjs@2.0.0 build
> tsc

/work/modules/chronik-client /work/abc-ci-builds/ecash-agora-tests

> chronik-client@3.0.0 prepublish
> npm run build


> chronik-client@3.0.0 build
> tsc


added 170 packages, and audited 172 packages in 4s

25 packages are looking for funding
  run `npm fund` for details

4 vulnerabilities (3 moderate, 1 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

> chronik-client@3.0.0 build
> tsc

/work/modules/ecash-lib /work/abc-ci-builds/ecash-agora-tests

added 278 packages, and audited 282 packages in 2s

38 packages are looking for funding
  run `npm fund` for details

6 vulnerabilities (5 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-lib@3.0.0 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

src/payment/context.ts(76,28): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(98,13): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(370,9): error TS2322: Type 'Value<{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }, Uint8Array | PaymentDetails>' is not assignable to type 'DetailsValue'.
  Property 'requiredInputs' is missing in type '{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }' but required in type 'PaymentDetails'.
src/payment/context.ts(372,13): error TS18004: No value exists in scope for the shorthand property 'outputs'. Either declare one or provide an initializer.
src/payment/context.ts(404,59): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.
Build ecash-agora-tests failed with exit code 2

Tail of the build log:

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecashaddrjs@2.0.0 build
> tsc

/work/modules/chronik-client /work/abc-ci-builds/cashtab-tests

> chronik-client@3.0.0 prepublish
> npm run build


> chronik-client@3.0.0 build
> tsc


added 170 packages, and audited 172 packages in 4s

25 packages are looking for funding
  run `npm fund` for details

4 vulnerabilities (3 moderate, 1 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

> chronik-client@3.0.0 build
> tsc

/work/modules/ecash-lib /work/abc-ci-builds/cashtab-tests

added 278 packages, and audited 282 packages in 2s

38 packages are looking for funding
  run `npm fund` for details

6 vulnerabilities (5 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-lib@3.0.0 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

src/payment/context.ts(76,28): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(98,13): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(370,9): error TS2322: Type 'Value<{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }, Uint8Array | PaymentDetails>' is not assignable to type 'DetailsValue'.
  Property 'requiredInputs' is missing in type '{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }' but required in type 'PaymentDetails'.
src/payment/context.ts(372,13): error TS18004: No value exists in scope for the shorthand property 'outputs'. Either declare one or provide an initializer.
src/payment/context.ts(404,59): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.
Build cashtab-tests failed with exit code 2

Tail of the build log:

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecashaddrjs@2.0.0 build
> tsc

/work/modules/chronik-client /work/abc-ci-builds/ecash-wallet-tests

> chronik-client@3.0.0 prepublish
> npm run build


> chronik-client@3.0.0 build
> tsc


added 170 packages, and audited 172 packages in 4s

25 packages are looking for funding
  run `npm fund` for details

4 vulnerabilities (3 moderate, 1 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

> chronik-client@3.0.0 build
> tsc

/work/modules/ecash-lib /work/abc-ci-builds/ecash-wallet-tests

added 278 packages, and audited 282 packages in 2s

38 packages are looking for funding
  run `npm fund` for details

6 vulnerabilities (5 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-lib@3.0.0 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

src/payment/context.ts(76,28): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(98,13): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(370,9): error TS2322: Type 'Value<{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }, Uint8Array | PaymentDetails>' is not assignable to type 'DetailsValue'.
  Property 'requiredInputs' is missing in type '{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }' but required in type 'PaymentDetails'.
src/payment/context.ts(372,13): error TS18004: No value exists in scope for the shorthand property 'outputs'. Either declare one or provide an initializer.
src/payment/context.ts(404,59): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.
Build ecash-wallet-tests failed with exit code 2

Tail of the build log:

[555/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroltreewidget.cpp.o
[556/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[557/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/editaddressdialog.cpp.o
[558/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[559/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/askpassphrasedialog.cpp.o
[560/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/openuridialog.cpp.o
[561/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrimagewidget.cpp.o
[562/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[563/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionfilterproxy.cpp.o
[564/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/overviewpage.cpp.o
[565/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receiverequestdialog.cpp.o
[566/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addresstablemodel.cpp.o
[567/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondescdialog.cpp.o
[568/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/recentrequeststablemodel.cpp.o
[569/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsentry.cpp.o
[570/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receivecoinsdialog.cpp.o
[571/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionrecord.cpp.o
[572/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[573/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroldialog.cpp.o
[574/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletframe.cpp.o
[575/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionview.cpp.o
[576/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodeltransaction.cpp.o
[577/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondesc.cpp.o
[578/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/signverifymessagedialog.cpp.o
[579/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiontablemodel.cpp.o
[580/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentrequestplus.cpp.o
[581/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentserver.cpp.o
[582/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsdialog.cpp.o
[583/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletcontroller.cpp.o
[584/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodel.cpp.o
[585/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletview.cpp.o
[586/590] Linking CXX static library src/qt/libbitcoin-qt-base.a
[587/590] Automatic MOC for target bitcoin-qt
[588/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[589/590] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[590/590] Linking CXX executable src/qt/bitcoin-qt
/work/modules/ecash-lib /work/abc-ci-builds/ecash-lib-integration-tests

added 278 packages, and audited 282 packages in 2s

38 packages are looking for funding
  run `npm fund` for details

6 vulnerabilities (5 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-lib@3.0.0 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

src/payment/context.ts(76,28): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(98,13): error TS2554: Expected 2 arguments, but got 1.
src/payment/context.ts(370,9): error TS2322: Type 'Value<{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }, Uint8Array | PaymentDetails>' is not assignable to type 'DetailsValue'.
  Property 'requiredInputs' is missing in type '{ network: Value<Network, string>; outputs: any; time: Value<number, bigint>; expires: Value<number | undefined, bigint>; memo: string; paymentUrl: Value<...>; merchantData: Uint8Array; }' but required in type 'PaymentDetails'.
src/payment/context.ts(372,13): error TS18004: No value exists in scope for the shorthand property 'outputs'. Either declare one or provide an initializer.
src/payment/context.ts(404,59): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.
Build ecash-lib-integration-tests failed with exit code 2