Skip to content

Senopiece/eth_multisig_wallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 

Repository files navigation

UPDATE: migrated to gitlab


tags: onti, fintech, assignments, solidity, web3.py, multisig

Кошелек с несколькими владельцами

Описание задачи учебно-тренировочных сборов для подготовки к участию в финале профиля "Программная инженерия финансовых технологий" ОКДНТИ 2020/2021.

Высокоуровневое описание задачи

Поскольку одной из самых популярных операций в децентрализованных базах данных, построенных на блокчейн технологиях, является управление финансами, то также как и в реальном мире, там возникает необходимость BardinPetr

  • управлять финансами децентрализованно: больше, чем один человек имеет возможность выполнять ту или иную финансовую операцию
  • управлять финансами безопасно: для окончательного решения о выполнении операции необходимо согласие нескольких человек

В то же самое время стандартные средства авторизации, использующиеся в распределенных реестрах, основанных, например, на технологии Ethereum, не позволяют нескольким участникам иметь доступ к одному счету без серьезного риска потери денежных средств.

Поэтому ширикое применение нашли, основанные на EVM контрактах, так называемые кошельки с несколькими владельцами (также их можно назвать кошельки с несколькими подписями или multisignature wallets).

В самом начале, в таком контракте регистрируется некоторе количество аккаунтов (владельцев), которые имеют эксклюзивное право вызывать его методы. Также алгоритм контракта позволяет выполнять ту или иную операцию только тогда, когда несколько владельцев пришлют транзакцию с запросом на выполнение этой операции. Поскольку подпись владельца является неотьемлемой частью транзакции, то говорят, что владельцы прислали свои подписи -- отсюда и название "кошеле с нескольким подписями". Количество владельцев, которым необходимо принять участие в согласовании операции называют пороговым значением (threshold). Обычно, количество зарегистрированных владельцев больше чем пороговое значение. Например, возможно иметь 5 владельцев и только трех подписей от них будет достаточно для подтверждения выполнения операции (такой кошелек называют "3 из 5").

Хорошее описание работы кошельков с несколькими владельцами от известного в русском блокчейн сообщестуе специалиста Сергея Прилуцкого можно прочитать в блоге компании MixBytes на Habr.

Основной задачей кошелька, который рассматривается в этой задаче, будет возможность переводить ether (технические токены блокчейн Ethereum) и ERC20-токены (токены, реализованные с помощью стандарта ERC20) cо счета кошелька на счет другого пользователя или контракта.

Компоненты

Программное обеспечение, реализующее функционал кошелька с несколькими владельцами должно состоят из следующих компонент:

  • контракт для Ethereum Virtual Machine на языке Solidity
  • скрипт, позволяющий выполнять развертывание контракта согласно заднной настройке кошелька
  • скрипт, через который пользователь взаимодействует с контрактом кошелька.

Контракт кошелька

Контракт кошелька должен предоставлять следующие интерфейсы взаимодействия:

  1. При развертывании контракта должен быть указан список аккаунтов-владельцев, которые могут взаимодействовать с кошельком и пороговое значение, сколько из аккаунтов должно подтвердить то или иное действие: constructor(address[] owners, uint256 threshold)
  2. метод addOwner(address newowner)позволяет существующим владельцам кошелька добавлять нового владельца.
  3. метод removeOwner(address owner)позволяет владельцам кошелька удалить одного из существующих владельцев.
  4. метод changeThreshold(uint256 thresh)позволяет владельцам кошелька изменить пороговое значение необходимых подвтерждения.
  5. метод transfer(address receiver, uint256 value) позволяет владельцам кошелька отправить заданное количество ether, которые хранятся на балансе контракта-кошелька, на счет другого пользователя или контракта.
  6. метод transfer(address token, address receiver, uint256 value) позволяет владельцам кошелька отправить заданное количество ERC20 токенов, определенных по адресу контракта, на счет другого пользователя или контракта.
  7. метод cancel(bytes32 id) позволяет тем владельцам, которые уже подтвердили какое-то действие в кошельке, послать отмену своего подтверждения, указав уникальный идентификатор, присваиваемый действию в момент появления первого подвтерждения.

Каждый метод испускает один или несколько событий (event), позволяющие отслеживать состояние контракта-кошелька.

  • при регистрации контракте

    • испускается, как минимум, два события OwnerAdded(address indexed newowner) и ThresholdChanged(uint256 amount, uint256 oldthresh, uint256 newthresh). Фактически количество событий OwnerAdded должно соответствовать количеству заданных владельцев, которому также соответствует значение amount в событии ThresholdChanged.
  • addOwner

    • испускает два события в момент получения первого подтверждения: ActionConfirmed(bytes32 indexed id, address indexed sender) и RequestToAddOwner(address indexed newowner)
    • испускает одно событие в момент получения второго и последующих подтверждений, если их количество не меньше порогового значения: ActionConfirmed(bytes32 indexed id, address indexed sender)
    • испускает два события в момент получения достаточного для достижения порогового значения подтверждения: ActionConfirmed(bytes32 indexed id, address indexed sender) и OwnerAdded(address indexed newowner)
  • removeOwner

    • испускает два события в момент получения первого подтверждения: ActionConfirmed(bytes32 indexed id, address indexed sender) и RequestToRemoveOwner(address indexed owner)
    • испускает одно событие в момент получения второго и последующих подтверждений, если их количество не меньше порогового значения: ActionConfirmed(bytes32 indexed id, address indexed sender)
    • испускает два события в момент получения достаточного для достижения порогового значения подтверждения: ActionConfirmed(bytes32 indexed id, address indexed sender) и OwnerRemoved(address indexed owner)
  • changeThreshold

    • испускает два события в момент получения первого подтверждения: ActionConfirmed(bytes32 indexed id, address indexed sender) и RequestToChangeThreshold(uint256 amount, uint256 oldthresh, uint256 newthresh)
    • испускает одно событие в момент получения второго и последующих подтверждений, если их количество не меньше порогового значения: ActionConfirmed(bytes32 indexed id, address indexed sender)
    • испускает два события в момент получения достаточного для достижения порогового значения подтверждения: ActionConfirmed(bytes32 indexed id, address indexed sender) и ThresholdChanged(uint256 amount, uint256 oldthresh, uint256 newthresh)
  • transfer

    • испускает два события в момент получения первого подтверждения: ActionConfirmed(bytes32 indexed id, address indexed sender) и RequestForTransfer(address indexed token, address indexed receiver, uint256 value), где для технического токена (ether) используется адресс address(0x0)
    • испускает одно событие в момент получения второго и последующих подтверждений, если их количество не меньше порогового значения: ActionConfirmed(bytes32 indexed id, address indexed sender)
    • испускает два события в момент получения достаточного для достижения порогового значения подтверждения: ActionConfirmed(bytes32 indexed id, address indexed sender) и TransferExecuted(address indexed token, address indexed receiver, uint256 value)
  • cancel

    • испускает событие, если метод вызыван владельцем, присылавшим до этого свое подтверждение для данного действия, но не все из присланных подтверждений для этого действия еще отменены: CancelRegistered(bytes32 indexed id, address indexed sender).
    • испускает два событие, если метод вызыван владельцем, присылавшим до этого свое подтверждение для данного действия, и все из присланных подтверждений для этого действия отменены: CancelRegistered(bytes32 indexed id, address indexed sender) и ActionCanceled(bytes32 indexed id)

Скрипт для регистрации (deployment)

Скрипт, производящий регистрацию (deployment) контракта в блокчейн сети, опирается на следующий переменные окружения, заданные перед запуском скрипта (переменные также могут быть выставлены посредством определения их в .env файле, находящемся в текущей рабочей директории).

# Приватный ключ, который используется для подписи транзакции, развертывающей
# контракт кошелька. На соответствующем приватному ключу счете должен быть
# достаточный баланс для исполнения операции развертывания
PRIVKEY=cafecafe...cafecafe

# URL, по которому будет доступен узел, предоставляющий web3 сервис для развертываня контракта
RPCURL=https://sokol.poa.network 

# Цена за единицу газа, которая будет выставленна в транзакции регистрации
# контракта.
GASPRICE=5000000000

# Имя контракта, который должен быть развернут.
WALLETCONTRACT=MultiSigWallet

# Версия компилятора, которая будет использоваться для компиляции контракта
# кошелька перед его развертыванием.
# В проверяющей системе номер версии будет подставляться
# в url https://github.com/ethereum/solidity/releases/download/${SOLIDITY}/solc-static-linux
# для загрузки компилятора.
# После загрузки компилятор доступен по пути /usr/local/bin/solc
# !! Скрипту регистрации контракта не нужно загружать компилятор
SOLIDITY=v0.7.5

# Адреса владельцев кошелька, перечисленные через пробел.
OWNERS=0xdeadbeaf...deadbeaf 0xbaddad...baddad

# Пороговое значение, определяющее какое количество владельцев должно прислать
# свои подтверждения для выполнения какой-либо операции
THRESHOLD=...

# Если данная переменная выставлена в true, то скрипту необходимо сделать
# автоматическую верификацию контракта в BlockScout, посредством BlockScout API:
# https://blockscout.com/poa/sokol/api-docs
# Подразумевается, что верификация может происходить только для контрактов,
# развернутых в тестовой сети Sokol.
VERIFY=true

Приоритет использования значений определяется за .env файлом. Если переменная окружения выставлена, но также она есть в файле .env, то ее значение берется из файла.

Параметры запуска скрипта:

$ deploy.py <path/to/contract.sol>

В качестве единственного аргумента скрипта передается путь к файлу с исходным кодом контракта кошелька.

При успешной регистрации скрипт выводит на экран строку: "Deployed at 0x...", содержащуюю адрес контракта кошелька.

Скрипт для взаимодействия с кошельком

Скрипт, позволяющий пользователю взаимодействовать с контрактом кошелька, опирается на следующий переменные окружения, заданные перед запуском скрипта (переменные также могут быть выставлены посредством определения их в .env файле, находящемся в текущей рабочей директории).

# Приватный ключ, который используется для подписи транзакций при
# взаимодействии с контрактом кошелька. Адрес, соответствующий данному
# приватному ключу должен быть зарегистрирован, как один из владельцев кошелька.
PRIVKEY=cafecafe...cafecafe

# URL, по которому будет доступен узел, предоставляющий web3 сервис для доступа к контракту кошелька
RPCURL=https://sokol.poa.network 

# Цена за единицу газа, которая будет выставленна в транзакциях,
# взаимодействующих с контрактами кошелька
GASPRICE=5000000000

# Адрес контракта кошелька.
WALLETCONTRACTADDRESS=0x

Приоритет использования значений определяется за .env файлом. Если переменная окружения выставлена, но также она есть в файле .env, то ее значение берется из файла.

Скрипт взаимодействия с контрактом кошелька запускается следующим образом:

$ walletConnect.py <command> <argument1> [<argument2>] [<argument3>]

где command -- одна из следующего набора:

  • add 0xdeadbeef...deadbeef - отправляет первое подтверждение на добавление нового валидатора. Если подтверждение с такими параметрами было уже послано от данного владельца и не набрало достаточно подтверждений, то повторный запрос не отправляется.
  • remove 0xdeadbeef...deadbeef - отправляет первое подтверждение на удаление валидатора. Если подтверждение с такими параметрами было уже послано от данного владельца и не набрало достаточно подтверждений, то повторный запрос не отправляется.
  • setthresh X - отправляет первое подтверждение на изменение порогового значения. Если подтверждение с такими параметрами было уже послано от данного владельца и не набрало достаточно подтверждений, то повторный запрос не отправляется.
  • transfer 0xbaddad...baddad X - отправляет первое подтверждение на пересылку заданного количества (argument2) технического токена (ether) заданному получателю (argument1). Количество задается в wei. Если подтверждение с такими параметрами было уже послано от данного владельца и не набрало достаточно подтверждений, то повторный запрос не отправляется.
  • transfer 0xcafecafe...cafecafe 0xbaddad...baddad X - отправляет первое подтверждение на пересылку заданного количества (argument3) токена (argument1) заданному получателю (argument2). Количество задается в wei. Если подтверждение с такими параметрами было уже послано от данного владельца и не набрало достаточно подтверждений, то повторный запрос не отправляется.
  • confirm 0xfaceb00k...faceb00k - определяет по идентификатору запроса его параметры и отправляет вызов соответствующего метода (addOwner/removeOwner/changeThreshold/transfer) в качестве подтверждения. Если подтверждение с такими параметрами было уже послано от данного владельца и не набрало достаточно подтверждений от других владельцев, то повторный запрос не отправляется.
  • cancel 0xfaceb00k...faceb00k - отправляет отзыв своего подтверждения для действия с указанным идентификатором. Если отзыв с такими параметрами был уже послано от данного владельца, то повторный запрос не отправляется.
  • get owners - выводит на терминал список всех владельцев кошелька
  • get thresh - выводит на терминал пороговое значение
  • get unconfirmed - выводит на терминал идентификаторы действий, для которых ожидается подтверждение от данного владельца.
  • get uncompleted - выводит на терминал идентификаторы действий, для которых данный владелец посылал подтверждение, но они подтверждений от других владельцев еще собрано недостаточно.

Приемочные тесты

Полное описание функциональности системы представленно в виде пользовательских историй (user stories). Каждая user story содержит короткое описание, зависимости от успешной работы других stories и набор приемочных тестов (aceptance criteria), которые демонстрируют требуемое поведение (requirements) системы на появление тех или иных входных параметров.

Всего система описывается 21 пользовательской историей:

  • US-001 Регистрация контракта кошелька
  • US-002 Запуск скрипта регистрации контракта кошелька
  • US-003 Верификация контракта скриптом регистрации контракта
  • US-004 Перевод ether
  • US-005 Перевод ERC20 токена
  • US-006 Отмена действия
  • US-007 Перевод ether с помощью скрипта взаимодействия с контрактом
  • US-008 Перевод ERC20 токенов с помощью скрипта взаимодействия с контрактом
  • US-009 Добавление владельца
  • US-010 Удаление владельца
  • US-011 Изменение порогового значения необходимых подтверждений
  • US-012 Добавление владельца с помощью скрипта взаимодействия с контрактом
  • US-013 Удаление владельца с помощью скрипта взаимодействия с контрактом
  • US-014 Изменение порогового значения с помощью скрипта взаимодействия с контрактом
  • US-015 Отмена действия с помощью скрипта взаимодействия с контрактом
  • US-016 Получение списка владельцев с помощью скрипта взаимодействия с контрактом
  • US-017 Получение порогового значения необходимых подтверждений с помощью скрипта взаимодействия с контрактом
  • US-018 Получение идентификаторов действий, для которых ожидается подтверждение
  • US-019 Получение идентификаторов действий с частичными подтверждениями
  • US-020 Дублирование действий при использовании скрипта взаимодействия
  • US-021 Обработка ошибок при подтверждение скриптом

US-001 Регистрация контракта кошелька

Описание: Я, как администратор систему, могу развернуть контракт кошелька с несколькими владельцами в блокчейн сети.

AC-001-01
  1. Регистрация контракта кошелька в блокчейн сети с передачей параметров конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2) выполняется успешно. В выписке транзакции, регистрирующей контракт, есть, как минимум, 4 события:
    • OwnerAdded("0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • OwnerAdded("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • OwnerAdded("0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • ThresholdChanged(3, 0, 2)
AC-001-02
  1. Регистрация контракта кошелька в блокчейн сети с передачей параметров конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 4) не выполняется -- новый контракт не создается.
AC-001-03
  1. Регистрация контракта кошелька в блокчейн сети с передачей параметров конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 0) не выполняется -- новый контракт не создается.
AC-001-04
  1. Регистрация контракта кошелька в блокчейн сети с передачей параметров конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB"], 2) не выполняется -- новый контракт не создается.
AC-001-05
  1. Регистрация контракта кошелька в блокчейн сети с передачей параметров конструктора: ([], 0) не выполняется -- новый контракт не создается.

US-002 Запуск скрипта регистрации контракта кошелька

Описание: Я, как администратор системы, имею возможность использовать скрипт для регистрации контракта кошелька с несколькими владельцами в блокчейн сети.

Зависит от успешного прохождения US-001

AC-002-01
  1. В директории с deploy.py находится .env файл и директория contracts. В директории contracts находится файл MultiSigWallet.sol. Содержимое файла .env:

    PRIVKEY=7e2426debde689e756c6290d855a1068aef06db7a2b076be5fe6f2eefc452ca1
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACT=MultiSigWallet
    SOLIDITY=v0.7.6
    OWNERS=0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e  0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    THRESHOLD=2
    
  2. После запуска команды:

    $ deploy.py contracts/MultiSigWallet.sol
    

    в терминале выводится

    Deployed at 0x...
    

    Контракта с указанным адресом не существовало в блокчейн базе данных до исполнения команды.

AC-002-02
  1. В директории с deploy.py находится .env файл и директория contracts. В директории contracts находится файл MultiSigWallet.sol. Содержимое файла .env:

    PRIVKEY=7e2426debde689e756c6290d855a1068aef06db7a2b076be5fe6f2eefc452ca1
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACT=MultiSigWallet
    SOLIDITY=v0.7.6
    OWNERS=0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e  0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    THRESHOLD=2
    
  2. После запуска команды:

    $ deploy.py contracts/MltSigWallet.sol
    

    в терминале выводится

    Nothing to deploy.
    There is no file: contracts/MltSigWallet.sol
    
AC-002-03
  1. В директории с deploy.py находится .env файл и директория contracts. В директории contracts находится файл MultiSigWallet.sol. Содержимое файла .env:

    PRIVKEY=7e2426debde689e756c6290d855a1068aef06db7a2b076be5fe6f2eefc452ca1
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACT=MltSigWallet
    SOLIDITY=v0.7.6
    OWNERS=0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e  0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    THRESHOLD=2
    
  2. После запуска команды:

    $ deploy.py contracts/MultiSigWallet.sol
    

    в терминале выводится

    Nothing to deploy.
    There is no contract `MltSigWallet` in contracts/MultiSigWallet.sol
    
AC-002-04
  1. В директории с deploy.py находится .env файл и директория contracts. В директории contracts находится файл MultiSigWallet.sol. Содержимое файла .env:

    PRIVKEY=7e2426debde689e756c6290d855a1068aef06db7a2b076be5fe6f2eefc452ca1
    RPCURL=https://sokl.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACT=MultiSigWallet
    SOLIDITY=v0.7.6
    OWNERS=0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e  0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    THRESHOLD=2
    
  2. После запуска команды:

    $ deploy.py contracts/MultiSigWallet.sol
    

    в терминале выводится

    Nothing to deploy.
    The JSON RPC URL https://sokl.poa.network is not accessible
    
AC-002-05
  1. В директории с deploy.py находится .env файл и директория contracts. В директории contracts находится файл MultiSigWallet.sol. Содержимое файла .env:

    PRIVKEY=ae2426debde689e756c6290d855a1068aef06db7a2b076be5fe6f2eefc452ca1
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACT=MultiSigWallet
    SOLIDITY=v0.7.6
    OWNERS=0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e  0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    THRESHOLD=2
    
  2. После запуска команды:

    $ deploy.py contracts/MultiSigWallet.sol
    

    в терминале выводится

    Nothing to deploy.
    The balance of the account 0x38aC5ac84897518A3607557208606d8a5E235c71 is not enough to deploy.
    

US-003 Верификация контракта скриптом регистрации контракта

Описание: Я, как администратор системы, могу при использовании скрипта для регистрации контракта указать параметр, указывающий скрипту провести верификацию контракта в браузере блоков для дальнейшего удобного просмотра вызываемых в транзакциях методов контракта и событий, генерируемых в ходе исполнения транзакций.

Зависит от успешного прохождения US-002

AC-003-01
  1. В директории с deploy.py находится .env файл и директория contracts. В директории contracts находится файл MultiSigWallet.sol. Содержимое файла .env:

    PRIVKEY=7e2426debde689e756c6290d855a1068aef06db7a2b076be5fe6f2eefc452ca1
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACT=MultiSigWallet
    SOLIDITY=v0.7.6
    OWNERS=0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e  0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    THRESHOLD=2
    VERIFY=true
    
  2. После запуска команды:

    $ deploy.py contracts/MultiSigWallet.sol
    

    в терминале выводится

    Deployed at 0x...
    

    Контракта с указанным адресом не существовало в блокчейн базе данных до исполнения команды.

  3. REST запрос https://blockscout.com/poa/sokol/api?module=contract&action=getsourcecode&address=<deployed contract> возвращает исходный код идентичный содержимому файла contracts/MultiSigWallet.sol.

US-004 Перевод ether

Описание: Я, как один из владельцев кошелька, через прямое взаимодействие с контрактом могу участвовать в подтверждении перевода средств со счета контракта кошелька с нескольким владельцами на счет другого пользователя или другого контракта в блокчейн сети.

Зависит от успешного прохождения US-001

AC-004-01
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

AC-004-02
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Счет контракта кошелька пополняется до 0.1 ether.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция включается в блок, но не исполняется.

  5. Счет контракта кошелька пополняется до 1 ether.

  6. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

AC-004-03
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    При этом событий RequestForTransfer и TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  5. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3 и 4. Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

AC-004-04
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция включается в блок, но не исполняется. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  5. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

AC-004-05
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 300000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 300000000000000000)

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  5. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    При этом событий RequestForTransfer и TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  6. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3 и 5. Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

  7. Владелец с адресом 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 300000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x8f2b78169B0970F11a762e56659Db52B59CBCf1B")

    При этом событий RequestForTransfer и TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 4. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  8. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 300000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 300000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 4 и 7. Баланс счета контракта кошелька уменьшается на 0.3 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.3 ether.

AC-004-06
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

  5. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  6. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 5. Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

AC-004-07
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. Пользователь с адресом 0xF586ED4F52A9Abe33376B91eB1847f78E1D7BD14 отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция включается в блок, но не исполняется.

US-005 Перевод ERC20 токена

Описание: Я, как один из владельцев кошелька, через прямое взаимодействие с контрактом могу участвовать в подтверждении уменьшения баланса контракт кошелька в контракте токена, выполненного по стадарту ERC20, в пользу увеличения баланса другого пользователя или другого контракта в контракте этого же токена.

Зависит от успешного прохождения US-001

AC-005-01
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена не изменяются.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька в контракте токена уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

AC-005-02
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 1.000000000000000000 токен.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена не изменяются.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция включается в блок, но не исполняется.

  5. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  6. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька в контракте токена уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

AC-005-03
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена не изменяются.

  4. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция включается в блок, но не исполняется. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена не изменяются.

  5. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька в контракте токена уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

AC-005-04
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена не изменяются.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька в контракте токена уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

  5. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена не изменяются.

  6. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • TransferExecuted("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 5. Баланс счета контракта кошелька в контракте токена уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

AC-005-05
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  3. Состояние контракта токена 0x263A0b2141a2982B17B3a28F50F2eEF303563000 изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  4. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена с адресом 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A не изменяются.

  5. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0x263A0b2141a2982B17B3a28F50F2eEF303563000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x263A0b2141a2982B17B3a28F50F2eEF303563000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 4. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена c адресом 0x263A0b2141a2982B17B3a28F50F2eEF303563000 не изменяются.

  6. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 4. Баланс счета контракта кошелька в контракте токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

  7. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x263A0b2141a2982B17B3a28F50F2eEF303563000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x263A0b2141a2982B17B3a28F50F2eEF303563000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    При этом события TransferExecuted нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 5. Баланс счета контракта кошелька в контракте токена 0x263A0b2141a2982B17B3a28F50F2eEF303563000 уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

AC-005-06
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  3. Владелец с адресом 0xF586ED4F52A9Abe33376B91eB1847f78E1D7BD14 отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция включается в блок, но не исполняется.

US-006 Отмена действия

Описание: Я, как один из владельцев кошелька, через прямое взаимодействие с контрактом могу отменить свое подтверждение какого-либо действия, посланное до этого на контракт кошелька.

Зависит от успешного прохождения US-004 и US-005

AC-006-01
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена не изменяются.

  4. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод cancel c параметром ("0x<action id in hex form>"), где идентификатор действия совпадает с идентификатором из события ActionConfirmed испущенного в резульате исполнения транзакции из шага 3. Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • CancelRegistered("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • ActionCanceled("0x<action id in hex form>")

    Идентификаторы действия из событий CancelRegistered и ActionCanceled совпадают с идентификатором действия, переданного в качестве параметра метода cancel.

  5. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена не изменяются.

  6. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 5. Баланс счета контракта кошелька в контракте токена уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

AC-006-02
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  5. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод cancel c параметром ("0x<action id in hex form>"), где идентификатор действия совпадает с идентификатором из события ActionConfirmed испущенного в резульате исполнения транзакции из шага 3. Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • CancelRegistered("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    При этом события ActionCanceled нет в выписке транзакции. Идентификатор действия из события CancelRegistered совпадает с идентификатором действия, переданного в качестве параметра метода cancel.

  6. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод cancel c параметром ("0x<action id in hex form>"), где идентификатор действия совпадает с идентификатором из события ActionConfirmed испущенного в резульате исполнения транзакции из шага 3. Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • CancelRegistered("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • ActionCanceled("0x<action id in hex form>")

    Идентификаторы действия из событий CancelRegistered и ActionCanceled совпадают с идентификатором действия, переданного в качестве параметра метода cancel.

  7. Владелец с адресом 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x8f2b78169B0970F11a762e56659Db52B59CBCf1B")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5, 250000000000000000)

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 3 и 4. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  8. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 7. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  9. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 7 и 8. Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

AC-006-03
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

  5. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод cancel c параметром ("0x<action id in hex form>"), где идентификатор действия совпадает с идентификатором из события ActionConfirmed испущенного в резульате исполнения транзакции из шага 3. Транзакция включается в блок, но не исполняется.

AC-006-04
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена не изменяются.

  4. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод cancel c параметром ("0x<action id in hex form>"), где идентификатор действия совпадает с идентификатором из события ActionConfirmed испущенного в резульате исполнения транзакции из шага 3. Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • CancelRegistered("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • ActionCanceled("0x<action id in hex form>")

    Идентификаторы действия из событий CancelRegistered и ActionCanceled совпадают с идентификатором действия, переданного в качестве параметра метода cancel.

  5. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод cancel c параметром ("0x<action id in hex form>"), где идентификатор действия совпадает с идентификатором из события ActionConfirmed испущенного в резульате исполнения транзакции из шага 3. Транзакция включается в блок, но не исполняется.

  6. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 3. Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 на контракте токена не изменяются.

  7. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод cancel c параметром ("0x<action id in hex form>"), где идентификатор действия совпадает с идентификатором из события ActionConfirmed испущенного в резульате исполнения транзакции из шага 6. Транзакция включается в блок, но не исполняется.

  8. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод transfer c параметрами ("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • TransferExecuted("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 6. Баланс счета контракта кошелька в контракте токена уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

US-007 Перевод ether с помощью скрипта взаимодействия с контрактом

Описание: Я, как один из владельцев кошелька, через скрипт взаимодействия с контрактом могу участвовать в подтверждении перевода средств со счета контракта кошелька с нескольким владельцами на счет другого пользователя или другого контракта в блокчейн сети.

Зависит от успешного прохождения US-004

AC-007-01
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 250000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  5. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

AC-007-02
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 250000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. В директории с walletConnect.py находится тот же .env файл, что и на шаге 3. После запуска команды:

    $ walletConnect.py transfer 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 250000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form> was already sent. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

  5. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  6. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

AC-007-03
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Счет контракта кошелька пополняется до 0.1 ether.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 250000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  5. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    It is 3 of 3 confirmations -- but cannot be executed.
    No enough balance on the wallet contract.
    

    В блокчейн никакой транзакции не отправляется.

  6. Счет контракта кошелька пополняется до 1 ether.

  7. В директории с walletConnect.py находится тот же .env файл, что и на шаге 5. После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • TransferExecuted("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька уменьшается на 0.25 ether. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 0.25 ether.

AC-007-04
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Счет контракта кошелька пополняется до 0.1 ether.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0xF586ED4F52A9Abe33376B91eB1847f78E1D7BD14>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 250000000000000000
    

    в терминале выводится

    It is not the wallet owner. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

US-008 Перевод ERC20 токенов с помощью скрипта взаимодействия с контрактом

Описание: Я, как один из владельцев кошелька, через прямое взаимодействия с контрактом могу участвовать в подтверждении уменьшения баланса контракт кошелька в контракте токена, выполненного по стадарту ERC20, в пользу увеличения баланса другого пользователя или другого контракта в контракте этого же токена.

Зависит от успешного прохождения US-005

AC-008-01
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 2500000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  5. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • TransferExecuted("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька в контракте токена уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

AC-008-02
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 1.000000000000000000 токен.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 2500000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  5. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    It is 3 of 3 confirmations -- but cannot be executed.
    No enough tokens balance on the wallet contract.
    
  6. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов

  7. В директории с walletConnect.py находится тот же .env файл, что и на шаге 5. После запуска команды:

    $ walletConnect.py transfer confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • TransferExecuted("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька в контракте токена уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

AC-008-03
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0x418eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 2500000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x418eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    It is 2 of 2 confirmations -- but cannot be executed.
    Incorrect token contract.
    

US-009 Добавление владельца

Описание: Я, как один из владельцев кошелька, через прямое взаимодействие с контрактом могу участвовать в подтверждении добавления новых владельцев данного кошелька.

Зависит от успешного прохождения US-001 и US-006

AC-009-01
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToAddOwner("0x61365C58E44A6Fc166897f4A30641dba82E606c0")
  3. Владелец с адресом 0x61365C58E44A6Fc166897f4A30641dba82E606c0 отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x635a93F2A46dab6757aD0068f9A1DEBf86d4fCF6"). Транзакция включается в блок, но не исполняется.

  4. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, одно событие:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")

    При этом событий RequestToAddOwner и OwnerAdded нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2.

  5. Владелец с адресом 0x61365C58E44A6Fc166897f4A30641dba82E606c0 отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x635a93F2A46dab6757aD0068f9A1DEBf86d4fCF6"). Транзакция включается в блок, но не исполняется.

  6. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • OwnerAdded("0x61365C58E44A6Fc166897f4A30641dba82E606c0")

    При этом события RequestToAddOwner нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2 и 4.

  7. Владелец с адресом 0x61365C58E44A6Fc166897f4A30641dba82E606c0 отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x635a93F2A46dab6757aD0068f9A1DEBf86d4fCF6"). Транзакция исполняется успешно.

AC-009-02
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: ([0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToAddOwner("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
  3. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e"). Транзакция включается в блок, но не исполняется.

AC-009-03
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: ([0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToAddOwner("0x61365C58E44A6Fc166897f4A30641dba82E606c0")
  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x740d5718a79A8559fEeE8B00922F8Cd773A81D84"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToAddOwner("0x740d5718a79A8559fEeE8B00922F8Cd773A81D84")
  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • OwnerAdded("0x61365C58E44A6Fc166897f4A30641dba82E606c0")

    При этом события RequestToAddOwner нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2.

  5. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x740d5718a79A8559fEeE8B00922F8Cd773A81D84"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • OwnerAdded("0x740d5718a79A8559fEeE8B00922F8Cd773A81D84")

    При этом события RequestToAddOwner нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3.

AC-009-04
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: ([0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToAddOwner("0x61365C58E44A6Fc166897f4A30641dba82E606c0")
  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция включается в блок, но не исполняется.

AC-009-05
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: ([0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToAddOwner("0x61365C58E44A6Fc166897f4A30641dba82E606c0")
  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод cancel c параметром ("0x<action id in hex form>"), где идентификатор действия совпадает с идентификатором из события ActionConfirmed испущенного в резульате исполнения транзакции из шага 2. Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • CancelRegistered("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • ActionCanceled("0x<action id in hex form>")
  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • RequestToAddOwner("0x61365C58E44A6Fc166897f4A30641dba82E606c0")

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 2.

  5. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • OwnerAdded("0x61365C58E44A6Fc166897f4A30641dba82E606c0")

    При этом события RequestToAddOwner нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 4.

US-010 Удаление владельца

Описание: Я, как один из владельцев кошелька, через прямое взаимодействие с контрактом могу участвовать в подтверждении удаления существующих владельцев данного кошелька.

Зависит от успешного прохождения US-009

AC-010-01
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToRemoveOwner("0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70")
  3. Владелец с адресом 0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70 отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x9d2d657150E91863Ac56a2c05fC834AE9feeed5d"). Транзакция исполняется успешно.

  4. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, одно событие:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")

    При этом событий RequestToRemoveOwner и OwnerRemoved нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2.

  5. Владелец с адресом 0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70 отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x98F6Dd280F39498C3e9a67521E63C3D8C471DA22"). Транзакция исполняется успешно.

  6. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • OwnerRemoved("0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70")

    При этом события RequestToRemoveOwner нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2 и 4.

  7. Владелец с адресом 0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70 отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"). Транзакция включается в блок, но не исполняется.

AC-010-02
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToRemoveOwner("0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70")
  3. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70"). Транзакция включается в блок, но не исполняется.

AC-010-03
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToRemoveOwner("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
  3. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, одно событие:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")

    При этом событий RequestToRemoveOwner и OwnerRemoved нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e"). Транзакция включается в блок, но не исполняется.

AC-010-04
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToRemoveOwner("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
  3. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • OwnerRemoved("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")

    При этом события RequestToRemoveOwner нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2.

  4. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToAddOwner("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
  5. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • OwnerAdded("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")

    При этом события RequestToAddOwner нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 4.

AC-010-05
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: ([0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToRemoveOwner("0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод cancel c параметром ("0x<action id in hex form>"), где идентификатор действия совпадает с идентификатором из события ActionConfirmed испущенного в резульате исполнения транзакции из шага 2. Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • CancelRegistered("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • ActionCanceled("0x<action id in hex form>")
  4. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, одно событие:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • RequestToRemoveOwner("0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 2.

  5. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • OwnerRemoved("0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    При этом события RequestToRemoveOwner нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 4.

US-011 Изменение порогового значения необходимых подтверждений

Описание: Я, как один из владельцев кошелька, через прямое взаимодействие с контрактом могу участвовать в подтверждении изменения количества необходимых согласований от других владельцев для исполнения каких-либо действий данным кошельком.

Зависит от успешного прохождения US-010

AC-011-01
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод changeThreshold c параметром (1). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToChangeThreshold(4, 3, 1)
  3. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод changeThreshold c параметром (1). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, одно событие:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")

    При этом событий RequestToChangeThreshold и ThresholdChanged нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод changeThreshold c параметром (1). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • ThresholdChanged(4, 3, 1)

    При этом события RequestToChangeThreshold нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2 и 3.

  5. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e"). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 3 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToRemoveOwner("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • OwnerRemoved("0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
AC-011-02
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод changeThreshold c параметром (4). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToChangeThreshold(3, 2, 4)
  3. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод changeThreshold c параметром (4). Транзакция включается в блок, но не исполняется.

AC-011-03
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод changeThreshold c параметром (2). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToChangeThreshold(3, 2, 2)
  3. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод changeThreshold c параметром (2). Транзакция включается в блок, но не исполняется.

AC-011-04
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод changeThreshold c параметром (3). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToChangeThreshold(4, 2, 3)
  3. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод changeThreshold c параметром (4). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • RequestToChangeThreshold(4, 2, 4)
  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод changeThreshold c параметром (3). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • ThresholdChanged(4, 2, 3)

    При этом события RequestToChangeThreshold нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2.

  5. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод changeThreshold c параметром (4). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")

    При этом событий RequestToChangeThreshold и ThresholdChanged нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3.

  6. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод changeThreshold c параметром (4). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • ThresholdChanged(4, 3, 4)

    При этом события RequestToChangeThreshold нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 3.

AC-011-05
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70 отправляет транзакцию, вызывающую метод changeThreshold c параметром (1). Транзакция включается в блок, но не исполняется.

AC-011-06
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: ([0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод changeThreshold c параметром (1). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToChangeThreshold(3, 2, 1)
  3. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод cancel c параметром ("0x<action id in hex form>"), где идентификатор действия совпадает с идентификатором из события ActionConfirmed испущенного в резульате исполнения транзакции из шага 2. Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • CancelRegistered("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • ActionCanceled("0x<action id in hex form>")
  4. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод changeThreshold c параметром (1). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, одно событие:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • RequestToChangeThreshold(3, 2, 1)

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 2.

  5. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод changeThreshold c параметром (1). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • ThresholdChanged(3, 2, 1)

    При этом события RequestToChangeThreshold нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 4.

AC-011-07
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x226Dbd003697a5Ab7A501ED6fc02Bda096C66E70", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод changeThreshold c параметром (2). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToChangeThreshold(4, 3, 2)
  3. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод changeThreshold c параметром (2). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")

    При этом событий RequestToChangeThreshold и ThresholdChanged нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2.

  4. Владелец с адресом 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e отправляет транзакцию, вызывающую метод changeThreshold c параметром (4). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • RequestToChangeThreshold(4, 3, 4)
  5. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод changeThreshold c параметром (4). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")

    При этом событий RequestToChangeThreshold и ThresholdChanged нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 4.

  6. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод changeThreshold c параметром (2). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • ThresholdChanged(4, 3, 2)

    При этом события RequestToChangeThreshold нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 2.

  7. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод changeThreshold c параметром (4). Транзакция исполняется успешно. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • ThresholdChanged(4, 2, 4)

    При этом события RequestToChangeThreshold нет в выписке транзакции. Идентификатор действия из события ActionConfirmed совпадает с идентификатором действия из такого же события в выписке транзакции, сделанной на шаге 4.

US-012 Добавление владельца с помощью скрипта взаимодействия с контрактом

Описание: Я, как один из владельцев кошелька, через скрипт взаимодействия с контрактом могу участвовать в подтверждении добавления новых владельцев данного кошелька.

Зависит от успешного прохождения US-009

AC-012-01
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py add 0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToAddOwner("0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8")
  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • OwnerAdded("0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8")
AC-012-02
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py add 0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToAddOwner("0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8")
  3. В директории с walletConnect.py находится тот же .env файл, что и на шаге 2. После запуска команды:

    $ walletConnect.py add 0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8
    

    в терминале выводится

    Confirmation <0xaction id in hex form> was already sent. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
  5. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • OwnerAdded("0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8")
AC-012-03
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py add 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToAddOwner("0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    It is 2 of 2 confirmations -- but cannot be executed.
    Owner exists.
    

    В блокчейн никакой транзакции не отправляется.

AC-012-04
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0xF586ED4F52A9Abe33376B91eB1847f78E1D7BD14>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py add 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    

    в терминале выводится

    It is not the wallet owner. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

US-013 Удаление владельца с помощью скрипта взаимодействия с контрактом

Описание: Я, как один из владельцев кошелька, через cкрипт взаимодействия с контрактом могу участвовать в подтверждении удаления существующих владельцев данного кошелька.

Зависит от успешного прохождения US-010

AC-013-01
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py remove 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToRemoveOwner("0x8f2b78169B0970F11a762e56659Db52B59CBCf1B")
  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • OwnerRemoved("0x8f2b78169B0970F11a762e56659Db52B59CBCf1B")
AC-013-02
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py remove 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToRemoveOwner("0x8f2b78169B0970F11a762e56659Db52B59CBCf1B")
  3. В директории с walletConnect.py находится тот же .env файл, что и на шаге 2. После запуска команды:

    $ walletConnect.py remove 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B
    

    в терминале выводится

    Confirmation <0xaction id in hex form> was already sent. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
  5. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • OwnerRemoved("0x8f2b78169B0970F11a762e56659Db52B59CBCf1B")
AC-013-03
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py remove 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToRemoveOwner("0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    It is 2 of 2 confirmations -- but cannot be executed.
    Number of owners cannot be lower confirmations threshold.
    

    В блокчейн никакой транзакции не отправляется.

AC-013-04
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py remove 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToRemoveOwner("0x8f2b78169B0970F11a762e56659Db52B59CBCf1B")
  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    It is 2 of 2 confirmations -- but cannot be executed.
    Owner does not exist.
    

    В блокчейн никакой транзакции не отправляется.

AC-013-05
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0xF586ED4F52A9Abe33376B91eB1847f78E1D7BD14>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py remove 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    

    в терминале выводится

    It is not the wallet owner. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

US-014 Изменение порогового значения с помощью скрипта взаимодействия с контрактом

Описание: Я, как один из владельцев кошелька, через скрипт взаимодействия с контрактом могу участвовать в подтверждении изменения количества необходимых согласований от других владельцев для исполнения каких-либо действий данным кошельком.

Зависит от успешного прохождения US-011

AC-014-01
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py setthresh 2
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToChangeThreshold(4, 3, 2)
  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • ThresholdChanged(4, 3, 2)
AC-014-02
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py setthresh 3
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToChangeThreshold(3, 2, 3)
  3. В директории с walletConnect.py находится тот же .env файл, что и на шаге 2. После запуска команды:

    $ walletConnect.py setthresh 3
    

    в терминале выводится

    Confirmation <0xaction id in hex form> was already sent. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 2 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • ThresholdChanged(3, 2, 3)
AC-014-03
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py setthresh 4
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToChangeThreshold(3, 2, 4)
  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    It is 2 of 2 confirmations -- but cannot be executed.
    Number of owners cannot be lower confirmations threshold.
    

    В блокчейн никакой транзакции не отправляется.

AC-014-04
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py setthresh 2
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToChangeThreshold(3, 2, 2)
  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    It is 2 of 2 confirmations -- but cannot be executed.
    Confirmations threshold is the same.
    

    В блокчейн никакой транзакции не отправляется.

AC-014-05
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0xF586ED4F52A9Abe33376B91eB1847f78E1D7BD14>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py setthresh 1
    

    в терминале выводится

    It is not the wallet owner. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

US-015 Отмена действия с помощью скрипта взаимодействия с контрактом

Описание: Я, как один из владельцев кошелька, через скрипт взаимодействия с контрактом могу отменить свое подтверждение какого-либо действия, посланное до этого на контракт кошелька.

Зависит от успешного прохождения US-006, US-009, US-010, US-011, US-012, US-013, US-014

AC-015-01
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: ("0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 2500000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)
  4. В директории с walletConnect.py находится тот же .env файл, что и на шаге 3. После запуска команды:

    $ walletConnect.py cancel <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    All confirmations for the action <0xaction id in hex form> canceled.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • CancelRegistered("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • ActionCanceled("0x<action id in hex form>)
  5. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    There is no action with id <0xaction id in hex form>.
    

    В блокчейн никакой транзакции не отправляется.

  6. В директории с walletConnect.py находится тот же .env файл, что и на шаге 5. После запуска команды:

    $ walletConnect.py transfer 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 2500000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • RequestForTransfer("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 3.

  7. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 6>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 2 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
    • TransferExecuted("0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 2500000000000000000)

    Баланс счета контракта кошелька в контракте токена уменьшается на 2.5 токена. Баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 увеличивается на 2.5 токена.

AC-015-02
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py add 0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToAddOwner("0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8")
  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
  4. В директории с walletConnect.py находится тот же .env файл, что и на шаге 3. После запуска команды:

    $ walletConnect.py cancel <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    A confirmation for the action <0xaction id in hex form> canceled. 1 confirmation(s) left.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • CancelRegistered("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 2. После запуска команды:

    $ walletConnect.py cancel <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    All confirmations for the action <0xaction id in hex form> canceled.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • CancelRegistered("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • ActionCanceled("0x<action id in hex form>)
  6. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py add 0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x8f2b78169B0970F11a762e56659Db52B59CBCf1B")
    • RequestToAddOwner("0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8")

    Идентификатор действия из события ActionConfirmed отличается от идентификатора действия из такого же события в выписке транзакции, сделанной на шаге 2.

  7. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 6>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e")
  8. В директории с walletConnect.py находится тот же .env файл, что и на шаге 3. После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 6>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
    • OwnerAdded("0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8")
AC-015-03
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py setthresh 2
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToChangeThreshold(4, 3, 2)
  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • ActionConfirmed("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
  4. В директории с walletConnect.py находится тот же .env файл, что и на шаге 2. После запуска команды:

    $ walletConnect.py cancel <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    A confirmation for the action <0xaction id in hex form> canceled. 1 confirmation(s) left.
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 1 событие:

    • CancelRegistered("0x<action id in hex form>", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e")
  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 2. После запуска команды:

    $ walletConnect.py cancel <0xaction id from the step 2>
    

    в терминале выводится

    This owner's confirmation already canceled. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

AC-015-04
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 250000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestForTransfer("0x0000000000000000000000000000000000000000", "0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5", 250000000000000000)

    Баланс счета контракта кошелька и баланс счета 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 не изменяются.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py cancel <0xaction id from the step 3>
    

    в терминале выводится

    There is no confirmation of this owner. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

AC-015-05
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py remove 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена. В выписке транзакции, вызывающей метод, есть, как минимум, 2 события:

    • ActionConfirmed("0x<action id in hex form>", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB")
    • RequestToRemoveOwner("0x8f2b78169B0970F11a762e56659Db52B59CBCf1B")
  3. В директории с walletConnect.py находится тот же .env файл, что и на шаге 2. После запуска команды:

    $ walletConnect.py cancel <0xaction id DIFFERENT from the step 2>
    

    в терминале выводится

    There is no action with id <0xaction id in hex form>. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

US-016 Получение списка владельцев с помощью скрипта взаимодействия с контрактом

Описание: Любой пользователь блокчейн сети через скрипт взаимодействие с контрактом кошелька может получить текущий список владельцев кошелька.

Зависит от успешного прохождения US-009 и US-010

AC-016-01
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get owners
    

    в терминале выводится

    The current owners list:
    0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e
    0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e
    
AC-016-02
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция исполняется успешно.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get owners
    

    в терминале выводится

    The current owners list:
    0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e
    0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e
    
  4. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод addOwner c параметрами ("0x61365C58E44A6Fc166897f4A30641dba82E606c0"). Транзакция исполняется успешно.

  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 3. После запуска команды:

    $ walletConnect.py get owners
    

    в терминале выводится

    The current owners list:
    0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e
    0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e
    0x61365C58E44A6Fc166897f4A30641dba82E606c0
    
AC-016-03
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"). Транзакция исполняется успешно.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get owners
    

    в терминале выводится

    The current owners list:
    0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e
    0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e
    
  4. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод removeOwner c параметрами ("0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"). Транзакция исполняется успешно.

  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 3. После запуска команды:

    $ walletConnect.py get owners
    

    в терминале выводится

    The current owners list:
    0x130930e3E3D30bF8F975a729e948CdCc212ECFBB
    0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e
    

US-017 Получение порогового значения необходимых подтверждений с помощью скрипта взаимодействия с контрактом

Описание: Любой пользователь блокчейн сети через скрипт взаимодействие с контрактом кошелька может получить текущее порогового значение необходимых подтверждений от владельцев кошелька.

Зависит от успешного прохождения US-011

AC-017-01
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get thresh
    

    в терминале выводится

    Required number of confirmations: 2
    
AC-017-02
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Владелец с адресом 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB отправляет транзакцию, вызывающую метод changeThreshold c параметром (3). Транзакция исполняется успешно.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get thresh
    

    в терминале выводится

    Required number of confirmations: 2
    
  4. Владелец с адресом 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e отправляет транзакцию, вызывающую метод changeThreshold c параметром (3). Транзакция исполняется успешно.

  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 3. После запуска команды:

    $ walletConnect.py get thresh
    

    в терминале выводится

    Required number of confirmations: 3
    

US-018 Получение идентификаторов действий, для которых ожидается подтверждение

Описание: Я, как один из владельцев кошелька, через скрипт взаимодействия с контрактом могу получить список идентификаторов действий, для которых ожидается мое подтверждение.

Зависит от успешного прохождения всех предыдущих US-004, US-005, US-012, US-013

AC-018-01
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    No unconfirmed actions
    
AC-018-02
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 250000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 4. После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    No unconfirmed actions
    
  6. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    0x<action id from the step 4>: 250000000000000000 of ether to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    
  7. В директории с walletConnect.py находится тот же .env файл, что и на шаге 6. После запуска команды:

    $ walletConnect.py transfer 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 2500000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  8. В директории с walletConnect.py находится тот же .env файл, что и на шаге 6. После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    0x<action id from the step 4>: 250000000000000000 of ether to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    
  9. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    0x<action id from the step 7>: 2500000000000000000 of 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    
  10. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    0x<action id from the step 4>: 250000000000000000 of ether to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    0x<action id from the step 7>: 2500000000000000000 of 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    

    Сортировка действий в списке происходит по номеру блока, в которых событие ActionConfirmed c соответствующим идентификатором появилось впервые.

  11. В директории с walletConnect.py находится тот же .env файл, что и на шаге 10. После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 4>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

Соответствующая транзакция включена в блок и успешно выполнена.

  1. В директории с walletConnect.py находится тот же .env файл, что и на шаге 10. После запуска команды: После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    0x<action id from the step 7>: 2500000000000000000 of 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    
  2. В директории с walletConnect.py находится тот же .env файл, что и на шаге 10. После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 7>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  3. В директории с walletConnect.py находится тот же .env файл, что и на шаге 10. После запуска команды: После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    No unconfirmed actions
    
  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 4>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 15. После запуска команды: После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    No unconfirmed actions
    
  6. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  7. В директории с walletConnect.py находится тот же .env файл, что и на шаге 17. После запуска команды: После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    No unconfirmed actions
    
AC-018-03
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py add 0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    0x<action id from the step 2>: add 0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8
    
  4. В директории с walletConnect.py находится тот же .env файл, что и на шаге 3. После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 2 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 3. После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    No unconfirmed actions
    
AC-018-04
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py remove 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    No unconfirmed actions
    
  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 5. После запуска команды:

    $ walletConnect.py cancel <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    A confirmation for the action <0xaction id in hex form> canceled. 1 confirmation(s) left.
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  6. В директории с walletConnect.py находится тот же .env файл, что и на шаге 5. После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    0x<action id from the step 2>: remove 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B
    
  7. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  8. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  9. В директории с walletConnect.py находится тот же .env файл, что и на шаге 8. После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    No unconfirmed actions
    
AC-018-05
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py setthresh 2
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get unconfirmed
    

    в терминале выводится

    0x<action id from the step 2>: set threshold 2
    

US-019 Получение идентификаторов действий с частичными подтверждениями

Описание: Я, как один из владельцев кошелька, через скрипт взаимодействия с контрактом могу получить список идентификаторов действий, для которых я уже послал подтвреждения, но другие владельцы еще не согласовали данные действия.

Зависит от успешного прохождения всех предыдущих US-004, US-005, US-012, US-013

AC-019-01
  1. Контракт кошелька зарегистрирован в блокчейн сети со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    No uncompleted actions
    
AC-019-02
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 250000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 4. После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    0x<action id from the step 4>: 250000000000000000 of ether to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    
  6. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    No uncompleted actions
    
  7. В директории с walletConnect.py находится тот же .env файл, что и на шаге 6. После запуска команды:

    $ walletConnect.py transfer 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 2500000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  8. В директории с walletConnect.py находится тот же .env файл, что и на шаге 6. После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    0x<action id from the step 7>: 2500000000000000000 of 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    
  9. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    0x<action id from the step 4>: 250000000000000000 of ether to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    
  10. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    No uncompleted actions
    
  11. В директории с walletConnect.py находится тот же .env файл, что и на шаге 10. После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 4>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  12. В директории с walletConnect.py находится тот же .env файл, что и на шаге 10. После запуска команды: После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    0x<action id from the step 4>: 250000000000000000 of ether to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    
  13. В директории с walletConnect.py находится тот же .env файл, что и на шаге 10. После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 7>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  14. В директории с walletConnect.py находится тот же .env файл, что и на шаге 10. После запуска команды: После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    0x<action id from the step 4>: 250000000000000000 of ether to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    0x<action id from the step 7>: 2500000000000000000 of 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A to 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5
    

    Сортировка действий в списке происходит по номеру блока, в которых событие ActionConfirmed c соответствующим идентификатором появилось впервые.

  15. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 4>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  16. В директории с walletConnect.py находится тот же .env файл, что и на шаге 15. После запуска команды: После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    No uncompleted actions
    
  17. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  18. В директории с walletConnect.py находится тот же .env файл, что и на шаге 17. После запуска команды: После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    No uncompleted actions
    
AC-019-03
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py add 0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  3. В директории с walletConnect.py находится тот же .env файл, что и на шаге 2. После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    0x<action id from the step 2>: add 0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8
    
  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 2 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  5. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    No unconfirmed actions
    
AC-019-04
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py remove 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    0x<action id from the step 2>: remove 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B
    
  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 5. После запуска команды:

    $ walletConnect.py cancel <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    A confirmation for the action <0xaction id in hex form> canceled. 1 confirmation(s) left.
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  6. В директории с walletConnect.py находится тот же .env файл, что и на шаге 5. После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    No uncompleted actions
    
  7. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  8. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 2>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 3 of 3 confirmations -- executed.
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  9. В директории с walletConnect.py находится тот же .env файл, что и на шаге 8. После запуска команды:

    $ walletConnect.py get uncompleted
    

    в терминале выводится

    No uncompleted actions
    

US-020 Дублирование действий при использовании скрипта взаимодействия

Описание: Я, как один из владельцев кошелька, ожидаю, что скрипт взаимодействия с контрактом не позволит мне выполнить дублирующую операцию.

AC-020-01
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Состояние контракта токена 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A изменяется таким образом, что на балансе контракта кошелька -- 10.000000000000000000 токенов.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0x408eC1Bb883dA0EA0fb3C955ea6BEfcd05Aa7C3A 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 2500000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Sent at 0x<transaction hash>
    It is 2 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  5. В директории с walletConnect.py находится тот же .env файл, что и на шаге 8. После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    Confirmation <0xaction id in hex form> was already sent. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

AC-020-02
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 250000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 250000000000000000
    

    в терминале выводится

    The action <0xaction id in hex form> was already initiated. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

AC-020-03
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py add 0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py add 0x353408BC10d8CbC260d8cb4269e3a35BaF35Dbc8
    

    в терминале выводится

    The action <0xaction id in hex form> was already initiated. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

AC-020-04
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py remove 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py remove 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B
    

    в терминале выводится

    The action <0xaction id in hex form> was already initiated. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

AC-020-05
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x8f2b78169B0970F11a762e56659Db52B59CBCf1B", "0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 3).

  2. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py setthresh 2
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 3 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py setthresh 2
    

    в терминале выводится

    The action <0xaction id in hex form> was already initiated. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

US-021 Обработка ошибок при подтверждение скриптом

Описание: Я, как один из владельцев кошелька, ожидаю, что скрипт взаимодействия с контрактом не позволит пользователю блокчейн сети, который не является владельцем, выполнить подтвреждение действия.

AC-021-01
  1. Контракт кошелька зарегистрирован в блокчейн сети по адресу 0xCF8A0b4c7379153377C61fC092888a20EDa1a466 со следующими параметрами конструктора: (["0x130930e3E3D30bF8F975a729e948CdCc212ECFBB", "0x79dD14623c4D33413c0c28fDAbC2285Fdb1e572e", "0x33E0E07cA86c869adE3fc9DE9126f6C73DAD105e"], 2).

  2. Счет контракта кошелька пополняется до 1 ether.

  3. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x130930e3E3D30bF8F975a729e948CdCc212ECFBB>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py transfer 0xc67B26872c75597F501b494B9D6F8ff71fb6f6b5 250000000000000000
    

    в терминале выводится

    Confirmation <0xaction id in hex form>
    Sent at 0x<transaction hash>
    It is 1 of 2 confirmations
    

    Соответствующая транзакция включена в блок и успешно выполнена.

  4. В директории с walletConnect.py находится .env файл со следующим содержимым:

    PRIVKEY=<private key corresponding to 0x8f2b78169B0970F11a762e56659Db52B59CBCf1B>
    RPCURL=https://sokol.poa.network 
    GASPRICE=5000000000
    WALLETCONTRACTADDRESS=0xCF8A0b4c7379153377C61fC092888a20EDa1a466
    

    После запуска команды:

    $ walletConnect.py confirm <0xaction id from the step 3>
    

    в терминале выводится

    It is not the wallet owner. Nothing to do.
    

    В блокчейн никакой транзакции не отправляется.

About

Multi signature wallet based on ethereum (especially for sokol poa network)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •